یکی از متداولترین روش های اتصال به سخت افزارهای سیسکو استفاده از پروتکل telnet می باشد. حتما با telnet آشنایی دارید.
یک پروتکل که عموما برای مدیریت و کنترل سخت افزار ها از راه دور استفاده می شود. این پروتکل اطلاعات را به صورت clear text میان سرور و کلاینت عبور میدهد, که این امر باعث نا امنی زیادی می شود. چرا که به راحتی می توان با قرار دادن یک Packet capture مانند Wireshark تمامی Packet های عبوری را مشاهده و از اطلاعات آن سو استفاده کرد. البته روشهایی برای امن کردن آن مانند دسترسی تنها چند کامپیوتر خاص به telnet وجود دارد. اما باز هم نمیتوان امنیت آن را تضمین کرد.
یک راه حل مفید برای جایگزینی telnet استفاده از پروتکل SSH است. SSH یا Secure Shell پروتکلی است که اطلاعات را به صورت کد شده میان سرور و کلاینت رد و بدل میکند.
به صورت پیش فرض این پروتکل در روتر ها و سوئیچ های سیسکو غیر فعال است.
این جدول نشان دهنده IOS ها و سخت افزارهایی است که از پروتکل SSH پشتیبانی میکنند.
Router IOS
C1700 12.1(1) and later
C2600 12.1(1) and later
C3600 12.1(1) and later
C7200 12.1(1) and later
C7500 12.1(1) and later
Ubr920 12.1(1) and later
CatOS SSH
Cat 4000/4500/2948G/2980G (CatOS) K9 images as of 6.1
Cat 5000/5500 (CatOS) K9 images as of 6.1
Cat 6000/6500 (CatOS) K9 images as of 6.1
Cat 2950 12.1(12c)EA1 and later
Cat 3550* 12.1(11)EA1 and later
Cat 4000/4500 (Integrated Cisco IOS Software) 12.1(13)EW and later
Cat 6000/5500 (Integrated Cisco IOS Software) 12.1(11b)E and later
Cat 8540/8510 12.1(12c)EY and later, 12.1(14)E1 and later
NO SSH Support
Cat 1900 no
Cat 2800 no
Cat 2948G-L3 no
Cat 2900XL no
Cat 3500XL no
Cat 4840G-L3 no
Cat 4908G-L3 no
برای فعال سازی SSH ابتدا میبایست hostname و domain name را مشخص کنیم:
Router(config)#hostname PersianAdmins
PersianAdmins(config)#ip domain-name router1.admins.ir
- حالا باید یک RSA key pair برای روتر خود تولید کنیم. که با تولید این کلید به طور اتوماتیک SSH بر روی روتر شما فعال خواهد شد.
PersianAdmins(config)#crypto key generate rsa
IOS از شما خواهد پرسید که طول این کلید چند بیتی باشد. که میتوانید از 360 تا 2048 انتخاب کنید. پیش فرض آن 512 است که توصیه میشود از کلید 1024 بیتی استفاده نمائید.
هم اکنون SSH بر روی روتر شما فعال است و میتوانید بوسیله نرم افزارهای مانند Putty به آن متصل شوید.
لینک دانلود putty:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
شما میتوانید بعضی از تنظیمات مانند مدت زمان تبادل کلید ( بین SSH Server و SSH Client ) و تعداد دفعات تلاش برای وارد کردن username و Password را مشخص کنید. مدت زمان تبادل کلید ماگزیمم 120 ثانیه است که به صورت پیش فرض همان 120 ثانیه تنظیم گردیده و تعداد دفعات تلاش برای login 5 دفعه که به صورت پیش فرض 3 دفعه تعیین گردیده است.
PersianAdmins(config)#ip ssh timeout 100
PersianAdmins(config)#ip ssh authentication-retries 4با دستور زیر هم میتوان اینترفیسی که کانکشن SSH به آن وارو میشود را مشخص کرد:
PersianAdmins(config)#ip ssh source-interface f0/1
و برای log بر داشتن از کانکشن های SSH :
PersianAdmins(config)#ip ssh logging events
برای غیر فعال نمودن SSH میتوانید از این دستور استفاده کنید:
PersianAdmins(config)#crypto key zeroize rsa
شما میتوانید با دستور زیر وضعیت SSH را چک کنید:
PersianAdmins#show ip ssh
برای مشاهده لیست کانکشن های متصل با SSH
PersianAdmins#show ssh
بقیه تنظیمات SSH از تنظیمات line vty 0 4 پیروی میکند. تنظیماتی مانند مدت زمان هر کانکشن که پیش فرض در صورت Idle بودن 10 دقیقه است و ماکزیمم 5 کانکشن همزمان پشتیبانی میکند.
ممکن است شما نیاز به مدت زمان زیادی برای باز بودن یک کانشن دارید. حتی اگر استفاده ای از آن نشود و از هر 10 دقیقه یکبار از وارد کردن Username و Password رنج میبرید. میتوانید با این دستور مدت زمان آن را زیاد کنید اما توجه داشته باشید که این کار از لچاظ امنیتی توصیه نمی شود:
PersianAdmins(config)#line vty 0 4
PersianAdmins(config-line)#exec-timeout 35که این عدد میتوانید بین 0 تا 35791 دقیقه باشد.
در بعضی شبکه ها شما دارای تعداد زیادی روتر و سوئیچ هستید که میبایست با تمامی آنها کار کنید. اینجا یک مشکل به وجود می آید. اگر شما پسورد های مختلف روی آنها قرار بدید به خاطر سپردن آنها خیلی سخت خواهد بود و اگر همه را یکسان بگذارید از لحاظ امنیتی دچار مشکل خواهید شد. چرا که در صورت لو رفتن پسورد یک روتر شما تمامی روترهای خود را از دست خواهید داد.
برای حل این مشکل میتوانیم از یک Radius server استفاده کنیم. Radius دارای یک دیتا بیس است که لیست یوزرهای ما , مشخصات و صفات آنها در آن ثبت میشود. وقتی شما سعی میکنید که به یک روتر متصل شوید آن روتر یوزر و پسورد شما را به Radius میفرستد. اگر آنها درست بودند یک پیغام از Radius به روتر فرستاده میشود و روتر به شمااجازه ورود می دهد. که این کار مزایای دیگری نیز دارد.
- شما میتوانید زمان ورود و خروج کاربران مختلف را ثبت کنید
- تنها یک پسورد به خاطر می سپارید
- میتوانید برای ورود به روتر زمان مشخص کنید
- سطح دسترسی هر یوزر به روتر قابل کنترل است
- با یکبار عوض کردن پسورد در تمامی روتر ها پسورد شما عوض خواهد شد
ابتدا میبایست مشخص کنیم که چه درخواست هایی به Radius فرستاده شود
PersianAdmins(config)#aaa new-model
PersianAdmins(config)#aaa authentication login shahin group radius local
PersianAdmins(config)#aaa authentication enable default group radius
در خط دوم مشخص کرده ایم که چک کردن یوزر و پسورد ورود به روتر به radius برود اگر radius نبود از میان یوزرهای ساخته شده داخل خود روتر چک کند. ما میتوانیم متد های مختلف برای هر اکانتینگ داشته باشیم. اگر بجای واژه shahin بنویسیم default آنگاه این دستور برای تمامی اینترفیس ها اعمال میشود. اما اگر یک اسم خاص بنویسیم میتوانیم هر اینترفیسی که میخواهیم را به این لیست اضافه کنیم.
خط سوم نیز تمامی درخواست های enable را به radius می فرستد با این تفاوت که روی تمامی اینترفیس ها اعمال شده و فقط از radius چک می شود. یعنی اگر radius قابل دسترس نبود از اطلاعات موجود در روتر استفاده نمی کند.
در مرحله بعد میبایست یک radius server برای روتر مشخص کنیم.
PersianAdmins(config)#radius-server host 192.168.9.6 auth-port 1812 acct-port 1813 key 8888
که پورت 1812 برای authentication و 1813 برای Accounting مشخص شدند که اینها قرار دادی است و میتوان بسته به radius server آنها را تغییر داد. در آخر هم یک shared-key مشخص کرده ایم که در radius نیز باید آن را وارد کنیم که صرفا جهت بالا بردن ضریب امنیت است.
حال داخل line vty 0 4 مشخص میکنیم که از تنظیمات لیست shahin پیروی کند:
PersianAdmins(config)#line vty 0 4
PersianAdmins(config-line)#login authentication shahin
شما میتوانید از یک Radius server استاندارد مثل NttacPlus یا IBSng استفاده کنید. یک عدد RAS مشخص کنید و یک یوزر بسازید.
با آن یوزر میتوانید به روتر خود وصل شوید.
در تنظیمات دیدیم که enable نیز به radius فرستاده شد. شما میبایست یک یوزر با نام $enab15$ بسازید و یک پسورد برای آن مشخص کنید. وقتی که دستور enable را در روتر وارد میکنید روتر درخواست شما را با این یوزر به روتر خواهد فرستاد.
و آخرین نکته این که ممکن است در بعضی مواقع لینک ارتباطی شما تا radius دچار مشکل شود به همین دلیل شما قادر به ورود به روتر نخواهید بود. برای مرتفع کردن این مشکل میتوانید یک یوزر با privilege 15 بر روی روتر بسازید. با انجام تنظیمات بالا روتر ابتدا تلاش میکند که به radius متصل شود. در صورت عدم اتصال به radius به شما اجازه خواهد داد که با آن یوزر وارد روتر شوید.
PersianAdmins(config)#username reza privilege 15 password 1234
و برای گزارش های radius از دستور زیر میتوانید استفاده کنید:
PersianAdmins#show radius statistics