SNMP.CONF(5) Net-SNMP SNMP.CONF(5)

snmp.conf - فایل‌های پیکربندی برنامه‌های کاربردی Net-SNMP

برنامه‌های ساخته‌شده با کتابخانه‌های Net-SNMP معمولاً از یک یا چند فایل پیکربندی برای کنترل جنبه‌های گوناگون عملکرد خود استفاده می‌کنند. این فایل‌ها (snmp.conf و snmp.local.conf) می‌توانند در یکی از چندین مسیر مشخص‌شده در صفحه راهنمای snmp_config(5) قرار گیرند.

به‌طور خاص، /etc/snmp/snmp.conf یک فایل عمومی است که شامل تنظیمات مشترک میان تمام کاربران سیستم می‌باشد. ~/.snmp/snmp.conf یک فایل شخصی است که تنظیمات ویژه یک کاربر خاص را در بر دارد.

فایل‌های مختص میزبان نیز ممکن است بارگذاری شوند و در صورتی که نام انتقالی (transport name) منطبق با فایل PATH/hosts/HOST.conf مشخص شده باشد، جستجو خواهند شد. به عنوان مثال، اگر بخواهید یک میزبان خاص به‌طور پیش‌فرض از SNMPv2c استفاده کند، می‌توانید فایل ‎~/.snmp/hosts/NAME.conf‎ را ایجاد کرده و در آن قرار دهید:

defVersion 2c

هر اتصالی که برای اتصال به نام میزبان NAME تنظیم شده باشد، از SNMPv2c استفاده خواهد کرد. همچنین برای مثال‌های بیشتر مختص میزبان، به نشانه transport در زیر مراجعه کنید.

فایل‌های پیکربندی مختص میزبان در زمان برقراری اتصال بارگذاری می‌شوند. بنابراین آن‌ها معمولاً پس از تمام فایل‌های پیکربندی دیگر بارگذاری شده و می‌توانند برای بازنویسی تنظیمات فایل‌های عمومی استفاده شوند.

برای جلوگیری از بارگذاری هرگونه فایل پیکربندی مختص میزبان، مقدار "dontLoadHostConfig true" را در فایل snmp.conf خود قرار دهید.

تمام نشانه‌های شرح‌داده‌شده در این فایل را می‌توان در خط فرمان برنامه‌های Net-SNMP نیز با افزودن پیشوند «--» به آن‌ها استفاده کرد. به عنوان مثال، تعیین --dontLoadHostConfig=true در خط فرمان، بارگذاری فایل‌های پیکربندی مختص میزبان را غیرفعال می‌کند.

چندین مورد از این دستورالعمل‌ها ممکن است حاوی اطلاعات حساس (مانند عبارات عبور) باشند. فایل‌های پیکربندی که شامل چنین تنظیماتی هستند تنها باید توسط کاربر مربوطه قابل خواندن باشند.

علاوه بر نشانه‌های پیکربندی مختص برنامه‌ها، چندین دستورالعمل نیز مربوط به رفتار استاندارد کتابخانه هستند که برای اکثر برنامه‌های Net-SNMP کاربرد دارند. بسیاری از این‌ها متناظر با گزینه‌های استاندارد خط فرمان هستند که در صفحه راهنمای snmpcmd(1) شرح داده شده‌اند.

این دستورالعمل‌ها را می‌توان به چند گروه مجزا تقسیم کرد.

