| SNMPD(8) | Net-SNMP | SNMPD(8) |
نام (NAME)
snmpd - عامل و دیمون سرور مدیریت شبکه SNMP
خلاصه دستور (SYNOPSIS)
snmpd [گزینهها] [نشانیهای شنود]
توضیحات (DESCRIPTION)
snmpd یک عامل (agent) پروتکل SNMP است که به یک پورت متصل شده و منتظر درخواستها از نرمافزار مدیریت SNMP میماند. پس از دریافت درخواست، آن را پردازش کرده، اطلاعات درخواستی را گردآوری میکند و/یا عملیات درخواستی را انجام میدهد و سپس اطلاعات را به فرستنده بازمیگرداند.
گزینهها (OPTIONS)
- -a
- نشانیهای مبدأ درخواستهای ورودی را ثبت (لاگ) میکند.
- -A
- به جای بازنویسی و خالی کردن فایل لاگ، خروجی را به انتهای آن اضافه میکند.
- -c FILE
- فایل FILE را به عنوان یک فایل پیکربندی (یا فهرستی از فایلهای پیکربندی جدا شده با کاما) میخواند. توجه داشته باشید که فایل بارگذاریشده فقط نشانههای snmpd.conf را درک میکند، مگر اینکه نوع پیکربندی همانطور که در صفحه راهنمای snmp_config تحت عنوان SWITCHING CONFIGURATION TYPES IN MID-FILE توضیح داده شده، در فایل مشخص شود.
- -C
- هیچ فایل پیکربندی را به جز مواردی که به صورت اختیاری با گزینه -c مشخص شدهاند، نمیخواند. توجه داشته باشید که این رفتار شامل فایلهای پیکربندی ماندگار (persistent) نیز میشود. این امر ممکن است منجر به بازنشانی مقادیری شود که پس از راهاندازی مجدد عامل به صورت پویا تخصیص یافتهاند، مگر اینکه فایلهای کانفیگ ماندگار مربوطه صراحتاً با استفاده از گزینه -c بارگذاری شوند.
- -d
- بستههای SNMP ارسالی و دریافتی را (در قالب هگزادسیمال) تخلیه (دامپ) میکند.
- -D[TOKEN[,...]]
- خروجی اشکالزدایی را برای TOKENهای مشخصشده فعال میکند. بدون مشخص کردن نشانه، به طور پیشفرض تمام نشانهها چاپ میشوند (که معادل کلیدواژه "ALL" است). برای خروجی بسیار پرجزئیات میتوانید ALL را امتحان کنید. نکته: شما نمیتوانید بین فلگ -D و TOKENهای فهرستشده فاصله بگذارید.
- -f
- از پوسته فراخواننده fork() نمیکند.
- -g GID
- شناسه گروهی (GID) فرایند snmpd را پس از باز کردن سوکتهای شنود به GID تغییر میدهد. این گزینه پارامتر agentgroup در فایل پیکربندی را لغو میکند.
- -h, --help
- پیام کوتاهی درباره نحوه استفاده را نمایش داده و سپس خارج میشود.
- -H
- فهرستی از دستورالعملهای فایل پیکربندی که برای عامل قابل فهم است را نمایش داده و سپس خارج میشود.
- -I [-]INITLIST
- مشخص میکند هنگام راهاندازی عامل، کدام ماژولها باید (یا نباید) راهاندازی اولیه شوند. اگر در ابتدای فهرست جدا شده با کامای INITLIST یک '-' قرار گیرد، این فهرست ماژولهایی است که نباید راهاندازی شوند. در غیر این صورت، این فهرست تنها ماژولهایی است که باید راهاندازی شوند.
برای دریافت فهرستی از ماژولهای کامپایلشده، عامل را با آرگومانهای -Dmib_init -H اجرا کنید (با فرض اینکه پشتیبانی از اشکالزدایی کامپایل شده باشد).
- -L[eEfFoOsSnN]
- مشخص میکند که خروجی گزارشگیری (لاگ) به کجا هدایت شود (خطای استاندارد یا خروجی استاندارد، به یک فایل یا از طریق syslog). برای جزئیات به LOGGING OPTIONS در snmpcmd(1) مراجعه کنید.
- -m MIBLIST
- فهرستی از ماژولهای MIB جدا شده با دونقطه را برای بارگذاری در این برنامه مشخص میکند. این گزینه متغیر محیطی MIBS را لغو میکند. برای جزئیات به snmpcmd(1) مراجعه کنید.
- -M DIRLIST
- فهرستی از دایرکتوریهای جدا شده با دونقطه را برای جستجوی MIBها مشخص میکند. این گزینه متغیر محیطی MIBDIRS را لغو میکند. برای جزئیات به snmpcmd(1) مراجعه کنید.
- -n NAME
- یک نام جایگزین برای برنامه تنظیم میکند (که بر فایلهای پیکربندی بارگذاریشده تأثیر میگذارد). به طور پیشفرض این نام صرفنظر از نام باینری واقعی، برابر با snmpd خواهد بود.
- -p FILE
- شناسه فرایند (PID) دیمون را در FILE ذخیره میکند.
- -q
- خروجی سادهتری را برای تجزیه خودکار آسانتر چاپ میکند.
- -r
- نیازی به دسترسی ریشه (root) برای اجرای دیمون ندارد. به طور خاص، در صورتی که فایلهای فقط در دسترس ریشه (مانند /dev/kmem و غیره) قابل باز شدن نباشند، برنامه خارج نمیشود.
- -u UID
- شناسه کاربری (UID) فرایند snmpd را پس از باز کردن سوکتهای شنود به UID تغییر میدهد (که میتواند به صورت عددی یا متنی مشخص شود). این گزینه پارامتر agentuser در فایل پیکربندی را لغو میکند.
- -U
- به عامل دستور میدهد که هنگام خاموش شدن، فایل pid خود را (گزینه -p را ببینید) حذف نکند. این گزینه نشانه leave_pidfile را در فایل snmpd.conf لغو میکند؛ به snmpd.conf(5) مراجعه کنید.
- -v, --version
- اطلاعات نسخه عامل را چاپ کرده و سپس خارج میشود.
- -V
- تراکنشهای SNMP را به صورت نمادین تخلیه میکند.
- -x ADDRESS
- به جای نشانی پیشفرض "/var/agentx/master"، روی نشانی مشخصشده برای اتصالهای AgentX شنود میکند. این نشانی میتواند یک مسیر سوکت دامنه یونیکس یا نشانی یک رابط شبکه باشد. قالب آن همانند قالب نشانیهای شنود است که در ادامه شرح داده شده است.
- -X
- به جای اجرای به عنوان یک عامل اصلی SNMP، به عنوان یک زیرعامل AgentX اجرا میشود.
- --name="value"
- امکان مشخص کردن هر نشانهای ("name") که در فایل snmpd.conf پشتیبانی میشود را فراهم کرده و مقدار آن را به "value" تنظیم میکند. نشانه مربوطه در فایل snmpd.conf را لغو میکند. برای مشاهده فهرست کامل نشانهها به snmpd.conf(5) مراجعه کنید.
نشانیهای شنود (LISTENING ADDRESSES)
به طور پیشفرض، snmpd به درخواستهای ورودی SNMP روی پورت 161 پروتکل UDP در تمام رابطهای IPv4 گوش میدهد. با این حال، میتوان با مشخص کردن یک یا چند نشانی شنود به عنوان آرگومان برای snmpd این رفتار را تغییر داد. یک نشانی شنود قالب زیر را به خود میگیرد:
- [<transport-specifier>:]<transport-address>
در سادهترین حالت، یک نشانی شنود ممکن است تنها از یک شماره پورت تشکیل شده باشد که در این حالت snmpd روی آن پورت UDP در تمام رابطهای IPv4 شنود میکند. در غیر این صورت، بخش <transport-address> طبق جدول زیر تجزیه میشود:
- <transport-specifier>
- قالب <transport-address>
- udp (پیشفرض)
- hostname[:port] یا IPv4-address[:port]
- tcp
- hostname[:port] یا IPv4-address[:port]
- unix
- pathname
- ipx
- [network]:node[/port]
- aal5pvc یا pvc
- [interface.][VPI.]VCI
- udp6 یا udpv6 یا udpipv6
- hostname[:port] یا IPv6-address[:port]
- tcp6 یا tcpv6 یا tcpipv6
- hostname[:port] یا IPv6-address[:port]
- ssh
- hostname:port
- dtlsudp
- hostname:port
توجه داشته باشید که رشتههای <transport-specifier> به حروف بزرگ و کوچک حساس نیستند، بنابراین برای مثال "tcp" و "TCP" معادل یکدیگرند. در ادامه چند مثال به همراه شرح آنها آورده شده است:
- 127.0.0.1:161
- شنود روی پورت 161 پروتکل UDP، اما فقط روی رابط محلی (loopback). این کار از ارسال پرسوجو به snmpd از راه دور جلوگیری میکند. تعیین پورت ":161" اکیداً ضروری نیست زیرا این پورت، پورت پیشفرض SNMP است.
- TCP:1161
- شنود روی پورت 1161 پروتکل TCP در تمام رابطهای IPv4.
- ipx:/40000
- شنود روی پورت 40000 پروتکل IPX در تمام رابطهای IPX.
- unix:/tmp/local-agent
- شنود روی سوکت دامنه یونیکس /tmp/local-agent.
- /tmp/local-agent
- کاملاً همانند مورد قبلی است، زیرا اگر اولین نویسه <transport-address> یک '/' باشد، دامنه یونیکس فرض میشود.
- PVC:161
- شنود روی مدار مجازی دائمی AAL5 با VPI=0 و VCI=161 (دهدهی) در اولین آداپتور ATM سیستم.
- udp6:10161
- شنود روی پورت 10161 در تمام رابطهای IPv6.
- ssh:127.0.0.1:22
- امکان برقراری اتصال از زیرسیستم snmp روی سرور ssh در پورت 22 را فراهم میکند. جزئیات استفاده از SNMP بر روی SSH در ادامه تعریف شده است.
- dtlsudp:127.0.0.1:9161
- شنود برای اتصالها از طریق DTLS روی پورت 9161 پروتکل UDP. فایل snmp.conf باید نشانههای پیکربندی serverCert را تعریف کرده باشد.
توجه داشته باشید که تمام دامنههای انتقال فهرستشده در بالا همیشه در دسترس نخواهند بود؛ برای مثال، میزبانهای بدون پشتیبانی از IPv6 قادر به استفاده از نشانیهای انتقال udp6 نخواهند بود و تلاش برای انجام این کار منجر به خطای "Error opening specified endpoint" خواهد شد. به طور مشابه، از آنجا که پشتیبانی از AAL5 PVC در حال حاضر فقط در لینوکس موجود است، در سایر سیستمعاملها با همان خطا مواجه خواهد شد.
نکات ویژه پروتکلهای انتقال (TRANSPORT SPECIFIC NOTES)
- ssh
- پروتکل انتقال SSH، در سمت سرور، در واقع تنها یک پایپ نامگذاریشده یونیکس (named pipe) است که میتوان از طریق زیرسیستم ssh که در سرور اصلی ssh پیکربندی شده به آن متصل شد. محل پایپ (که با نشانه sshtosnmpsocket در snmp.conf قابل تنظیم است) برابر با /var/net-snmp/sshdomainsocket است. بستهها باید از طریق برنامه sshtosnmp به آن ارسال شوند، که هنگام برقراری اتصال شناسه کاربری را نیز ارسال میکند. در زمان پردازش بستهها باید از مدل امنیتی TSM استفاده شود.
- دستور sshtosnmp نحوه اتصال به این پایپ و ارتباط با آن را میداند. این دستور باید در فایل پیکربندی OpenSSH sshd (که معمولاً /etc/ssh/sshd_config است) با استفاده از خط پیکربندی زیر تنظیم شود:
- Subsystem snmp /usr/local/bin/sshtosnmp /var/net-snmp/sshdomainsocket
- دستور sshtosnmp به دسترسی خواندن/نوشتن برای پایپ /var/net-snmp/sshdomainsocket نیاز خواهد داشت. اگرچه اعطای دسترسی به کاربر معمولی باید نسبتاً ایمن باشد زیرا پیش از اینکه کاربر بتواند عملیاتی انجام دهد همچنان به اعمال تغییرات در تنظیمات ACM نیاز است، اما مدیران محتاط ممکن است بخواهند دایرکتوری /var/net-snmp را فقط برای کاربران یک گروه خاص قابل دسترسی کنند. از گزینه پیکربندی sshtosnmpsocketperms در snmp.conf برای تنظیم مجوزها، مالک و گروه سوکت ایجادشده استفاده کنید.
- کنترل دسترسی را میتوان با استفاده از سبک زیر از تنظیمات ساده snmpd.conf به کاربر "foo" اعطا کرد:
- rouser -s tsm foo authpriv
- توجه داشته باشید که "authpriv" با این فرض قابل قبول است که SSH همه چیز را به این شکل محافظت میکند (با فرض اینکه شما یک راهاندازی معقول و استاندارد دارید). برنامه snmpd هیچ تصوری از نحوه محافظت واقعی SSH از یک بسته ندارد و بنابراین عامل snmp فرض میکند تمام بستههای عبور داده شده از طریق پروتکل انتقال SSH در سطح authpriv محافظت شدهاند.
- dtlsudp
- پروتکل DTLS، که بر پایه TLS است، برای برقراری اتصال و احراز هویت دوطرفه به گواهیهای کلاینت و سرور نیاز دارد. به این منظور، کلاینت باید فایل snmp.conf را با نشانههای پیکربندی clientCert تنظیم کند. سرور نیز باید فایل snmp.conf را با نشانههای پیکربندی serverCert تعریفشده تنظیم کند.
- راهاندازی کنترل دسترسی مشابه پروتکل انتقال ssh است، زیرا باید از مدل امنیتی TSM برای محافظت از بستهها استفاده شود.
فایلهای پیکربندی (CONFIGURATION FILES)
snmpd وجود فایلهای زیر را بررسی و آنها را تجزیه میکند:
- /etc/snmp/snmp.conf
- پیکربندی مشترک برای عامل و برنامهها. برای جزئیات به snmp.conf(5) مراجعه کنید.
- /etc/snmp/snmpd.conf
- /etc/snmp/snmpd.local.conf
- پیکربندی ویژه عامل. برای جزئیات به snmpd.conf(5) مراجعه کنید. این فایلها اختیاری هستند و میتوان از آنها برای پیکربندی کنترل دسترسی، تولید تله (trap generation)، پروتکلهای زیرعامل و بسیاری موارد دیگر استفاده کرد.
- علاوه بر این دو فایل پیکربندی در /etc/snmp، عامل هر فایلی با نامهای snmpd.conf و snmpd.local.conf را در مسیری جدا شده با دونقطه که در متغیر محیطی SNMPCONFPATH مشخص شده است خواهد خواند.
- /usr/share/snmp/mibs/
- عامل همچنین تمام فایلهای موجود در این دایرکتوری را به عنوان MIB بارگذاری میکند. با این حال، فایلهایی که با '.' شروع شوند را بارگذاری نکرده و به زیردایرکتوریها وارد نمیشود.
همچنین ببینید (SEE ALSO)
(به ترتیب مطالعه پیشنهادی)
snmp_config(5), snmp.conf(5), snmpd.conf(5)
| 30 Jun 2010 | V5.9.5.2 |