این مقاله به ویژگی های نظارت بر تجهیزات شبکه با استفاده از پروتکل SNMPv3 اختصاص دارد. ما در مورد SNMPv3 صحبت خواهیم کرد، من تجربه خود را در ایجاد قالب های تمام عیار در Zabbix به اشتراک می گذارم و نشان خواهم داد که هنگام سازماندهی هشدارهای توزیع شده در یک شبکه بزرگ چه چیزی می توان به دست آورد. پروتکل SNMP هنگام نظارت بر تجهیزات شبکه اصلی است و Zabbix برای نظارت بر تعداد زیادی از اشیاء و خلاصه کردن حجم زیادی از معیارهای ورودی عالی است.
چند کلمه در مورد SNMPv3
بیایید با هدف پروتکل SNMPv3 و ویژگی های استفاده از آن شروع کنیم. وظایف SNMP نظارت بر دستگاه های شبکه و مدیریت اولیه با ارسال دستورات ساده به آنها (به عنوان مثال، فعال و غیرفعال کردن رابط های شبکه یا راه اندازی مجدد دستگاه) است.
تفاوت اصلی بین پروتکل SNMPv3 و نسخه های قبلی آن، توابع امنیتی کلاسیک [1-3] است، یعنی:
- احراز هویت، که مشخص می کند درخواست از یک منبع قابل اعتماد دریافت شده است.
- رمزگذاری (Encryption)، برای جلوگیری از افشای داده های ارسال شده در صورت رهگیری توسط اشخاص ثالث؛
- یکپارچگی، یعنی تضمین عدم دستکاری بسته در طول انتقال.
SNMPv3 به معنای استفاده از یک مدل امنیتی است که در آن استراتژی احراز هویت برای یک کاربر معین و گروهی که او به آن تعلق دارد تنظیم میشود (در نسخههای قبلی SNMP، درخواست از سرور به شی نظارت فقط «جامعه»، یک متن مقایسه میشود. رشته ای با "رمز عبور" که در متن واضح (متن ساده) منتقل می شود).
SNMPv3 مفهوم سطوح امنیتی را معرفی می کند - سطوح امنیتی قابل قبولی که پیکربندی تجهیزات و رفتار عامل SNMP شی نظارت را تعیین می کند. ترکیبی از مدل امنیتی و سطح امنیتی تعیین می کند که کدام مکانیسم امنیتی هنگام پردازش یک بسته SNMP استفاده می شود [4].
جدول ترکیبی از مدلها و سطوح امنیتی SNMPv3 را توضیح میدهد (من تصمیم گرفتم سه ستون اول را مانند نسخه اصلی بگذارم):
بر این اساس، ما از SNMPv3 در حالت احراز هویت با استفاده از رمزگذاری استفاده خواهیم کرد.
پیکربندی SNMPv3
نظارت بر تجهیزات شبکه به پیکربندی یکسانی از پروتکل SNMPv3 در سرور نظارت و شیء نظارت شده نیاز دارد.
بیایید با راه اندازی یک دستگاه شبکه سیسکو شروع کنیم، حداقل پیکربندی مورد نیاز آن به شرح زیر است (برای پیکربندی ما از CLI استفاده می کنیم، نام ها و رمزهای عبور را برای جلوگیری از سردرگمی ساده کردم):
snmp-server group snmpv3group v3 priv read snmpv3name
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included
گروه snmp-server خط اول - گروهی از کاربران SNMPv3 (snmpv3group)، حالت خواندن (خواندن) و حق دسترسی گروه snmpv3group را برای مشاهده شاخه های خاصی از درخت MIB شی نظارت (snmpv3name سپس در پیکربندی مشخص میکند که گروه میتواند به کدام شاخههای درخت MIB دسترسی داشته باشد.
خط دوم کاربر snmp-server – کاربر snmpv3user، عضویت او در گروه snmpv3group و همچنین استفاده از احراز هویت md5 (رمز عبور md5 md5v3v3v3 است) و رمزگذاری des (رمز برای des des56v3v3v3 است) را تعریف می کند. البته بهتر است به جای des از aes استفاده کنید؛ من آن را در اینجا فقط به عنوان مثال میآورم. همچنین، هنگام تعریف کاربر، می توانید یک لیست دسترسی (ACL) اضافه کنید که آدرس های IP سرورهای نظارتی را که حق نظارت بر این دستگاه را دارند، تنظیم می کند - این نیز بهترین عمل است، اما من مثال خود را پیچیده نمی کنم.
نمای snmp-server خط سوم یک نام کد را تعریف می کند که شاخه هایی از درخت snmpv3name MIB را مشخص می کند تا بتوان آنها را توسط گروه کاربری snmpv3group پرس و جو کرد. ISO، به جای تعریف دقیق یک شاخه، به گروه کاربری snmpv3group اجازه می دهد تا به تمام اشیاء در درخت MIB شی نظارت دسترسی داشته باشد.
تنظیمات مشابه برای تجهیزات Huawei (همچنین در CLI) به این صورت است:
snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5
md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
des56v3v3v3
پس از راه اندازی دستگاه های شبکه، باید از طریق پروتکل SNMPv3 دسترسی از سرور نظارت را بررسی کنید، من از snmpwalk استفاده خواهم کرد:
snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252
یک ابزار بصری تر برای درخواست اشیاء OID خاص با استفاده از فایل های MIB snmpget است:
حالا بیایید به تنظیم یک عنصر داده معمولی برای SNMPv3 در قالب Zabbix برویم. برای سادگی و استقلال MIB، من از OID های دیجیتال استفاده می کنم:
من از ماکروهای سفارشی در فیلدهای کلیدی استفاده می کنم زیرا آنها برای همه عناصر داده در قالب یکسان خواهند بود. اگر پارامترهای SNMPv3 همه دستگاههای شبکه در شبکه شما دارای پارامترهای SNMPv3 یکسان باشند، یا در داخل یک گره شبکه، اگر پارامترهای SNMPvXNUMX برای اشیاء نظارتی مختلف متفاوت است، میتوانید آنها را در یک الگو تنظیم کنید:
لطفا توجه داشته باشید که سیستم مانیتورینگ فقط دارای نام کاربری و رمز عبور برای احراز هویت و رمزگذاری است. گروه کاربر و محدوده اشیاء MIB که دسترسی به آنها مجاز است در شی نظارت مشخص شده است.
حالا بیایید به پر کردن قالب برویم.
قالب نظرسنجی Zabbix
یک قانون ساده هنگام ایجاد هر الگوی نظرسنجی این است که آنها را تا حد امکان دقیق کنید:
من به موجودی توجه زیادی می کنم تا کار با یک شبکه بزرگ را آسان تر کنم. در این مورد کمی بعدتر بیشتر می شود، اما در حال حاضر - محرک ها:
برای سهولت تجسم محرکها، ماکروهای سیستم {HOST.CONN} در نام آنها گنجانده شده است تا نه تنها نام دستگاهها، بلکه آدرسهای IP نیز روی داشبورد در بخش هشدار نمایش داده شوند، اگرچه این امر بیش از آنکه ضروری باشد یک موضوع راحت است. . برای تعیین اینکه آیا یک دستگاه در دسترس نیست، علاوه بر درخواست معمول اکو، از بررسی عدم دسترسی میزبان با استفاده از پروتکل SNMP استفاده می کنم، زمانی که شی از طریق ICMP در دسترس است اما به درخواست های SNMP پاسخ نمی دهد - این وضعیت ممکن است، برای مثال ، هنگامی که آدرس های IP در دستگاه های مختلف تکرار می شوند، به دلیل فایروال های پیکربندی نادرست، یا تنظیمات نادرست SNMP در اشیاء نظارتی. اگر از بررسی در دسترس بودن میزبان فقط از طریق ICMP استفاده می کنید، در زمان بررسی حوادث در شبکه، داده های نظارت ممکن است در دسترس نباشد، بنابراین دریافت آنها باید نظارت شود.
بیایید به شناسایی رابط های شبکه برویم - برای تجهیزات شبکه این مهمترین عملکرد نظارت است. از آنجایی که ممکن است صدها رابط در یک دستگاه شبکه وجود داشته باشد، لازم است موارد غیرضروری را فیلتر کنید تا در تجسم یا پایگاه داده بهم ریخته نشود.
من از تابع کشف استاندارد SNMP با پارامترهای قابل کشف بیشتر برای فیلتر کردن انعطاف پذیرتر استفاده می کنم:
discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]
با این کشف، می توانید رابط های شبکه را بر اساس انواع، توضیحات سفارشی و وضعیت پورت های اداری فیلتر کنید. فیلترها و عبارات منظم برای فیلتر کردن در مورد من به شکل زیر هستند:
در صورت شناسایی، رابط های زیر حذف می شوند:
- به لطف IFADMINSTATUS به صورت دستی غیرفعال شد (adminstatus<>1).
- بدون شرح متن، با تشکر از IFALIAS.
- داشتن نماد * در توضیحات متن، با تشکر از IFALIAS.
- به لطف IFDESCR که خدماتی یا فنی هستند (در مورد من، در عبارات منظم IFALIAS و IFDESCR با یک نام مستعار عبارت منظم بررسی می شوند).
الگوی جمع آوری داده ها با استفاده از پروتکل SNMPv3 تقریباً آماده است. ما با جزئیات بیشتر در مورد نمونه های اولیه عناصر داده برای رابط های شبکه صحبت نخواهیم کرد؛ اجازه دهید به نتایج بپردازیم.
نتایج پایش
برای شروع، موجودی یک شبکه کوچک را تهیه کنید:
اگر الگوهایی را برای هر سری از دستگاه های شبکه تهیه کنید، می توانید به یک طرح بندی ساده برای تجزیه و تحلیل داده های خلاصه بر روی نرم افزار فعلی، شماره سریال، و اعلان یک پاک کننده به سرور (به دلیل زمان کم) دست پیدا کنید. گزیده ای از لیست قالب من در زیر است:
و اکنون - پانل مانیتورینگ اصلی، با محرک های توزیع شده بر اساس سطوح شدت:
به لطف یک رویکرد یکپارچه به الگوها برای هر مدل دستگاه در شبکه، می توان اطمینان حاصل کرد که در چارچوب یک سیستم نظارتی، ابزاری برای پیش بینی خطاها و حوادث سازماندهی می شود (در صورت وجود سنسورها و معیارهای مناسب). Zabbix برای نظارت بر زیرساختهای شبکه، سرور و سرویس مناسب است و وظیفه نگهداری تجهیزات شبکه به وضوح تواناییهای آن را نشان میدهد.
فهرست منابع مورد استفاده:1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410.
3. RFC 3415.
4. راهنمای پیکربندی SNMP، Cisco IOS XE Release 3SE. فصل: SNMP نسخه 3.
منبع: www.habr.com