دامنه انتقالی (transport domain) که باید برای یک نوع برنامه کاربردی خاص استفاده شود، مگر آنکه چیز دیگری تعیین شده باشد.
مقصدی که باید برای اتصالات به یک برنامه خاص در صورتی که اتصال باید در دامنه‌ای مشخص باشد، استفاده شود.
پورت پیش‌فرض UDP را که برنامه‌های کلاینت SNMP برای اتصال تلاش می‌کنند، تعیین می‌کند. این مقدار را می‌توان با درج صریح شماره پورت در مشخصه AGENT بازنویسی کرد. برای جزئیات بیشتر به صفحه راهنمای snmpcmd(1) مراجعه کنید.
در صورت عدم تعیین، مقدار پیش‌فرض این نشانه ۱۶۱ است.
این نشانه ویژه باید در یک فایل پیکربندی مختص نام میزبان در زیردایرکتوری hosts قرار گیرد. به عنوان مثال، اگر فایل hosts/foo.conf در مسیر جستجو وجود داشته باشد، در صورتی که از نام انتقال foo استفاده شود بارگذاری خواهد شد. درون فایل foo.conf می‌توانید هم تنظیمات عمومی snmp.conf و هم رشته ویژه transport را برای مشخص کردن مقصد اتصال قرار دهید. به عنوان مثال، قرار دادن:
transport tcp:foo.example.com:9876
در فایل hosts/foo.conf باعث می‌شود برنامه‌هایی که به نام میزبان foo ارجاع می‌دهند (مانند snmpget) در واقع از طریق TCP به foo.example.com روی پورت ۹۸۷۶ متصل شوند.
نسخه پیش‌فرض SNMP را برای استفاده تعیین می‌کند. این مقدار را می‌توان با استفاده از گزینه -v بازنویسی کرد.
کامیونیتی (community) پیش‌فرض را برای استفاده در درخواست‌های SNMPv1 و SNMPv2c تعیین می‌کند. این مقدار را می‌توان با استفاده از گزینه -c بازنویسی کرد.
یک نام مستعار متصل به NAME برای یک تعریف انتقال معین ایجاد می‌کند. سپس می‌توان با استفاده از پیشوند alias: به این نام مستعار ارجاع داد. برای مثال، خطی مانند "alias here udp:127.0.0.1:6161" به شما امکان می‌دهد به جای "udp:127.0.0.1:6161" از میزبان مقصد "alias:here" استفاده کنید. این قابلیت هنگام کار با آدرس‌های انتقال پیچیده شامل آدرس‌های IPv6 و غیره بسیار کاربردی‌تر می‌شود.
مشخص می‌کند که آیا خروجی هگزادسیمال (hex dump) از درخواست‌های خام SNMP ارسال‌شده و دریافت‌شده توسط برنامه نمایش داده شود یا خیر. این معادل گزینه -d است.
در صورت تنظیم روی ۱، خطایابی را برای تمام برنامه‌های در حال اجرا فعال می‌کند.
نشانه‌های خطایابی را که هنگام تنظیم doDebugging باید فعال شوند، مشخص می‌کند. این معادل گزینه -D است.
سطح اولویت را برای ثبت وقایع خروجی خطایابی تنظیم می‌کند. مقدار پیش‌فرض debug است.
16bitIDs yes
شناسه‌های درخواست (requestID) و موارد مشابه را به مقادیر ۱۶ بیتی محدود می‌کند.
مشخصات SNMP این فیلدهای شناسه را به عنوان مقادیر ۳۲ بیتی تعریف می‌کنند، و کتابخانه Net-SNMP معمولاً برای امنیت آن‌ها را با مقادیر تصادفی مقداردهی اولیه می‌کند. با این حال برخی از عامل‌های (agent) معیوب نمی‌توانند مقادیر شناسه بزرگتر از 2^16 را مدیریت کنند - این گزینه امکان سازگاری و کارکرد با چنین عامل‌هایی را فراهم می‌کند.
آدرس مبدأ را برای استفاده برنامه‌های خط فرمان هنگام ارسال درخواست‌های SNMP تعیین می‌کند. برای اطلاعات بیشتر در مورد قالب آدرس‌ها، به snmpcmd(1) مراجعه کنید.
این مقدار توسط snmpd نیز هنگام تولید اعلان‌ها (notifications) استفاده می‌شود.
مشخص می‌کند که آیا گزینه clientaddr حاوی شماره پورت است یا خیر. اگر clientaddr شامل شماره پورت است و این پورت باید برای ارسال درخواست‌های خروجی SNMP استفاده شود، این گزینه را روی "yes" تنظیم کنید. این گزینه فقط بر آدرس‌های کلاینت IPv4 تأثیر می‌گذارد و برای آدرس‌های کلاینت IPv6 نادیده گرفته می‌شود.
اندازه مورد نظر بافر را برای استفاده هنگام دریافت پاسخ‌های درخواست‌های SNMP تعیین می‌کند. اگر حد سخت‌گیرانه سیستم‌عامل کمتر از مقدار clientRecvBuf باشد، آن حد به جای این مقدار استفاده خواهد شد. برخی سیستم‌عامل‌ها ممکن است تصمیم بگیرند اندازه بافری را که عملاً برای امور داخلی استفاده می‌شود افزایش دهند.
اگر سیستم‌عامل از setsockopt() پشتیبانی نکند، این دستورالعمل نادیده گرفته خواهد شد.
مشابه clientRecvBuf است، اما بر اندازه بافر مورد استفاده هنگام ارسال درخواست‌های SNMP اعمال می‌شود.
اعتبارسنجی مقادیر varbind در برابر تعریف MIB برای OID مربوطه را غیرفعال می‌کند. این معادل گزینه -Ir است.
این دستورالعمل اساساً به دستور snmpset مربوط است، اما بر هر برنامه‌ای که snmp_add_var() را با یک مقدار غیر-NULL فراخوانی کند نیز اعمال خواهد شد.
هشدارهای مربوط به نشانه‌های ناشناخته فایل پیکربندی را غیرفعال می‌کند.
چگونگی کدگذاری درخواست‌های SNMP را کنترل می‌کند.
رفتار پیش‌فرض، کدگذاری بسته‌ها با شروع از انتهای PDU و حرکت به سمت عقب است. از این دستورالعمل می‌توان برای غیرفعال کردن این رفتار و ساخت درخواست کدگذاری‌شده در جهت رو به جلو (بدیهی‌تر) استفاده کرد.
معمولاً نیازی به تغییر این تنظیم نیست، زیرا کدگذاری در هر دو حالت اساساً یکسان است - اما کار به صورت معکوس معمولاً کدگذاری کمی بهینه‌تر و در نتیجه دیتاگرام شبکه‌ای کوچکتری تولید می‌کند.
مشخص می‌کند که آیا فایل‌های پیکربندی مختص میزبان بارگذاری شوند یا خیر. برای غیرفعال کردن بارگذاری فایل‌های پیکربندی مختص میزبان، مقدار را روی "true" تنظیم کنید.
تعداد تلاش‌های مجدد را برای استفاده در درخواست‌ها تعیین می‌کند.
مهلت زمانی (تایم‌اوت) را بر حسب ثانیه بین تلاش‌های مجدد مشخص می‌کند.

