پروتکل نظارت بر شبکه SNMP
(صفحهای جدید حاوی 'Category:IBSng <font face ="Tahoma"> __TOC__ <div dir=rtl lang=fa> '''<big>مقدمه</big>''' SNMP پروتکل لایه Application ...' ایجاد کرد) |
|||
(یک ویرایش میانی توسط یک کاربر نشان داده نشدهاست) | |||
سطر ۱۰۰: | سطر ۱۰۰: | ||
− | پس از نصب snmpclient برای دریافت اطلاعات از snmp دستور زیر را وارد میکنیم. | + | پس از نصب snmpclient برای تست و دریافت اطلاعات از snmp دستور زیر را وارد میکنیم. |
<div dir=ltr lang=en> | <div dir=ltr lang=en> | ||
سطر ۱۱۸: | سطر ۱۱۸: | ||
− | افزودن OID خصوصی سازی شده | + | '''<big>افزودن OID خصوصی سازی شده</big>''' |
− | برای افزودنOID خاص در سیستم لازم است | + | برای ایجاد OID خاص لازم است ابتدا دستوری در فایل shell نوشته و آن را در دایرکتوری خاصی ذخیره کنیم. |
+ | |||
+ | <div dir=ltr lang=en> | ||
+ | #!/bin/bash | ||
+ | uptime | cut -d ',' -f 4 | ||
+ | </div> | ||
+ | |||
+ | فایل مذکور را با نام test.sh در دایرکتوری home ذخیره نمایید. برای افزودنOID خاص در سیستم لازم است تنظیمات فایل کانفیگ snmp به آدرس زیر را تغییر دهید: | ||
+ | |||
+ | <div dir=ltr lang=en> | ||
+ | vim /etc/snmp/snmpd.conf | ||
+ | </div> | ||
+ | |||
+ | کد ریر را در فایل کانفیگ افزوده و سرویس را ری استارت مینماییم | ||
+ | |||
+ | <div dir=ltr lang=en> | ||
+ | extend-sh test /home/test.sh | ||
+ | </div> | ||
+ | |||
+ | کد موجود دپر فایل /home/test.sh در صورتی که query معادل OID عبارت test داده شوداجرا میشود. | ||
+ | |||
+ | برای تولید OId معادل test از دستور زیر استفاده میشود. خروجی دستور یک OID است. | ||
+ | |||
+ | |||
+ | <div dir=ltr lang=en> | ||
+ | snmptranslate -On NET-SNMP-EXTEND-MIB::nsExtendOutput1Line.\"test\" | ||
+ | </div> | ||
+ | به عنوان مثال OID تولید شده به صورت زیر است: | ||
+ | |||
+ | <div dir=ltr lang=en> | ||
+ | .1.3.6.1.4.1.8072.1.3.2.3.1.1.2.76.73 | ||
+ | </div> | ||
+ | |||
+ | حال در صورت استفاده از دستور زیر خروجی shell تعریف شده اجرا میشود. | ||
+ | |||
+ | <div dir=ltr lang=en> | ||
+ | snmpwalk -c HELLO -v 2c localhost .1.3.6.1.4.1.8072.1.3.2.3.1.1.2.76.73 | ||
+ | 0.3 | ||
+ | </div> |
نسخهٔ کنونی تا ۳۰ آوریل ۲۰۱۷، ساعت ۰۹:۰۲
مقدمه
SNMP پروتکل لایه Application است که امکان نقل و انتقال اطلاعات مدیریتی را بین عناصر شبکه ایجاد می کند و در واقع قسمتی از پروتکل TCP/IP می باشد. این پروتکل توانایی مدیریت و پیدا کردن مشکلات و حل آنها را در شبکه برای مدیران مهیا می کند. سه نسخه از این پروتکل موجود است که عبارتند از :
- SNMP V1
- SNMP V2
- SNMP V3
هر سه ورژن، دارای یک سری مشخصات مشترک هستند. البته باید افزود نسخه شماره سه بسیار ایمن تر از نسخه های دیگر است. (MIB) پایگاه اطلاعات مدیریتی در SNMP MIB در واقع مجموعه ای از اطلاعات است كه به صورت سلسله مراتبی سازماندهی شده است و از پروتكل های مدیریتی از قبیل SNMP استفاده می كند. MIBها شامل موضوعات مدیریت شده (Objects) هستند كه توسط شناسه های Object Identifier مشخص می شوند. یك موضوع مدیریت شده كه گاهی اوقات MIB نامیده می شود، در واقع یكی از مشخصه های تجهیزات مدیریت شده است. دو نوع موضوع مدیریت شده وجود دارد:
- Scalar Object
- Tabular Object
موضوعات Scalar یك نمونه موضوع واحد را تعریف می كنند، ولی موضوعاتTabular چندین موضوع به هم پیوسته و مرتبط كه به صورت گروهی در جداول MIB قرار دارند را تعریف می كنند. برای مثال تعداد پكتهای ورودی Apple Talk به یك اینترفیس از یك روتر با atln put معین می شود كه یك موضوعScalar است و یك نمونه موضوع واحد را نشان می دهد. در سلسه مراتب MIB، هر موضوع برای شناسایی دارای یك شناسه Object ID است. سلسه مراتب MIB بصورت یك درخت ( Nameless route ) شرح داده می شود. شكل زیر سطوح واگذار شده توسط سازمانهای مختلف را در درخت MIB نشان می دهد. Object IDهایی بالاترین سطح، به سازمان های استاندارد سازی مختلف متعلق اند و Object IDهای سطوح پایینتر به سازمانهای وابسته آن اختصاص می یابند. فروشندگان می توانند شعبات و یا شاخه هایی را تعریف کنند كه شامل موضوعات مدیریت شده برای تولیدات خودشان است و MIBهایی كه استاندارد نشده اند، در شاخه های آزمایشی قرار می گیرند. برای مثال موضوعات مدیریت شده atln put می تواند بوسیله نام موضوعی ISO مشخص شود. ضمناً یك نمایشگر عددی برای رهگیری و رسیدن به موضوع مورد نظر نیز وجود دارد. مثلا برای atln put مقدار این نمایشگر عددی معادل 1.3.6.1.4.1.9.3.3.1
فرمان های پروتکل SNMP
SNMP یک پروتکل ساده پرسش/ پاسخ سیستم مدیریت شبکه NMS یک درخواست می فرستند و تجهیزات مدیریت شده پاسخ مربوطه را بر می گردانند. این رفتار توسط چهار فرمان GET, GET NEXT, SET, TRAP اجرا می شود: فرمانGET توسط NMSبرای بازیابی مقدار object instanceهای یک agent استفاده می شود. در واقع کارگزار (agent) در پاسخ به فرمان GET مقادیر مربوط به Object instance ها را در یک لیست تهیه می کند. فرمان GET NEXT توسط NMS برای بازیابی مقدار Object instance های بعدی در یک جدول و یا لیست استفاده می شود. فرمانSET توسط NMSبرای ست کردن یا قرار دادن مقادیر Object instance در جدول یا لیست یک کارگزار استفاده می شود فرمان Trap توسط کارگزار برای آگاهی دادن به NMS از وقوع یک رخداد مهم و معنی دار بطور غیر هم زمان استفاده می شود.
تنظیمات سمت سرور
نصب سرویس snmp
برای نصب دستور زیر را وارد نمایید
apt-get install snmpd
بعد از نصب سرویس نصب شده را ریست نمایید.
/etc/init.d/snmpd restart
برای استفاده از سرویس لازم است فایل کانفیک را ویرایش کنیم. برای این کار:
vim /etc/snmp/snmpd.conf
در این فایل خط زیر برای دسترسی کاربران است.
agentAddress udp:127.0.0.1:161
این خط فقط مجوز اتصال کاربران از سیستم محلی را ایجاد میکند برای ایجاد اتصال از سرورهای راه دور دستور زیر را uncomment کرده و دستور قبلی را comment میکنیم.
agentAddress udp:161,udp6:[::1]:161
به صورت پیشفرض دسترسی درخت OID به صورت زیر است .
view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1
مبتوان درخت را به صورت زیر باز کرد تا کاربر snmp بتواند تمام درخت را ببیند.
view systemonly included .1
مهمترین قسمت فایل کانفیک, تنظیم community برای دسترسی است. مثال زیر دسترسی به اطلاعات snmp را برای ip 192.168.1.1 فراهم میکند.
rocommunity parspooyesh 192.168.1.1/32
مقدار community در این کانفیگ به parspooyesh تغییر داده شده است به این معنی که از هاست 192.168.1.1 تنها با community با نام parspooyesh میتواند اطلاعات snmp را دریافت نماید.
تنظیمات سمت کلاینت
برای نصب سرویس snmp سمت کلاینت دستور زیر را وارد میکنیم:
apt-get install snmp
پس از نصب snmpclient برای تست و دریافت اطلاعات از snmp دستور زیر را وارد میکنیم.
snmpwalk -c “community” -v 2c “host” “OID”
در قسمت community رشته ای را که در سمت سرور ایجاد کردید وارد کنید.
در سمت host آدرس ip هاست را وارد کنید
و در فیلد آخر ادرس OID آیتم مورد نظر را وارد مینماییم
برای مثال دستور زیر اطلاعات مربوط به بار سرور در ۱ دقیقه گذشته با community با عنوان HELLO را نشان میدهد.
snmpwalk -c HELLO -v 2c localhost .1.3.6.1.4.1.2021.10.1.3.1
افزودن OID خصوصی سازی شده
برای ایجاد OID خاص لازم است ابتدا دستوری در فایل shell نوشته و آن را در دایرکتوری خاصی ذخیره کنیم.
#!/bin/bash uptime | cut -d ',' -f 4
فایل مذکور را با نام test.sh در دایرکتوری home ذخیره نمایید. برای افزودنOID خاص در سیستم لازم است تنظیمات فایل کانفیگ snmp به آدرس زیر را تغییر دهید:
vim /etc/snmp/snmpd.conf
کد ریر را در فایل کانفیگ افزوده و سرویس را ری استارت مینماییم
extend-sh test /home/test.sh
کد موجود دپر فایل /home/test.sh در صورتی که query معادل OID عبارت test داده شوداجرا میشود.
برای تولید OId معادل test از دستور زیر استفاده میشود. خروجی دستور یک OID است.
snmptranslate -On NET-SNMP-EXTEND-MIB::nsExtendOutput1Line.\"test\"
به عنوان مثال OID تولید شده به صورت زیر است:
.1.3.6.1.4.1.8072.1.3.2.3.1.1.2.76.73
حال در صورت استفاده از دستور زیر خروجی shell تعریف شده اجرا میشود.
snmpwalk -c HELLO -v 2c localhost .1.3.6.1.4.1.8072.1.3.2.3.1.1.2.76.73 0.3