المقدمة
يوضح هذا المستند كيفية تأمين بروتوكول إدارة الشبكة البسيط (SNMP).
المتطلبات الأساسية
المتطلبات
لا توجد متطلبات خاصة لهذا المستند.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
الاصطلاحات
للحصول على مزيد من المعلومات حول اصطلاحات المستندات، ارجع إلى اصطلاحات تلميحات Cisco التقنية.
معلومات أساسية
من المهم تأمين بروتوكول SNMP الخاص بك خاصة عندما يمكن إستخدام نقاط ضعف بروتوكول SNMP بشكل متكرر لإنتاج رفض الخدمة (DoS).
إستراتيجيات تأمين SNMP
أختر سلسلة مجتمع SNMP جيدة
وليس من الممارسات الجيدة أن تستخدم العامة كأدوات مجتمعية للقراءة فقط أو خاصة كسلاسل مجتمعية للقراءة والكتابة.
طريقة عرض SNMP للإعداد
يمكن Setup SNMP view للأمر حظر المستخدم مع الوصول فقط إلى قاعدة معلومات الإدارة المحدودة (MIB). وبشكل افتراضي، لا يوجد SNMP view entry exists . يتم تكوين هذا الأمر في وضع التكوين العام ويتم تقديمه أولا في الإصدار 10.3 من برنامج Cisco IOS Software. وهو يعمل بشكل مشابه access-list في أنه إذا كان لديك أي SNMP View أشجار معينة من نوع MIB، فإنه يتم رفض كل شجرة أخرى بشكل غير مفهوم. ومع ذلك، فإن التسلسل غير مهم ويمر عبر القائمة بأكملها لمطابقة قبل توقفه.
لإنشاء إدخال عرض أو تحديثه، أستخدم snmp-server view global configuration الأمر. لإزالة إدخال طريقة عرض خادم SNMP المحدد، أستخدم no نموذج هذا الأمر.
الصيغة:
snmp-server view view-name oid-tree {included | excluded}
no snmp-server view view-name
وصف الصيغة Syntax:
-
view-name
— تسمية سجل طريقة العرض الذي تقوم بتحديثه أو إنشائه. يتم إستخدام الاسم للإشارة إلى السجل.
-
oid-tree — معرف الكائن للشجرة الفرعية One الخاصة بالتدوين التجريدي للصياغة (ASN.1) المراد تضمينها أو إستبعادها من العرض. لتحديد الشجرة الفرعية، حدد سلسلة نصية تتكون من أرقام، مثل 1.3.6.2.4، أو كلمة، مثل system. إستبدال معرف فرعي واحد ببطاقة بدل العلامة (*) لتحديد عائلة شجرة فرعية، على سبيل المثال 1.3.*.4.
-
included | excluded— نوع العرض. يجب تحديد إما مضمنة أو مستبعدة.
يمكن إستخدام طريقتي عرض معياريتين محددتين مسبقا عندما تكون طريقة العرض مطلوبة بدلا من طريقة العرض التي يجب تعريفها. الأول هو كل شيء، مما يشير إلى أن المستخدم يمكنه رؤية كل الكائنات. أما المجموعة الأخرى فهي مقيدة ، مما يشير إلى أن المستخدم يمكنه مشاهدة ثلاث مجموعات: system، snmpStats، و snmpParties. يتم وصف طرق العرض المحددة مسبقا في RFC 1447.
ملاحظة: snmp-server الأمر الأول الذي تقوم بإدخاله يمكن كلا من إصداري SNMP.
يقوم هذا المثال بإنشاء طريقة عرض تتضمن جميع الكائنات في مجموعة أنظمة MIB-II باستثناء sysServices (النظام 7) وجميع الكائنات للواجهة 1 في مجموعة واجهات MIB-II:
snmp-server view agon system included
snmp-server view agon system.7 excluded
snmp-server view agon ifEntry.*.1 included
هذا مثال كامل ل كيف أن يطبق ال MIB مع مجتمع خيط و الإنتاج من snmpwalk مع view في مكان. يحدد هذا التكوين طريقة عرض ترفض وصول SNMP لجدول بروتوكول تحليل العنوان (ARP) atEntry وتسمح به ل MIB-II و Cisco MIB الخاص:
snmp-server view myview mib-2 included
snmp-server view myview atEntry excluded
snmp-server view myview cisco included
snmp-server community public view myview RO 11
snmp-server community private view myview RW 11
snmp-server contact pvanderv@cisco.com
هذا هو الأمر والمخرجات لمجموعة أنظمة MIB-II:
NMSPrompt 82 % snmpwalk cough system
system.sysDescr.0 : DISPLAY STRING- (ascii):Cisco Internetwork Operating System Software
Cisco IOS (tm) 2500 Software (C2500-JS-L), Version 12.0(1)T,RELEASE SOFTWARE (fc2)
Copyright (c) 1986-1998 by cisco Systems, Inc.
Compiled Wed 04-Nov-98 20:37 by dschwart
system.sysObjectID.0 : OBJECT IDENTIFIER:
.iso.org.dod.internet.private.enterprises.cisco.ciscoProducts.cisco2520
system.sysUpTime.0 : Timeticks: (306588588) 35 days, 11:38:05.88
system.sysContact.0 : DISPLAY STRING- (ASCII):pvanderv@cisco.com
system.sysName.0 : DISPLAY STRING- (ASCII):cough
system.sysLocation.0 : DISPLAY STRING- (ASCII):
system.sysServices.0 : INTEGER: 78
system.sysORLastChange.0 : Timeticks: (0) 0:00:00.00
NMSPrompt 83 %
هذا هو الأمر والمخرجات لمجموعة أنظمة Cisco المحلية:
NMSPrompt 83 % snmpwalk cough lsystem
cisco.local.lsystem.romId.0 : DISPLAY STRING- (ASCII):
System Bootstrap, Version 11.0(10c), SOFTWARE
Copyright (c) 1986-1996 by cisco Systems
cisco.local.lsystem.whyReload.0 : DISPLAY STRING- (ASCII):power-on
cisco.local.lsystem.hostName.0 : DISPLAY STRING- (ASCII):cough
هذا هو الأمر والمخرجات لجدول MIB-II ARP:
NMSPrompt 84 % snmpwalk cough atTable
no MIB objects contained under subtree.
NMSPrompt 85 %
إعداد مجتمع SNMP باستخدام قائمة الوصول
توصي أفضل الممارسات الحالية بتطبيق قوائم التحكم في الوصول (ACL) على سلاسل المجتمع وضمان عدم تطابق سلاسل مجتمع الطلبات مع سلاسل مجتمع الإعلامات. توفر قوائم الدخول المزيد من الحماية عند إستخدامها مع إجراءات وقائية أخرى.
يقوم هذا المثال بإعداد قائمة التحكم في الوصول (ACL) إلى سلسلة المجتمع:
access-list 1 permit 10.1.1.1
snmp-server community string1 ro 1
عند إستخدام سلاسل مجتمع مختلفة للطلبات ورسائل الملائمة، فإنها تقلل من احتمال وقوع مزيد من الهجمات أو التنازلات إذا تم اكتشاف سلسلة المجتمع بواسطة المهاجم. وإلا، فيمكن للمهاجم التضحية بجهاز بعيد أو التقاط رسالة ملائمة من الشبكة دون تفويض.
بمجرد تمكين الملائمة باستخدام سلسلة مجتمع، يمكن تمكين السلسلة للوصول إلى SNMP في بعض برامج Cisco IOS. يجب تعطيل هذا المجتمع بشكل صريح. على سبيل المثال:
access-list 10 deny any
snmp-server host 10.1.1.1 mystring1
snmp-server community mystring1 RO 10
إعداد SNMP الإصدار 3
قم بهذه الخطوات لتكوين الإصدار 3 من SNMP:
-
قم بتعيين معرف محرك لكيان SNMP (إختياري).
-
قم بتعريف مستخدم ومستخدم ينتمي إلى مجموعة Group وتطبيق noAuthentication (بدون كلمة مرور) وnoPrivacy (بدون تشفير) على هذا المستخدم.
-
قم بتعريف مستخدم و user2  إصدار ينتمي إلى المجموعة الثانية وتطبيق noAuthentication (بدون كلمة مرور) وnoPrivacy (بدون تشفير) على هذا المستخدم.
-
قم بتعريف مستخدم وuser3 الذي ينتمي إلى مجموعة GroupThree وتطبيق المصادقة (كلمة المرور هي user3passwd) وnoPrivacy (لا يوجد تشفير) على هذا المستخدم.
-
قم بتعريف مستخدم، user4 ، ينتمي إلى مجموعة المستخدمين4 وقم بتطبيق المصادقة (كلمة المرور هي user4passwd) والخصوصية (تشفير des56) على هذا المستخدم.
-
قم بتعريف مجموعة، مجموعة، بواسطة نموذج أمان المستخدم (USM) V3 وتمكين الوصول للقراءة على طريقة العرض الافتراضية v1(الافتراضية).
-
قم بتحديد مجموعة، المجموعة الثانية ، باستخدام USM V3 وتمكين الوصول للقراءة على طريقة العرض MyView .
-
قم بتحديد مجموعة، groupthree ، عن طريق USM V3، وقم بتمكين الوصول للقراءة على طريقة العرض v1default (الافتراضية)، عن طريق المصادقة .
-
قم بتحديد مجموعة، المجموعةFour، من خلال USM V3، وقم بتمكين الوصول للقراءة على طريقة العرض v1default (الافتراضية)، من خلال المصادقة والخصوصية.
-
حدد طريقة عرض، MyView ، توفر وصول القراءة على MIB-II وترفض وصول القراءة على قاعدة معلومات الإدارة (MIB) الخاصة من Cisco.
يعطي show running الإخراج أسطر إضافية لعامة المجموعة، بسبب وجود عام خاص بسلسلة المجتمع للقراءة فقط تم تعريفه.
لا يعرض show running الإخراج UserThree.
مثال:
snmp-server engineID local 111100000000000000000000
snmp-server user userone groupone v3
snmp-server user usertwo grouptwo v3
snmp-server user userthree groupthree v3 auth md5 user3passwd
snmp-server user userfour groupfour v3 auth md5 user4passwd priv des56
user4priv
snmp-server group groupone v3 noauth
snmp-server group grouptwo v3 noauth read myview
snmp-server group groupthree v3 auth
snmp-server group groupfour v3 priv
snmp-server view myview mib-2 included
snmp-server view myview cisco excluded
snmp-server community public RO
هذا هو الأمر والمخرجات لمجموعة أنظمة MIB-II باستخدام مستخدم userOne:
NMSPrompt 94 % snmpwalk -v3 -n "" -u userone -l noAuthNoPriv clumsy system
Module SNMPV2-TC not found
system.sysDescr.0 = Cisco Internetwork Operating System Software
Cisco IOS (TM) 4500 Software (C4500-IS-M), Version 12.0(3)T,RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1999 by cisco Systems, Inc.
Compiled Tue 23-Feb-99 03:59 by ccai
system.sysObjectID.0 = OID: enterprises.9.1.14
system.sysUpTime.0 = Timeticks: (28208096) 3 days, 6:21:20.96
system.sysContact.0 =
system.sysName.0 = clumsy.cisco.com
system.sysLocation.0 =
system.sysServices.0 = 78
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
NMSPrompt 95 %
هذا هو الأمر والمخرجات لمجموعة أنظمة MIB-II مع مستخدم user2:
NMSPrompt 95 % snmpwalk -v3 -n "" -u usertwo -l noAuthNoPriv clumsy system
Module SNMPV2-TC not found
system.sysDescr.0 = Cisco Internetwork Operating System Software
Cisco IOS (TM) 4500 Software (C4500-IS-M), Version 12.0(3)T,RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1999 by cisco Systems, Inc.
Compiled Tue 23-Feb-99 03:59 by ccai
system.sysObjectID.0 = OID: enterprises.9.1.14
system.sysUpTime.0 = Timeticks: (28214761) 3 days, 6:22:27.61
system.sysContact.0 =
system.sysName.0 = clumsy.cisco.com
system.sysLocation.0 =
system.sysServices.0 = 78
system.sysORLastChange.0 = Timeticks: (0) 0:00:00.00
هذا هو الأمر والمخرجات لمجموعة النظام المحلي من Cisco باستخدام مستخدم:
NMSPrompt 98 % snmpwalk -v3 -n "" -u userone -l noAuthNoPriv clumsy .1.3.6.1.4.1.9.2.1
Module SNMPV2-TC not found
enterprises.9.2.1.1.0 = "..System Bootstrap, Version 5.2(7b) [mkamson 7b],
RELEASE SOFTWARE (fc1)..Copyright (c) 1995 by cisco Systems,
Inc..."
enterprises.9.2.1.2.0 = "reload"
enterprises.9.2.1.3.0 = "clumsy"
enterprises.9.2.1.4.0 = "cisco.com"
هذا هو الأمر والمخرجات التي تظهر أنه لا يمكنك الحصول على مجموعة النظام المحلي من Cisco باستخدام المستخدمtwo:
NMSPrompt 99 % snmpwalk -v3 -n "" -u usertwo -l noAuthNoPriv clumsy .1.3.6.1.4.1.9.2.1
Module SNMPV2-TC not found
enterprises.9.2.1 = No more variables left in this MIB View
NMSPrompt 100 %
هذا الأمر والنتيجة مخصصة tcpdump (تصحيح لدعم الإصدار 3 من SNMP وإضافة من الطابعة):
NMSPrompt 102 % snmpget -v3 -n "" -u userone -l noAuthNoPriv clumsy system.sysName.0
Module SNMPV2-TC not found
system.sysName.0 = clumsy.cisco.com
إعداد قائمة التحكم في الوصول (ACL) على الواجهات
توفر ميزة قائمة التحكم في الوصول (ACL) تدابير أمان تمنع الهجمات مثل انتحال عناوين IP. يمكن تطبيق قائمة التحكم في الوصول (ACL) على الواجهات الواردة أو الصادرة على الموجهات.
على الأنظمة الأساسية التي ليس لديها خيار إستخدام قوائم التحكم في الوصول للاستقبال (rACLs)، من الممكن السماح بحركة مرور بروتوكول مخطط بيانات المستخدم (UDP) إلى الموجه من عناوين IP الموثوق بها باستخدام قوائم التحكم في الوصول للواجهة.
يمكن تكييف قائمة الوصول الموسعة التالية مع شبكتك. يفترض هذا المثال أن الموجه يحتوي على عنواني IP 192.168.10.1 و 172.16.1.1 مكونا على الواجهات الخاصة به، وأن جميع وصول SNMP يجب أن يكون مقصورا على محطة إدارة بعنوان IP 10.1.1.1، وأن محطة الإدارة تحتاج فقط إلى الاتصال بعنوان IP 192.168.10.1:
access-list 101 permit udp host 10.1.1.1 host 192.168.10.1
ويجب access-listبعد ذلك تطبيق الأمر على جميع الواجهات باستخدام أوامر التكوين التالية:
interface ethernet 0/0
ip access-group 101 in
يجب إدراج جميع الأجهزة التي تتصل مباشرة بالموجه على منافذ UDP بشكل خاص في قائمة الوصول السابقة. يستخدم برنامج Cisco IOS software المنافذ في النطاق 49152 إلى 65535 كمنفذ مصدر للجلسات الصادرة مثل استعلامات نظام اسم المجال (DNS).
بالنسبة للأجهزة التي لها العديد من عناوين IP التي تم تكوينها، أو العديد من الأجهزة المضيفة التي تحتاج إلى الاتصال بالموجه، لا يكون هذا حلا قابلا للتطوير دائما.
rACLs
بالنسبة للأنظمة الأساسية الموزعة، يمكن أن تكون قوائم التحكم في الوصول للاستقبال خيارا يبدأ في برنامج Cisco IOS الإصدار 12.0(21)S2 لموجه محول جيجابت من السلسلة Cisco 12000 Series (GSR) والإصدار 12.0(24)S لسلسلة Cisco 7500. تحمي قوائم الوصول للاستقبال الجهاز من حركة المرور الضارة قبل أن تتمكن حركة المرور من التأثير على معالج الموجه. كما تعد قوائم التحكم في الوصول لمسار الاستقبال أفضل ممارسة أمان شبكة، ويجب اعتبارها كإضافة طويلة المدى لأمان الشبكة الجيد، وكذلك كحل بديل لهذا الضعف المحدد. يتم توزيع حمل وحدة المعالجة المركزية على معالجات بطاقة الخط ويساعد على تخفيف الحمل على معالج التوجيه الرئيسي. إن الكتاب الأبيض المعنون GSR: قوائم التحكم في الوصول للاستقبال يساعد على تحديد حركة المرور الشرعية. أستخدم هذا التقرير الأبيض لفهم كيفية إرسال حركة مرور مشروعة إلى جهازك ورفض جميع الحزم غير المرغوب فيها أيضا.
قوائم التحكم في الوصول (ACLs) للبنية الأساسية
على الرغم من أنه غالبا ما يكون من الصعب حظر حركة المرور التي تنقل شبكتك، إلا أنه من الممكن تحديد حركة المرور التي يجب عدم السماح لها باستهداف أجهزة البنية الأساسية وحظر حركة المرور هذه على حدود شبكتك. تعد قوائم التحكم في الوصول للبنية الأساسية أفضل ممارسة أمان شبكة ويجب اعتبارها كإضافة طويلة المدى لأمان الشبكة الجيد وكذلك كحل بديل لهذا الضعف المحدد. يقدم التقرير الرسمي، المعنون حماية طبقتك الأساسية: قوائم التحكم في الوصول لحماية البنية الأساسية"، إرشادات وتقنيات نشر موصى بها لقوائم التحكم في الوصول للبنية الأساسية (iACLs)..
ميزة أمان محول شبكة LAN Catalyst من Cisco
تعمل ميزة قائمة تصريح IP على تقييد وصول Telnet و SNMP الوارد إلى المحول من عناوين IP للمصدر غير المصرح به. يتم دعم رسائل Syslog و SNMP traps لإخطار نظام الإدارة عند حدوث انتهاك أو وصول غير مصرح به.
يمكن إستخدام مجموعة من ميزات أمان برنامج Cisco IOS software لإدارة الموجهات ومحولات Cisco Catalyst Switches. يلزم إنشاء سياسة أمان تحدد عدد محطات الإدارة التي يمكنها الوصول إلى المحولات والموجهات.
لمزيد من المعلومات حول كيفية زيادة الأمان على شبكات IP، ارجع إلى زيادة الأمان على شبكات IP .
كيفية التحقق من أخطاء SNMP
قم بتكوين قوائم التحكم في الوصول إلى مجتمع SNMP باستخدام log الكلمة الأساسية. مراقبة syslog المحاولات الفاشلة، كما هو موضح أدناه.
access-list 10 deny any log
snmp-server community public RO 10
عندما يحاول شخص ما الوصول إلى الموجه مع عامة المجتمع، سترى syslog مماثلا لما يلي:
%SEC-6-IPACCESSLOGS: list 10 denied 172.16.1.15packet
يعني هذا الإخراج أن قائمة الوصول 10 رفضت خمس حزم SNMP من المضيف 172.16.1.1.
تحقق من بروتوكول SNMP بشكل دوري بحثا عن الأخطاء باستخدام show snmp الأمر، كما هو موضح هنا:
router#show snmp Chassis: 21350479 17005 SNMP packets input
37 Bad SNMP version errors**
15420 Unknown community name**
0 Illegal operation for community name supplied
1548 Encoding errors**
0 Number of requested variables
0 Number of altered variables
0 Get-request PDUs
0 Get-next PDUs
0 Set-request PDUs 0 SNMP packets output
0 Too big errors (Maximum packet size 1500)
0 No such name errors
0 Bad values errors
0 General errors
0 Response PDUs
0 Trap PDUs
شاهد العدادات التي تم وضع علامة عليها ** للزيادات غير المتوقعة في معدلات الخطأ التي يمكن أن تشير إلى محاولة إستغلال مكامن الضعف هذه. للإبلاغ عن أي مشكلة أمان، ارجع إلى الاستجابة لحوادث أمان منتجات Cisco.
معلومات ذات صلة