نسخه‌های پروتکل را در زمان اجرا غیرفعال می‌کند. بسته‌های ورودی و خروجی مربوط به این پروتکل نادیده گرفته و دور انداخته خواهند شد.

نسخه‌های پروتکل را در زمان اجرا غیرفعال می‌کند. بسته‌های ورودی و خروجی مربوط به این پروتکل نادیده گرفته و دور انداخته خواهند شد.
نام امنیتی پیش‌فرض را برای استفاده در درخواست‌های SNMPv3 تعیین می‌کند. این مقدار را می‌توان با استفاده از گزینه -u بازنویسی کرد.
سطح امنیتی پیش‌فرض را برای استفاده در درخواست‌های SNMPv3 تعیین می‌کند. این مقدار را می‌توان با استفاده از گزینه -l بازنویسی کرد.
در صورت عدم تعیین، مقدار پیش‌فرض این نشانه noAuthNoPriv است.
نکته:
سطح authPriv تنها در صورتی در دسترس است که نرم‌افزار برای استفاده از کتابخانه‌های OpenSSL کامپایل شده باشد.
عبارات عبور احراز اصالت و حریم خصوصی پیش‌فرض را برای استفاده در درخواست‌های SNMPv3 تعریف می‌کنند. این مقادیر را می‌توان به ترتیب با گزینه‌های -A و -X بازنویسی کرد.
در صورتی که هر یک از دستورالعمل‌های دیگر مشخص نشده باشند، مقدار defPassphrase برای عبارات عبور احراز اصالت و/یا حریم خصوصی استفاده خواهد شد.
پروتکل‌های پیش‌فرض احراز اصالت و حریم خصوصی را برای استفاده در درخواست‌های SNMPv3 تعریف می‌کنند. این مقادیر را می‌توان به ترتیب با گزینه‌های -a و -x بازنویسی کرد.
در صورت عدم تعیین، درخواست‌های SNMPv3 به‌طور پیش‌فرض از احراز اصالت MD5 و رمزنگاری DES استفاده خواهند کرد.
نکته:
اگر نرم‌افزار برای استفاده از کتابخانه‌های OpenSSL کامپایل نشده باشد، فقط احراز اصالت MD5 پشتیبانی می‌شود. نه احراز اصالت SHA و نه هیچ شکلی از رمزنگاری در دسترس نخواهد بود.
بافتار (context) پیش‌فرض را برای استفاده در درخواست‌های SNMPv3 تعریف می‌کند. این مقدار را می‌توان با استفاده از گزینه -n بازنویسی کرد.
در صورت عدم تعیین، مقدار پیش‌فرض این نشانه، بافتار پیش‌فرض (یعنی رشته خالی "") است.
مدل امنیتی مورد استفاده برای درخواست‌های SNMPv3 را تعیین می‌کند. مقدار پیش‌فرض "usm" است که تنها مدل امنیتی پرکاربرد برای SNMPv3 به شمار می‌رود.
کلیدهای (هگزادسیمال) مورد استفاده برای ارتباطات امن SNMPv3 را تعریف می‌کنند. کلیدهای SNMPv3 اغلب از یک عبارت عبور مشتق می‌شوند، همان‌طور که در بخش defPassphrase در بالا توضیح داده شد. با این حال برای بهبود امنیت، می‌توان یک کلید کاملاً تصادفی ایجاد و به جای آن استفاده کرد (که معمولاً آنتروپی بهتری نسبت به گذرواژه دارد، مگر اینکه گذرواژه به طرز شگفت‌آوری طولانی باشد). این دستورالعمل‌ها معادل گزینه‌های کوتاه‌شکل خط فرمان -3m، -3M، -3k و -3K هستند.
کلیدهای محلی‌شده (localized keys)، کلیدهای اصلی هستند که به یک کلید یکتا و فقط مناسب برای یک موتور (عامل) خاص SNMP تبدیل شده‌اند. طول کلید باید متناسب با نوع احراز اصالت یا رمزنگاری در حال استفاده باشد (کلیدهای احراز اصالت: MD5=16 بایت، SHA1=20 بایت؛ کلیدهای حریم خصوصی: DES=16 بایت (که ۸ بایت آن به عنوان IV استفاده می‌شود نه کلید)، و AES=16 بایت).
مسیر سوکت sshtosnmp ایجادشده توسط یک برنامه (مانند snmpd) را که به اتصالات ورودی ssh از طریق سوکت یونیکس sshtosnmp گوش می‌دهد، تنظیم می‌کند.
حالت دسترسی (mode)، مالک و گروه سوکت sshtosnmp ایجادشده توسط یک برنامه (مانند snmpd) را که به اتصالات ورودی ssh از طریق سوکت یونیکس sshtosnmp گوش می‌دهد، تنظیم می‌کند. این سوکت باید برای کاربران SSH که مجاز به اتصال به سرویس SNMP هستند دارای مجوز خواندن/نوشتن باشد (دسترسی VACM نیز همچنان باید اعطا شود، به احتمال زیاد از طریق مدل امنیتی TSM).
نام کاربری SSH را برای ورود به سیستم دوردست تنظیم می‌کند.
فایل کلید عمومی را برای استفاده هنگام اتصال به یک سیستم دوردست تعیین می‌کند.
فایل کلید خصوصی را برای استفاده هنگام اتصال به یک سیستم دوردست تعیین می‌کند.

