برای فعال کردن SSH در سیسکو باید پنج چیز را روی دستگاه تنظیم کنید: نام دستگاه (hostname)، نام دامنه (ip domain-name)، کلید RSA، یک کاربر محلی با رمز و در آخر خطوط VTY که فقط SSH را بپذیرند. بدون نام دامنه و کلید RSA، سرویس SSH روشن نمیشود. بعد از اینها، Telnet را میبندید و دسترسی را با ACL به IPهای مدیریتی محدود میکنید.
دستورها روی سوئیچها و روترهای Catalyst با IOS و IOS XE کار میکنند. اگر هنوز دستگاه را از نو راه نینداختهاید، کانفیگ اولیه کامل سوئیچ در کانفیگ سوئیچ سیسکو 2960 آمده است. این راهنما فقط روی SSH تمرکز دارد.
پیش از شروع: دستگاه باید IP مدیریتی داشته باشد
SSH از طریق شبکه کار میکند، پس سوئیچ باید یک آدرس IP داشته باشد که از کامپیوتر شما در دسترس باشد. در سوئیچ لایه ۲ معمولاً این آدرس روی یک SVI، یعنی اینترفیس VLAN مدیریتی، مینشیند. مثال زیر VLAN 99 را برای مدیریت در نظر میگیرد؛ شماره و آدرس را با شبکه خودتان عوض کنید:
interface vlan 99
ip address 192.168.99.10 255.255.255.0
no shutdown
exit
ip default-gateway 192.168.99.1اگر با ساخت VLAN و پورت Trunk آشنا نیستید، آموزش VLAN در سیسکو مراحلش را توضیح داده است. با دستور ping از یک کامپیوتر در همان شبکه مطمئن شوید آدرس پاسخ میدهد.
مرحله اول: نام دستگاه و نام دامنه
IOS کلید RSA را از ترکیب hostname و domain-name میسازد. اگر یکی از این دو تنظیم نباشد، دستور ساخت کلید خطا میدهد.
configure terminal
hostname SW-FLOOR1
ip domain-name example.localنام دامنه لازم نیست دامنه واقعی اینترنتی باشد. هر نام معقولی کافی است.
مرحله دوم: ساخت کلید RSA
crypto key generate rsa modulus 2048برای SSH نسخه ۲ حداقل طول کلید ۷۶۸ بیت است، ولی ۲۰۴۸ بیت انتخاب معمول امروز است. ساخت کلید روی دستگاههای قدیمی چند ثانیه طول میکشد. بعد از ساخت، IOS پیامی شبیه این میدهد که SSH فعال شده است:
%SSH-5-ENABLED: SSH 1.99 has been enabledعبارت 1.99 یعنی دستگاه فعلاً هم نسخه ۱ و هم ۲ را میپذیرد. مرحله بعد این را درست میکند.
مرحله سوم: فقط SSH نسخه 2
SSH نسخه ۱ ضعفهای امنیتی شناختهشده دارد و نباید فعال بماند:
ip ssh version 2
ip ssh time-out 60
ip ssh authentication-retries 3گزینه time-out مدت انتظار برای تکمیل ورود را بر حسب ثانیه تعیین میکند و authentication-retries تعداد دفعات مجاز اشتباه در یک اتصال است.
مرحله چهارم: ساخت کاربر و رمز
username admin privilege 15 secret STRONG_PASSWORD
enable secret ANOTHER_STRONG_PASSWORD
service password-encryptionاز secret استفاده کنید، نه password. رمز با secret بهصورت هش ذخیره میشود، ولی رمز password را بهراحتی میتوان از کانفیگ بازیابی کرد. نام کاربری admin در مثال فقط نمونه است؛ بهتر است نامی انتخاب کنید که حدس زدنش سختتر باشد. رمزها را در مثالها با رمز واقعی عوض کنید.
مرحله پنجم: خطوط VTY فقط با SSH
line vty 0 15
login local
transport input ssh
exec-timeout 10 0
exitlogin local یعنی ورود با کاربرهای تعریفشده روی همین دستگاه. transport input ssh Telnet را میبندد و exec-timeout 10 0 نشست بیحرکت را بعد از ۱۰ دقیقه قطع میکند. بعضی سوئیچها فقط ۰ تا ۴ را دارند و بعضی تا ۱۵؛ با show running-config | section line vty ببینید دستگاه شما چند خط دارد. سپس تنظیمات را ذخیره کنید:
end
write memoryاتصال و بررسی
از لینوکس یا مک:
ssh admin@192.168.99.10در ویندوز هم دستور ssh در PowerShell کار میکند. روی خود دستگاه وضعیت سرویس و نشستهای فعال را اینطور میبینید:
show ip ssh
show sshاگر خروجی اول نوشت SSH Enabled و version 2.0، تنظیمات درست است. دستورهای بیشتر برای بررسی دستگاه در دستورات show در سیسکو جمع شده است.
محدود کردن SSH به IPهای مدیریتی
باز بودن SSH برای همه آدرسها هنوز سطح حمله بزرگی است. با یک ACL استاندارد، دسترسی را فقط به شبکه مدیریت میدهید و روی خطوط VTY اعمال میکنید:
ip access-list standard MGMT-ONLY
permit 192.168.99.0 0.0.0.255
deny any log
exit
line vty 0 15
access-class MGMT-ONLY in
exitعبارت 0.0.0.255 ماسک معکوس (Wildcard) است. اگر مطمئن نیستید برای شبکه شما چه مقداری درست است، ابزار محاسبه ساب نت آن را حساب میکند. توضیح بیشتر درباره ACL در ACL در سیسکو هست. هنگام اعمال این قانون با SSH متصل نباشید که قفل شوید: اول از روی کنسول یا از یک کامپیوتر داخل شبکه مدیریت امتحان کنید.
جلوگیری از حدس رمز
دستور زیر بعد از سه تلاش ناموفق در ۶۰ ثانیه، ورود را برای ۲ دقیقه میبندد و تلاشها را لاگ میکند:
login block-for 120 attempts 3 within 60
login on-failure log
login on-success logاگر برای ورود ادمین از یک IP مطمئن لازم است، با login quiet-mode access-class میتوانید آن را از این بستن مستثنا کنید.
ورود با کلید SSH بهجای رمز
روی IOS XE و نسخههای جدید IOS میتوانید کلید عمومی کاربر را روی دستگاه ثبت کنید. این کار فقط پشتیبانی دستگاههای جدیدتر را میخواهد و در همه مدلهای قدیمی وجود ندارد، پس اول با ip ssh pubkey-chain ? ببینید دستگاه شما آن را دارد یا نه. تولید و استفاده از کلید در سمت کلاینت همان روشی است که برای سرورهای لینوکس در آموزش SSH Key آمده است.
خطاهای رایج SSH در سیسکو
| پیام یا نشانه | علت و راه حل |
|---|---|
Please create RSA keys (of at least 768 bits size) to enable SSH v2 | کلید RSA ساخته نشده یا hostname و domain-name تنظیم نیست |
Connection refused | transport input ssh روی VTY نیست، یا ACL مسیر را بسته است |
no matching key exchange method found | کلاینت جدید الگوریتمهای قدیمی دستگاه را نمیپذیرد |
| پرسیدن مکرر رمز و رد شدن | کاربر محلی ساخته نشده یا login local روی VTY نیست |
Connection timed out | آدرس مدیریتی در دسترس نیست؛ مسیر، VLAN و Gateway را بررسی کنید |
خطای سوم روی دستگاههای قدیمی زیاد دیده میشود. نسخههای جدید OpenSSH الگوریتمهای قدیمی را غیرفعال کردهاند و IOS قدیمی فقط همانها را دارد. راه درست بهروزرسانی IOS است. تا آن موقع میتوانید فقط برای همین دستگاه و موقت، الگوریتم قدیمی را در دستور ssh فعال کنید:
ssh -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=+ssh-rsa admin@192.168.99.10این گزینهها را در فایل ssh_config عمومی نگذارید؛ فقط برای همین یک اتصال کافی است.
چک لیست نهایی
- hostname و ip domain-name تنظیم شده باشد.
- کلید RSA با طول ۲۰۴۸ ساخته شده باشد.
ip ssh version 2فعال باشد.- کاربر محلی با secret ساخته شده باشد.
- روی VTY فقط
transport input sshباشد. - دسترسی با access-class به شبکه مدیریت محدود شده باشد.
login block-forبرای کند کردن حدس رمز تنظیم شده باشد.- کانفیگ با
write memoryذخیره شده و یک نسخه از آن بیرون از دستگاه نگهداری شود.
سوالات متداول
بعد از فعال کردن SSH، Telnet را باید جدا ببندم؟
با transport input ssh روی خطوط VTY، Telnet روی همان خطوط بسته میشود. اگر transport input all یا telnet باقی مانده باشد، هر دو روش کار میکنند. بعد از تغییر، با show running-config | section line vty مطمئن شوید.
حداقل طول کلید RSA برای SSH چقدر است؟
برای SSH نسخه ۲ حداقل ۷۶۸ بیت لازم است، ولی ۲۰۴۸ بیت انتخاب معقولتر است و روی دستگاههای امروزی هم بار قابل توجهی نمیسازد.
آیا با SSH میتوان از راه دور کانفیگ دستگاه را عوض کرد و قطع نشد؟
بله، ولی هر تغییر در مسیر مدیریتی، مثل ACL یا IP اینترفیس، ممکن است اتصال خودتان را قطع کند. دستور reload in 10 پیش از تغییر، دستگاه را بعد از ۱۰ دقیقه ریاستارت میکند و اگر تغییر خوب پیش رفت، با reload cancel آن را لغو میکنید. این کار فقط وقتی امن است که کانفیگ ذخیرهشده درست باشد.
SSH روی روتر سیسکو در Packet Tracer هم همینطور است؟
بله، دستورها هماناند. فقط برای ورود از کلاینتهای واقعی به نسخههای جدید OpenSSH باید به خطای الگوریتمهای قدیمی توجه کنید.





