هر روتر مرزی که IP معتبر روی اینترنت دارد، از همان دقیقه اول هدف رباتهایی است که پورتهای 22 و 23 را برای حدس رمز میکوبند. ما یک بار روی روتر خودمان یک ACL با log گذاشتیم و در یک ساعت حدود ۲۰۰ تلاش ناموفق برای ورود از طریق پورت 23 دیدیم. عوض کردن پورت پیشفرض مدیریت یکی از ترفندهای قدیمی و کاربردی سیسکو برای کم کردن این نویز است؛ اما فقط به شرطی که بدانیم این کار امنیت واقعی نیست و باید روی پایه درست (SSH ، ACL و محدودیت تلاش ورود) سوار شود.
در این مطلب هم روش کلاسیک تعویض پورت Telnet با rotary را توضیح میدهیم، هم روش درست امروز یعنی SSH روی پورت دلخواه ، و مجموعه تنظیماتی که خطوط VTY روتر و سوئیچ سیسکو را واقعاً امن میکند.

تعویض پورت مدیریت سیسکو در یک نگاه
| توصیه اصلی | Telnet را کاملاً ببندید و فقط SSH نسخه ۲ را باز بگذارید |
| پورت دلخواه برای SSH | ip ssh port 2222 rotary 1 + rotary 1 روی line vty |
| پورت دلخواه برای Telnet | rotary N روی line vty ؛ پورت 3000+N |
| محدود کردن منبع | access-class روی line vty |
| مقابله با حدس رمز | login block-for ، login delay ، لاگ ورود موفق و ناموفق |
| محدودیت مهم | تغییر پورت فقط نویز رباتها را کم میکند؛ جایگزین SSH و ACL نیست |
فهرست مطالب
چرا Telnet باید بسته شود
Telnet همه چیز، از جمله یوزر و رمز، را متن ساده روی شبکه میفرستد. هر کسی که مسیر ترافیک را ببیند، رمز شما را هم میبیند. راهنمای رسمی Harden Cisco IOS Devices صریح توصیه میکند بهجای Telnet و rlogin از transport input ssh استفاده کنید. اگر هنوز دستگاهی دارید که فقط Telnet دارد (مثلاً IOS خیلی قدیمی بدون ایمیج k9)، آن را فقط از شبکه مدیریت جدا و با ACL در دسترس بگذارید و برای آپگرید برنامه داشته باشید.
پایه کار: فعال کردن SSH نسخه ۲
R1(config)# hostname R1 R1(config)# ip domain name shabake.local R1(config)# crypto key generate rsa modulus 2048 R1(config)# ip ssh version 2 R1(config)# ip ssh time-out 60 R1(config)# ip ssh authentication-retries 3 R1(config)# username netadmin privilege 15 algorithm-type scrypt secret N3w-Str0ng-Pass ! R1(config)# line vty 0 15 R1(config-line)# login local R1(config-line)# transport input ssh R1(config-line)# exec-timeout 10 0
برای SSH ، روتر به hostname ، domain name و کلید RSA نیاز دارد. اندازه کلید را حداقل ۲۰۴۸ بیت بگیرید. تعداد خطوط VTY بسته به مدل و نسخه IOS فرق دارد؛ با line vty ? ببینید.
SSH روی پورت دلخواه
IOS برای گوش دادن SSH روی پورتی غیر از 22 از rotary group استفاده میکند: پورت را به یک گروه rotary نسبت میدهید و همان گروه را روی خطوط VTY فعال میکنید. این قابلیت طبق راهنمای SSH Terminal-Line Access از IOS 12.2(2)T به بعد وجود دارد.
R1(config)# ip ssh port 2222 rotary 1 R1(config)# line vty 0 15 R1(config-line)# rotary 1 R1(config-line)# transport input ssh R1(config-line)# access-class MGMT-SSH in ! R1(config)# ip access-list extended MGMT-SSH R1(config-ext-nacl)# permit tcp 10.10.99.0 0.0.0.255 any eq 2222 R1(config-ext-nacl)# deny ip any any log
بعد از این تنظیم، از کلاینت با پورت جدید وصل شوید (مثلاً ssh -p 2222 netadmin@203.0.113.10). توجه کنید که با فعال بودن rotary ، سوئیچ ممکن است همچنان روی پورت 22 هم گوش دهد؛ ACL روی VTY و ACL ورودی اینترفیس WAN است که پورتهای ناخواسته را واقعاً میبندد. روی پلتفرمهای IOS XE رفتار این قابلیت را پیش از اعمال در شبکه عملیاتی با یک تست ساده تأیید کنید.
روش کلاسیک: تعویض پورت Telnet با rotary
اگر به هر دلیلی مجبور به استفاده از Telnet هستید (مثلاً دستگاه قدیمی در شبکه ایزوله)، با rotary N روی خطوط VTY ، آن خطوط روی پورت 3000+N هم گوش میدهند؛ یعنی rotary 1 روی پورت 3001. با یک ACL ، ورود از پورت 23 را میبندیم و فقط پورت جدید را باز میگذاریم:
R1(config)# ip access-list extended TELNET-3001 R1(config-ext-nacl)# permit tcp 10.10.99.0 0.0.0.255 any eq 3001 R1(config-ext-nacl)# deny ip any any R1(config)# line vty 0 4 R1(config-line)# rotary 1 R1(config-line)# access-class TELNET-3001 in
تست از یک روتر دیگر:
Core# telnet 10.10.99.1 Trying 10.10.99.1 ... % Connection refused by remote host Core# telnet 10.10.99.1 3001 Trying 10.10.99.1, 3001 ... Open User Access Verification Username:
مقابله با حدس رمز و ثبت تلاشها
IOS مجموعهای از دستورها به نام Login Enhancements دارد که حمله حدس رمز را کند و قابل ردیابی میکند:
R1(config)# login block-for 120 attempts 5 within 60 R1(config)# login quiet-mode access-class MGMT-SSH R1(config)# login delay 3 R1(config)# login on-failure log R1(config)# login on-success log R1(config)# aaa new-model R1(config)# aaa authentication login default local-case R1(config)# aaa authentication attempts login 3 R1(config)# aaa local authentication attempts max-fail 5
| دستور | کار |
|---|---|
login block-for 120 attempts 5 within 60 |
اگر در ۶۰ ثانیه ۵ ورود ناموفق رخ دهد، ورود جدید ۱۲۰ ثانیه متوقف میشود |
login quiet-mode access-class |
در زمان توقف، فقط آدرسهای مجاز (شبکه مدیریت) میتوانند وارد شوند تا خودتان قفل نشوید |
login delay 3 |
بین هر تلاش ورود ۳ ثانیه فاصله میاندازد؛ ابزارهای خودکار را بسیار کند میکند |
login on-failure log و on-success log |
ورودهای موفق و ناموفق را در Syslog ثبت میکند |
local-case |
یوزرنیم را حساس به حروف بزرگ و کوچک میکند |
aaa local authentication attempts max-fail 5 |
یوزر محلی بعد از ۵ تلاش ناموفق قفل میشود (باز کردن با clear aaa local user lockout) |
aaa new-model مدل AAA را فعال میکند. پیش از زدن آن حتماً یک یوزر محلی با privilege 15 داشته باشید و روش احراز هویت login را تعریف کنید؛ در غیر این صورت ممکن است دسترسی خودتان را ببندید. جزئیات را در مطلب عوض کردن پسورد روتر سیسکو دیدهایم.بنر هشدار
یک بنر رسمی پیش از ورود، از نظر حقوقی به شما کمک میکند و مهاجم را از غیرمجاز بودن دسترسی آگاه میکند. در بنر اطلاعات دستگاه (مدل، نسخه، نام سازمان) را ننویسید:
R1(config)# banner login ^ Authorized access only. All activity is logged and monitored. ^
بررسی
| دستور | انتظار |
|---|---|
show ip ssh |
SSH Enabled – version 2.0 |
show running-config | section line vty |
فقط transport input ssh ، access-class و exec-timeout |
show login |
وضعیت login block-for و آدرسهای مسدود |
show login failures |
فهرست تلاشهای ناموفق اخیر |
show users |
نشستهای باز فعلی |
پرسشهای متداول
عوض کردن پورت کافی است؟
نه. فقط رباتهایی را که پورتهای پیشفرض را اسکن میکنند کم میکند. امنیت واقعی از SSH ، ACL روی VTY و منبع مجاز، و رمز قوی میآید.
بهتر نیست مدیریت را کلاً از اینترنت ببندیم؟
بله. بهترین حالت این است که مدیریت فقط از VPN یا شبکه مدیریت داخلی ممکن باشد و هیچ پورت مدیریتی روی IP عمومی باز نباشد.
پورت 3001 از کجا آمد؟
در IOS ، خطوطی که عضو rotary group N هستند برای Telnet روی پورت 3000+N گوش میدهند.
منابع رسمی
مطالب مرتبط: ایمنسازی روتر سیسکو و Control Plane و حفاظت از منابع روتر.
مشاوره با AKA NET
برای Hardening دسترسی مدیریتی روترها و سوئیچها و راهاندازی احراز هویت متمرکز با آکانت (AKA NET) تماس بگیرید.
تلفن: 09121308444 | ایمیل: aka@aka.ir | aka.ir
بازتاب: تعویض پورت تلنت روتر سیسکو - Change Default Telnet Port on Cisco Routers
بازتاب: تعویض پورت تلنت روتر سیسکو – Change Default Telnet Port on Cisco Routers | مرکز آموزش یوسرور - هاست اشتراکی - سرور مجای با کیفیت
ممنون بابت پست