Simple Network Management Protocol یا همان SNMP پروتکل پرکاربرد برای مدیریت شبکه است. از SNMP برای جمع آوری اطلاعات مربوط به پیکربندی ها و تجهیزات شبکه مانند سرورها، پرینترها، سوییچ ها و مسیریاب ها، بر اساس آدرس های IP، استفاده می شود.
SNMP در واقع یک پروتکل لایه Application است که برای تبادل اطلاعات مدیریتی بین تجهیزات شبکه استفاده می شود.
بطور کلی نحوه کار SNMP بدین شکل است که یک Agnet (ویژگیست که روی سرویس گیرنده ها نصب و فعال شده تا اطلاعات آنها را جمع آوری کرده و به سرور بفرستد) اطلاعات سرویس گیرنده ها را به SNMP Manger ارسال کرده و سرور SNMP این اطلاعات را مانیتور میکند
1-11-5. دستورات community
1 2 |
ZHARF(config)# snmp-server community community-string [ ro | rw ] ZHARF(config)# no snmp-server community community-string |
جهت تعریف community و یا تغییر آن از این دستور در سطح پیکربندی سراسری استفاده میشود
community در نسخه های SNMPv1 و SNMPv2c جهت دسترسی به پروتکل تعریف و مورد استفاده قرار می گیرد. در نسخه های ذکر شده ابتدا رشته های community مورد نظر با دسترسی های خاص تعریف و سپس کاربران از طریق این رشته ها اطلاعات را از سیستم هدف استخراج می نمایند. جهت حذف community از شکل no دستور استفاده می شود.
توضیح پارامترهای این دستور در زیر آورده شده است:
community-string: رشته ای است که توسط آن نام community را تعریف می نماییم و دسترسی ها از طریق همین نام صورت می گیرد. این پارامتر اجباری است.
[ ro | rw ]: این پارامتر نوع دسترسی خواندنی یا نوشتنی را تعیین می کند. جهت دسترسی فقط خواندنی از گزینه ro و جهت تعیین دسترسی خواندنی-نوشتنی از گزینه rw استفاده نمایید. این پارامتر اختیاری است و پیش فرض آن ro می باشد.
مثال:
1 |
ZHARF(config)# snmp-server community rwComm rw |
community با نام rwComm تعریف شده است که دسترسی آن از نوع خواندنی-نوشتنی می باشد.
1 |
ZHARF(config)# snmp-server community defaultComm |
community با نام defaultComm تعریف شده است که دسترسی آن به صورت صریح تعریف نشده است، بنابراین دسترسی پیش فرض که فقط خواندنی می باشد به آن اختصاص داده شده است.
1 |
ZHARF(config)# no snmp-server community rwComm |
community با نام rwComm حذف می گردد. پس از حذف این community، امکان استفاده از آن برای دسترسی به SNMP ممکن نمی باشد.
2-11-5. دستورات گروه
1 2 |
ZHARF(config)# snmp-server group group-name { v1 | v2c | v3 [ auth | noauth | priv ] } { read | write } ZHARF(config)# no snmp-server group <group_name> {v1|v2c|v3 [auth|noauth|priv]} |
جهت تعریف گروه و یا به روز رسانی آن، از شکل کلی دستور بالا استفاده می شود.
گروه در نسخهی SNMPv3 جهت تعیین دسترسی کاربر نسخه ۳ مورد استفاده قرار می گیرد. جهت حذف گروه از شکل no دستور استفاده می شود.
توضیح پارامترهای این دستور در زیر آورده شده است:
group–name: رشته ای است که توسط آن نام گروه را تعریف می نماییم. این پارامتر اجباری است.
{v1 | v2c | v3}: این پارامتر نسخه ای که گروه برای آن تعریف شده است را مشخص می نماید. در صورتی که نسخه 3 پروتکل SNMP انتخاب گردد، سوییچ های بعدی برای تعیین نوع امنیت گروه هستند
{auth|noauth|priv}: در صورتی که در دستور مشخص شده باشد که گروه برای نسخه 3 پروتکل SNMP مورد استفاده قرار می گیرد، توسط این پارامتر می توان نوع امنیت گروه را مشخص کرد . این پارامتر اجباری است. انتخاب هر یک از گزینه ها در زیر توضیح داده شده است:
auth: در صورتی که این گزینه انتخاب گردد، مشخص می گردد که برای دسترسی به اطلاعات SNMP باید حتما تشخیص هویت صورت گیرد.یعنی نوع امنیت گروه دارای احراز هویت است
noauth: در صورتی که گزینه noauth انتخاب گردد جهت دسترسی به اطلاعات SNMP لازم به احراز هویت نمی باشد. یعنی نوع امنیت گروه فاقد احراز هویت است
priv: در صورتی که گزینه priv انتخاب گردد، علاوه بر لزوم احراز هویت برای دسترسی به اطلاعات SNMP ، رمزنگاری اطلاعات تبادلی نیز صورت میگیرد می شوند. یعنی نوع امنیت گروه هم دارای احراز هویت است و هم رمزنگاری
{read | write}: این پارامتر نوع دسترسی کاربر SNMP را مشخص می نماید. در صورت انتخاب read دسترسی از نوع فقط خواندنی تعیین میشود و در صورت انتخاب write دسترسی از نوع خواندنی-نوشتنی می گردد. این پارامتر اختیاری است و در حالت پیش فرض از نوع read می باشد.
مثال:
1 |
ZHARF(config)# snmp-server group grp3 v3 auth read |
گروه با نام grp3 برای SNMPv3 تعریف شده است که جهت دسترسی به اطلاعات باید احراز هویت صورت بگیرد و دسترسی آن از نوع خواندنی می باشد.
1 |
ZHARF(config)# no snmp-server group grp3 v3 auth |
گروه با نام grp3 حذف می گردد.
3-11-5. دستورات کاربر
1 2 |
ZHARF(config)# snmp-server user user-name group-name { v1 | v2c | v3 { auth { md5 | sha } authentication-password { priv { aes | des } privacy-password } } } ZHARF(config)# no snmp-server user user-name group-name {v1 | v2c | v3} |
جهت تعریف کاربر و یا به روز رسانی آن، از شکل کلی دستور بالا استفاده می کنیم. مفهوم کاربر در SNMPv3 تعریف میشود اما می توان روی نسخه های 1 و 2c پروتکل SNMP نیز کاربر را تعریف نمود. جهت حذف کاربر از شکل no دستور استفاده می شود.
توضیح پارامترهای این دستور در زیر آورده شده است:
user–name: رشته ای است که توسط آن نام کاربری را تعریف می نماییم. این پارامتر اجباری است.
group-name: رشته ای است که توسط آن نام گروه را تعریف می نماییم. این پارامتر اجباری است.
{v1 | v2c | v3}: این پارامتر نسخه ی کاربر SNMP را مشخص می نماید. در صورتی که کاربر SNMPv3 باشد، در ادامه سوییچ هایی که وجود دارند برای تعیین پارامترهای امنیتی کاربر هستند:
auth: در صورتی که در دستور مشخص شده باشد که کاربر SNMPv3 می باشد، توسط این پارامتر می توان تعیین نمود که دسترسی به اطلاعات از طریق پروتکل SNMP برای این کاربر با شرط احراز هویت صورت بگیرد. این پارامتر اختیاری می باشد.
در صورتی که گزینه اختیاری auth انتخاب گردد:
{md5 | sha}: توسط این گزینه نوع الگوریتم احراز هویت تعیین می گردد. الگوریتم احراز هویت می تواند MD5 یا SHA انتخاب گردد.
authentication–password: رشته ای که توسط آن احراز هویت صورت می پذیرد. در واقع رمز عبور یا کلید احراز هویت است
priv: در صورتی که در دستور مشخص شده باشد که کاربر SNMPv3 می باشد، توسط این پارامتر می توان تعیین نمود که دسترسی به اطلاعات از طریق پروتکل SNMP برای این کاربر با شرط احراز هویت صورت بگیرد و بسته های تبادلی رمزنگاری گردند. این پارامتر اختیاری می باشد.
در صورتی که گزینه اختیاری priv انتخاب گردد:
{aes | des}: توسط این گزینه نوع الگوریتم رمزنگاری تعیین می گردد. الگوریتم رمزنگاری می تواند AES یا DES انتخاب گردد.
privacy–password: رشته ای که توسط آن کلید رمزنگاری تعیین می گردد. در واقع رمز عبور یا کلید رمزنگاری است
مثال:
1 |
ZHARF(config)# snmp-server user usr3 grp3 v3 auth md5 usr3pass |
کاربر SNMPv3 با نام usr3 تعریف شده است که جهت دسترسی به اطلاعات باید احراز هویت صورت بگیرد .
1 |
ZHARF(config)# snmp-server user usr3p grp3p v3 auth sha usr3pass priv AES usr3pass |
کاربر SNMPv3 با نام usr3p تعریف شده است که جهت دسترسی به اطلاعات باید احراز هویت صورت بگیرد و اطلاعات تبادلی رمزنگاری می گردند .
1 |
ZHARF(config)# no snmp-server user usr3 grp3 v3 |
گروه با نام usr3 حذف می گردد.
1 |
ZHARF(config)# no snmp-server |
با اجرای این دستور تمامی تنظیمات SNMP غیرفعال می گردد. با زدن اولین دستور snmp–server تنظیمات غیرفعال شده دوباره فعال می گردند.
4-11-5. فعال سازی ارسال Trapهای SNMP از طریق host
توسط دستور زیر Trap های موجود در مسیریاب ژرف به میزبان تعیین شده ارسال میشوند
1 |
Zharf(config)# snmp-server host ip-address [community-string/informs/traps] snmp |
برای غیر فعالسازی دستور فوق از شکلno آن استفاده میکنیم
1 |
Zharf(config)# no snmp-server host [host-ip:port] [community-string/informs/traps] snmp |
جهت فعال سازی ارسال Trap ها از دستور زیر استفاده مینماییم
1 |
Zharf(config)# snmp-server enable traps snmp { authentication | linkupdowns } |
به منظور غیرفعال سازی ارسال Trap به سمت سرور SNMP از دستور زیر استفاده مینماییم
1 |
Zharf(config)# no snmp-server enable traps snmp { authentication | linkupdowns } |
Trap های ارسالی از سمت روتر در زیر توضیح داده شده اند:
Authentication : Trap های مرتبط به احراز هویت و شکل گیری ارتباطات (نظیر ارتباطات همسایگی ) از سمت مسیریاب به سرور SNMP ارسال میگردد
Linkupdowns : در صورتی که اینترفیس تغییر وضعیت به حالت UP و Down دهند از سمت مسیریاب به سرور SNMP، Trap ارسال میگردد
نمایش وضعیت سرویس SNMP
در این بخش مجموعه دستوراتی که می توان برای بررسی وضعیت بخش های مختلف سرویس SNMP به کار برد، توضیح داده شده است.
1 |
Zharf# show snmp community |
جهت نمایش community های تعریف شده از این دستور نمایشی در سطح EXEC Privilege استفاده میشود
مثال:
1 2 3 4 5 6 7 8 9 |
ZHARF# show snmp community Community name: test Community Index: ZHARF0 Community SecurityName: test storage-type: nonvolatile active Community name: rwComm Community Index: ZHARF1 Community SecurityName: rwComm storage-type: nonvolatile active |
توضیح فیلدهای نمایش داده شده در زیر آورده شده است:
Community name: نام community را نمایش می دهد.
Community Index: شاخص community را نشان می دهد.
Community SecurityName: نام community که از طریق آن به پروتکل SNMP دسترسی ایجاد می گردد را نمایش می دهد که در اینجا با نام community یکسان است.
storage-type: نشان می دهد که تنظیمات بر روی حافظه فرار و حافظه موقتی ذخیره شده است یا بر روی حافظه غیرفرار و دایمی که تنظیمات پس از خاموش و روشن شدن دستگاه نیز باقی می مانند.
1 |
Zharf# show snmp group |
جهت نمایش گروه های تعریف شده از این دستور نمایشی در سطح EXEC Privilege استفاده میشود
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ZHARF# show snmp group groupname: grp1 security model: v1 view: write row status: active groupname: defaultGrp2 security model: v2c view: read row status: active groupname: grp3 security model: v3 view: read row status: active |
توضیح فیلدهای نمایش داده شده در زیر آورده شده است:
groupname: نام گروه را نمایش می دهد.
security model: نسخه SNMP را که این گروه برای آن تعریف شده است، تعیین می کند.
view: نوع دسترسی گروه SNMP تعریف شده را مشخص می نماید.
row status: وضعیت برقراری گروه و امکان استفاده از آن را نمایش می دهد.
1 |
Zharf# show snmp user [ user-name ] |
جهت نمایش کلیه کاربران تعریف شده و یا کاربر خاص از این دستور نمایشی در سطح EXEC Privilege استفاده میشود
نکته: اطلاعات مربوط به کاربران SNMPv3 که باید حتما احراز هویت روی آن ها صورت بگیرد را تنها از این طریق می توان مشاهده کرد و اطلاعات اینگونه کاربران با استفاده از دستور show running-config نمایش داده نمی شود.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
ZHARF# show snmp user User name: usr1 storage-type: nonvolatile active Authentication Protocol: None Encryption Protocol: None Group-name: grp1 User name: usr3 storage-type: nonvolatile active Authentication Protocol: MD5 Encryption Protocol: None Group-name: grp3 User name: usr3p storage-type: nonvolatile active Authentication Protocol: SHA Encryption Protocol: AES Group-name: grp3p ZHARF# show snmp user usr1 User name: usr1 storage-type: nonvolatile active Authentication Protocol: None Encryption Protocol: None Group-name: grp1 |
توضیح فیلدهای نمایش داده شده در زیر آورده شده است:
User name: نام کاربر را نمایش می دهد.
storage-type: نشان می دهد که تنظیمات بر روی حافظه فرار و حافظه موقتی ذخیره شده است یا بر روی حافظه غیرفرار و دایمی که تنظیمات پس از خاموش و روشن شدن دستگاه نیز باقی می مانند.
Authentication Protocol: الگوریتم مورد استفاده جهت احراز هویت را نمایش می دهد.
Encryption Protocol: الگوریتم مورد استفاده جهت رمزنگاری را نمایش می دهد.
Group-name: نام گروهی که کاربر به آن تعلق دارد را نمایش می دهد.