دایرکتوری محل ذخیره تنظیمات پیکربندی پایدار توسط snmpd و snmptrapd را تعیین می‌کند.
در صورت عدم تعیین، دایرکتوری پایدار به طور پیش‌فرض برابر با /var/net-snmp خواهد بود.
بارگذاری و ذخیره‌سازی اطلاعات پیکربندی پایدار را غیرفعال می‌کنند.
نکته:
این کار عملیات SNMPv3 (و سایر رفتارهایی را که به پایداری تغییرات پس از راه‌اندازی مجدد برنامه وابسته‌اند) مختل خواهد کرد. با احتیاط استفاده شود.
یک الگوی نام فایل برای ایجاد فایل‌های موقت جهت مدیریت ورودی و خروجی دستورات پوسته خارجی تعیین می‌کند. توسط توابع mkstemp() و mktemp() استفاده می‌شود.
در صورت عدم تعیین، الگوی پیش‌فرض "/tmp/snmpdXXXXXX" است.
اندازه مورد نظر بافر را برای استفاده هنگام دریافت درخواست‌های ورودی SNMP تعیین می‌کند. اگر حد سخت‌گیرانه سیستم‌عامل کمتر از مقدار serverRecvBuf باشد، آن حد به جای این مقدار استفاده خواهد شد. برخی سیستم‌عامل‌ها ممکن است تصمیم بگیرند اندازه بافری را که عملاً برای امور داخلی استفاده می‌شود افزایش دهند.
اگر سیستم‌عامل از setsockopt() پشتیبانی نکند، این دستورالعمل نادیده گرفته خواهد شد.
مشابه serverRecvBuf است، اما بر اندازه بافر مورد استفاده هنگام ارسال پاسخ‌های SNMP اعمال می‌شود.
مشخص می‌کند که آیا آدرس‌های اضافه‌شده با sourceFilterAddress پذیرفته یا مسدود می‌شوند. مقدار پیش‌فرض none است که نشان می‌دهد بسته‌های ورودی در برابر فهرست فیلتر بررسی نخواهند شد.
آدرسی را برای افزودن به فهرست فیلتر آدرس مبدأ مشخص می‌کند. پیکربندی sourceFilterType تعیین می‌کند که آیا آدرس‌ها پذیرفته یا مسدود شوند.

