پروتکل نظارت بر شبکه SNMP
مقدمه
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