فعال کردن SSH در سیسکو و بستن Telnet

برای فعال کردن 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
exit

login 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 refusedtransport 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 عمومی نگذارید؛ فقط برای همین یک اتصال کافی است.

چک لیست نهایی

  1. hostname و ip domain-name تنظیم شده باشد.
  2. کلید RSA با طول ۲۰۴۸ ساخته شده باشد.
  3. ip ssh version 2 فعال باشد.
  4. کاربر محلی با secret ساخته شده باشد.
  5. روی VTY فقط transport input ssh باشد.
  6. دسترسی با access-class به شبکه مدیریت محدود شده باشد.
  7. login block-for برای کند کردن حدس رمز تنظیم شده باشد.
  8. کانفیگ با 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 باید به خطای الگوریتم‌های قدیمی توجه کنید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *