SNMP و مانیتورینگ شبکه
جواب کوتاه
SNMP (Simple Network Management Protocol) پروتکلی است که مدیر شبکه با آن از یک جا حال همهی دستگاهها، مثل روتر، سوییچ، سرور و چاپگر، را میپرسد و گاهی تنظیمشان را عوض میکند. روی هر دستگاه یک «عامل» هست که مقدارهای آن را در درختی به نام MIB نگه میدارد؛ «مدیر» با Get میپرسد (پورت ۱۶۱) و عامل با Trap خودش هشدار میدهد (پورت ۱۶۲). نسخهی ۳ رمزگذاری و احراز هویت دارد؛ نسخههای ۱ و ۲c نه.
نام
SNMP کوتاهشدهی Simple Network Management Protocol است: «پروتکل سادهی مدیریت شبکه». استانداردی برای اینکه مدیر شبکه از یک جا حال همهی دستگاهها را بپرسد، و گاهی تنظیمشان را عوض کند. به این کار، دیدن مرتب حال شبکه، «مانیتورینگ» یا پایش میگویند.
روترها، سوییچها، سرورها، چاپگرها و مودمهای کابلی معمولا SNMP دارند. این درس آغاز ایستگاه «نگهداری شبکه» است: بعد از ساختن و امن کردن شبکه، نوبت مراقبت از آن است.
چهار کلمه
- مدیر (manager، NMS)نرمافزاری روی یک رایانه که حال همهی دستگاهها را یکجا میپرسد و نشان میدهد.
- عامل (agent)نرمافزار کوچکی روی هر دستگاه، که اطلاعات آن را به زبان SNMP به مدیر میدهد.
- MIBفهرست درختی همهی مقدارهایی که از یک دستگاه میشود خواند یا تغییر داد.
- OIDنشانی یک مقدار در آن درخت؛ مثل شمارهی هر نشانگر داشبورد.
داشبورد خودرو
داشبورد خودرو را در نظر بگیرید. حسگرهایی در موتور، باک و چرخها هستند، و داشبورد همه را یکجا جلوی راننده نشان میدهد: سرعت، دمای موتور، سوخت. اگر اتفاقی بیفتد، چراغ هشدار خودش روشن میشود. و تعمیرکار میتواند با دستگاه عیبیاب، تنظیمی را عوض کند.
SNMP همین داشبورد است برای شبکه. حسگرها «عامل»ها هستند، روی هر دستگاه؛ داشبورد «مدیر» است؛ فهرست شمارهدار نشانگرها MIB است؛ چراغ هشدار Trap؛ و کار تعمیرکار، Set.
پرسیدن و هشدار دادن
اطلاعات از دو راه به مدیر میرسد. SNMP در لایهی کاربرد کار میکند و همهی پیامهایش روی UDP میروند:
پس پورت ۱۶۱ مال عامل است و ۱۶۲ مال مدیر. اگر SNMP با TLS امن شود، این دو ۱۰۱۶۱ و ۱۰۱۶۲ میشوند.
MIB و OID
هر مقداری که از یک دستگاه میشود خواند، مثل نام دستگاه، مدتی که روشن بوده، یا ترافیک یک رابط، در یک درخت جا دارد. این درخت MIB است، و نشانی هر مقدار در آن، یک OID. خود SNMP نمیگوید دستگاه چه مقدارهایی داشته باشد؛ هر دستگاه درخت خودش را تعریف میکند.
شمارههای این طراحی فقط برای نشان دادن شکل درختاند، نه OID واقعی.
پیامها
| پیام | از کجا به کجا | کارش |
|---|---|---|
| GetRequest | مدیر به عامل | خواندن یک یا چند مقدار |
| SetRequest | مدیر به عامل | تغییر یک مقدار، یعنی تغییر رفتار دستگاه |
| GetNextRequest | مدیر به عامل | مقدار بعدی در درخت؛ با تکرارش کل MIB پیموده میشود |
| GetBulkRequest | مدیر به عامل | چند مقدار با هم؛ از نسخهی ۲ |
| Response | عامل به مدیر | جواب همهی درخواستها |
| Trap | عامل به مدیر | هشدار بیدرخواست، برای رخداد مهم |
| InformRequest | به مدیر | هشداری که تأیید میگیرد؛ از نسخهی ۲ |
سه نسخه و امنیت
نسخهی ۱ در ۱۹۸۸ نوشته شد. نسخهی ۲c سریعتر و انعطافپذیرتر شد، ولی امنیتش همان ماند. در این دو نسخه، مدیر و عامل با یک «community string» به هم اعتماد میکنند، که چیزی شبیه رمز است؛ معمولا سه تا: فقطخواندنی، خواندنینوشتنی، و برای Trap. ولی اینها آشکار ردوبدل میشوند.
نسخهی ۳ امنیت را آورد: رمزگذاری (محرمانگی)، سنجش اینکه پیام عوض نشده (یکپارچگی) و اینکه از جای درست آمده (احراز هویت). همان سه هدفی که در درس مبانی امنیت دیدید.
امن کردن SNMP
SNMP برای دیدن و تنظیم دستگاهها از دور ساخته شده؛ پس اگر بد تنظیم شود، راهی برای نفوذ هم هست. این چهار قدم را به کار ببرید:
این همان سختکردن است: هر خدمتی که لازم نیست، خاموش؛ و هر چه لازم است، فقط برای کسی که لازم است.
سه اشتباه
- «SNMP فقط خواندن است.»با SetRequest میشود مقدارها را عوض کرد، یعنی رفتار دستگاه را؛ برای همین حالت خواندنینوشتنی باید با دقت تنظیم شود.
- «community string مثل رمز امن است.»در نسخهی ۱ و ۲c، community آشکار ردوبدل میشود؛ امنیت واقعی با نسخهی ۳ میآید.
- «مدیر همیشه باید بپرسد تا بفهمد.»عامل خودش هم با Trap خبر میدهد، بی آنکه کسی پرسیده باشد؛ مثل چراغ هشدار داشبورد.
جمعبندی. آنچه از این درس با خودتان میبرید.
- مانیتورینگ: دیدن حال همهی دستگاهها از یک جا.
- مدیر میپرسد، عامل روی هر دستگاه جواب میدهد.
- MIB درخت مقدارهاست؛ هر مقدار یک OID دارد.
- Get به پورت ۱۶۱؛ Trap به پورت ۱۶۲؛ همه روی UDP.
- نسخهی ۳ امن است؛ community در ۱ و ۲c آشکار میرود.
- SNMP بیاستفاده را خاموش کنید؛ فقط از نشانی مدیر.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.