فهرستی از دایرکتوری‌ها را برای جستجوی فایل‌های MIB تعیین می‌کند. این عملکرد مشابه گزینه -M عمل می‌کند - برای جزئیات به snmpcmd(1) مراجعه کنید. توجه داشته باشید که این مقدار می‌تواند توسط متغیر محیطی MIBDIRS و گزینه -M بازنویسی شود.
فهرستی از ماژول‌های MIB (نه فایل‌ها) را که باید بارگذاری شوند مشخص می‌کند. این عملکرد مشابه گزینه -m عمل می‌کند - برای جزئیات به snmpcmd(1) مراجعه کنید. توجه داشته باشید که این فهرست می‌تواند توسط متغیر محیطی MIBS و گزینه -m بازنویسی شود.
یک فایل MIB (تکی) را برای بارگذاری تعیین می‌کند، علاوه بر فهرستی که از نشانه mibs (یا پیکربندی معادل آن) خوانده می‌شود. توجه داشته باشید که این مقدار می‌تواند توسط متغیر محیطی MIBFILES بازنویسی شود.
آیا خطاهای تجزیه MIB نمایش داده شوند یا خیر.
آیا تجزیه MIB در مورد پایان کامنت سخت‌گیرانه باشد یا خیر. بسیاری از نویسندگان MIB فرض می‌کنند که کامنت‌های ASN.1 تا انتهای خط متنی ادامه می‌یابند، به جای اینکه با نشانه بعدی «--» خاتمه یابند. از این نشانه می‌توان برای پذیرش چنین MIBهایی (که از نظر ساختاری نادرست هستند) استفاده کرد.
توجه داشته باشید که این دستورالعمل قبلاً به اشتباه strictCommentTerm نامیده می‌شد، اما با رفتاری معکوس نسبت به آنچه نام آن القا می‌کرد. این نشانه قدیمی‌تر همچنان برای سازگاری با نسخه‌های پیشین پذیرفته می‌شود.
آیا نویسه خط زیرین (underline) در نام اشیاء MIB و مقادیر شمارشی مجاز باشد یا خیر. از این نشانه می‌توان برای پذیرش چنین MIBهایی (که از نظر ساختاری نادرست هستند) استفاده کرد.
حداقل سطح هشدار برای هشدارهای چاپ‌شده توسط تجزیه‌کننده MIB.

آیا دستورات باید برچسب زمان (timestamp) را همراه با ثبت خطاها/پیام‌های خود ثبت کنند یا خیر. توجه داشته باشید که اگر کد منبعِ ثبت‌کننده وقایع، پیام‌ها را قبل از ارسال به روال‌های لاگ‌گیری به‌صورت خطی بافر نکرده و آن‌ها را به‌طور افزایشی ثبت کند، خروجی همراه با برچسب زمان چندان منظم به نظر نخواهد رسید. این گزینه فقط زمانی استفاده می‌شود که ثبت وقایع در فایل فعال باشد.
معادل -Oe.
معادل -On.
معادل -Ob.
معادل -OE.
معادل -Oq.
معادل -Ov.
معادل -OU.
معادل -Ot.
معادل -OT.
مشخص می‌کند که خروجی رشته‌های هگزادسیمال در کجا شکسته شود. برای غیرفعال کردن شکستن خطوط، مقدار را روی ۰ قرار دهید. مقدار پیش‌فرض ۱۶ است.
مقدار ۱ معادل -Os است و مقدار ۲ معادل -OS.
گزینه‌های -O را به شرح زیر نگاشت می‌کند: -Os=1, -OS=2, -Of=3, -On=4, -Ou=5. مقدار ۶ هیچ گزینه -O متناظری ندارد و خروجی را سرکوب می‌کند.
معادل -OX.
استفاده از اطلاعات DISPLAY-HINT را هنگام تجزیه شاخص‌ها و مقادیر مورد تنظیم غیرفعال می‌کند. معادل -Ih.
از رشته PRECISION برای اصلاح قالب خروجی مقدار استفاده می‌کند. برای جزئیات به snmpcmd(1) مراجعه کنید. معادل -Op (که بر فایل پیکربندی تقدم دارد).

فایل‌های پیکربندی سراسری سیستم:
/etc/snmp/snmp.conf
/etc/snmp/snmp.local.conf
تنظیمات پیکربندی ویژه کاربر:
$HOME/.snmp/snmp.conf
$HOME/.snmp/snmp.local.conf
فایل‌های مختص میزبان مقصد:
/etc/snmp/hosts/HOSTNAME.conf
$HOME/.snmp/hosts/HOSTNAME.conf

snmp_config(5), netsnmp_config_api(3), snmpcmd(1).

21 Apr 2010 V5.9.5.2