تنظیمات امنیتی
این بخش شامل تمامی تنظیمات و دستورات امنیتی در روتر سودار است که به شما کمک میکند شبکه خود را در برابر تهدیدات مختلف محافظت کنید.
مدیریت دسترسی و احراز هویت
بلاک کردن IP
با استفاده از دستورات زیر می توان تنظیم کرد اگر کاربری رمز عبور برای اتصال ssh اشتباه وارد کرد ip آن کاربر بلاک شود و نتواند ssh بزند
در مثال زیر اگر کاربر ۵ بار در مدت ۶۰ ثانیه رمز عبور ssh را اشتباه وارد کند به مدت 120 ثانیه بلاک خواهد شد .
soodar(config)# login block-for 120 attempts 5 within 60
توجه
اگر این تنظیم انجام نشود بصورت پیش اگر در مدت 60 ثانیه 5 بار لاگین ناموفق رخ دهد ip به مدت 600 ثانیه بلاک خواهد شد . در ضمن لاگین های موفق counter را صفر نمی کند یعنی اگر در بازه 60 ثانیه 4 بار لاگین ناموفق داشته باشد و سپس 1 لاگین موفق داشته باشد و سپس 1 لاگین ناموفق ، باز هم IP بلاک خواهد شد .
به کمک دستور زیر می توان ip های پلاک شده را unblock کرد.
می توانید با وارد کردن آدرس ip مورد نظر آن را unblock کنید یا با استفاده از گزینه all همه ip های بلاک شده را باز کنید .
soodar(config)# login unblock
A.B.C.D Unban a blocked conenction
X:X::X:X IPv4 address of banned connection
all IPv6 address of banned connection
show login failure
می توانید تلاش های ناموفقی که برای لاگین کردن به روتر انجام شده است را مشاهده کنید . چه از طریق ssh و چه از طریق (پورت سریال)console . این اطلاعات فقط برای یک ماه اخیر نگهداری می شود البته در لاگ های ssh وجود دارد
soodar# show login failures
admin ssh:notty 192.168.1.30 Sun Jun 11 10:34
admin ssh:notty 192.168.1.30 Sun Jun 11 10:34
admin ssh:notty 192.168.1.30 Sun Jun 11 10:34
admin ssh:notty 192.168.1.20 Wed Jun 7 10:43
admin ssh:notty 192.168.1.30 Wed Jun 7 10:30
admin ssh:notty 192.168.1.20 Tue Jun 6 15:14
iman ssh:notty 192.168.1.20 Tue Jun 6 15:13
admin ssh:notty 192.168.1.30 Thu Jun 1 08:17
admin ssh:notty 192.168.1.30 Thu Jun 1 08:17
admin ssh:notty 192.168.1.30 Thu Jun 1 08:17
admin ssh:notty 192.168.1.30 Thu Jun 1 08:11
soodar#
show user
کاربرانی در حال حاضر به روتر لاگین کرده اند را نمایش می دهد
soodar# sh user
Number Line User Peer Address Session
---------------------------------------------------------------
* 0 SSH admin 192.168.1.3:34718 c5
1 Console admin --- c6
clear line
می توانید یک کاربر را با شماره tty line آن که در دستور قبل مشخص است را از cli روتر بیرون کنید و ارتباط او با روتر قطع شود
soodar# clear line 1
[Ok]
informational-SOOSYS: session c6(0.0.0.0:0) terminated by user admin(192.168.1.3:34718)
soodar#
مدیریت گذرواژهها
SoodarOS توسط ۳ سطح گذرواژه محافظت میشود:
گذرواژه دسترسی (Access password): برای ورود به روتر
گذرواژه فعالسازی (Enable password): برای ورود به حالت enable
گذرواژه پیکربندی (Config password): برای ورود به حالت config
گذرواژه دسترسی (Access Password)
این گذرواژه اصلی برای ورود با کاربر است. بدون داشتن گذرواژه دسترسی، هیچ کس نمیتواند به روتر دسترسی داشته باشد.
soodar# password
گذرواژه فعالسازی (Enable Password)
Admin را در حالت enable قرار میدهد. این گذرواژه هنگامی که admin دستور enable را صادر میکند، درخواست میشود.
تنظیم گذرواژه enable:
soodar(config)# enable password PASSWORD
غیرفعال کردن گذرواژه enable:
soodar(config)# no enable password
گذرواژه پیکربندی (Config Password)
زمانی که admin دستور configure را در خط فرمان وارد میکند تا وارد حالت config شود، درخواست میشود.
تنظیم گذرواژه config:
soodar(config)# enable config password PASSWORD
غیرفعال کردن گذرواژه config:
soodar(config)# no enable config password
بازنشانی گذرواژه دسترسی
در صورتی که گذرواژه دسترسی فراموش شد، برای تنظیم مجدد آن باید از ایمیج ریکاوری سودار استفاده کنید.
مراحل بازیابی:
ایمیج ریکاوری را روی یک فلش به صورت bootable بنویسید
فلش را به روتر متصل کنید
روتر را از روی فلش بوت کنید
بعد از بوت شدن، گزینههایی برای ریست کردن مشاهده میکنید
میتوانید رمز عبور و همچنین تنظیمات روتر را ریست کنید
نکات مهم
با ریست کردن رمز عبور، رمز عبور شما به
adminتغییر میکندریست کردن تنظیمات فقط تنظیمات روتری را به حالت پیشفرض برمیگرداند و تنظیمات سیستمی مانند رمز عبور کاربر، ساعت سیستم و کلیدها تغییر نمیکند
با ریست کردن تنظیمات، در اینترفیس ge0 (اولین اینترفیس روتر) IP به آدرس
192.168.1.55/24تنظیم میشود
حداقل طول گذرواژه
برای مجبور کردن کاربران به تنظیم گذرواژههای قوی، admin میتواند حداقل طول برای گذرواژهها را تنظیم کند.
اعمال حداقل طول گذرواژه:
soodar(config)# security passwords min-length 8
حذف محدودیت طول گذرواژه:
soodar(config)# no security passwords min-length
نکته
حداقل طول پیشفرض ۸ کاراکتر برای گذرواژهها تنظیم شده است.
رمزنگاری گذرواژه
برای امنیت بیشتر، گذرواژهها در فایل پیکربندی رمزنگاری میشوند.
soodar(config)# service password-encryption
نکته
این ویژگی به طور پیشفرض فعال است.
امنیت SSH
پیکربندی SSH Server
SSH server به طور پیشفرض فعال است و روی پورت 22 اجرا میشود.
بررسی وضعیت SSH:
soodar# show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3
Server port: 22
تغییر پورت SSH
برای امنیت بیشتر میتوانید پورت SSH را تغییر دهید:
soodar(config)# ip ssh port 2222
soodar(config)# write
محدوده پورت مجاز: 2000 تا 10000
احراز هویت با Public Key
برای امنیت بیشتر، میتوانید از احراز هویت با کلید عمومی استفاده کنید:
soodar(config)# ip ssh pubkey-chain
soodar(conf-ssh-pubkey)# username admin
soodar(conf-ssh-pubkey-user)# key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7Z...
soodar(conf-ssh-pubkey-user)# exit
soodar(conf-ssh-pubkey)# exit
soodar(config)# write
مشاهده کلیدهای اضافه شده:
soodar# show ip ssh pubkey-chain
admin:
1: kgxOYdwjBqPN90V2dLGOxwWSVrKQodgeZhjhaN0+NGc user@host (ssh-rsa)
محدود کردن دسترسی SSH با ACL
میتوانید دسترسی SSH را به IP های خاص محدود کنید:
soodar(config)# access-list 10 permit 10.0.0.0 0.0.0.255
soodar(config)# access-list 10 deny any
soodar(config)# line vty 0 4
soodar(config-line)# access-class 10 in
soodar(config-line)# exit
soodar(config)# write
بهترین شیوههای امنیتی SSH
استفاده از Strong Passwords: از گذرواژههای قوی استفاده کنید
استفاده از پورت غیراستاندارد: پورت SSH را تغییر دهید
محدود کردن دسترسی با ACL: فقط IP های مجاز را اجازه دهید
استفاده از Public Key: به جای password از کلید عمومی استفاده کنید
فعالسازی Logging: لاگهای SSH را فعال کنید
فیلترینگ ترافیک با ACL
Access Control List (ACL) یک مکانیزم قدرتمند برای کنترل و فیلتر کردن ترافیک شبکه است.
تعریف ACL
soodar(config)# ip access-list SSH-FILTER
soodar(config-nacl)# 1 permit tcp 1.1.1.20/32 2.1.1.10/32 eq 22
soodar(config-nacl)# 2 deny tcp 1.1.1.10/32 2.1.1.10/32 eq 22
soodar(config-nacl)# permit any any
اعمال ACL روی اینترفیس
برای ترافیک ورودی:
soodar(config)# interface ge0
soodar(config-if)# ip access-group SSH-FILTER in
برای ترافیک خروجی:
soodar(config-if)# ip access-group SSH-FILTER out
ACL Stateful
در ACL stateful، نشستها به صورت خودکار تشخیص داده میشوند و رول برگشت به صورت خودکار اضافه میشود:
soodar(config)# ip access-list STATEFUL-ACL
soodar(config-nacl)# permit tcp 1.1.1.10/32 2.1.1.10/32 eq 443 reflect
soodar(config-nacl)# permit tcp 1.2.1.10/32 2.1.1.10/32 eq 443 reflect
توجه
وقتی از رولهای reflect استفاده میکنید، باید ACL را در اینترفیس در هر دو جهت in و out اعمال کنید.
ACL با نام سرویس
برای راحتی کار، میتوانید از نام سرویسهای پرکاربرد استفاده کنید:
soodar(config)# ip access-list WEB-FILTER
soodar(config-nacl)# deny tcp any any service http
soodar(config-nacl)# deny tcp any any service https
soodar(config-nacl)# permit any any
Port Security (امنیت پورت)
امنیت پورت یک ویژگی امنیتی در لایه 2 است که دسترسی به پورتهای روتر را با کنترل و محدود کردن آدرسهای MAC مجاز کنترل میکند.
فعالسازی Sticky MAC Address
soodar(config)# interface ge1
soodar(config-if)# port-security mac-address sticky
تعیین حداکثر تعداد MAC
soodar(config-if)# port-security maximum 3
تنظیم Script برای Violation
هنگام شناسایی تخلف امنیتی، میتوانید یک script سفارشی را اجرا کنید:
soodar(config-if)# port-security violation script:portsec1
نکته
Script باید با فرمت script:name و بدون مسیر Linux تعریف شود. محتوای script باید دستورات Soodar باشد نه Bash.
نمایش وضعیت Port Security
soodar# show port-security interface ge1
soodar# show port-security address ge1
پاک کردن Violation
soodar# clear port-security violation ge1
uRPF (Unicast Reverse Path Forwarding)
uRPF مکانیزمی است به منظور جلوگیری از حملات جعل IP و یا همان IP Spoofing.
تنظیم uRPF
soodar(config)# interface ge0
soodar(config-if)# ip verify unicast source reachable-via rx
گزینههای موجود:
any: Source باید در جدول مسیریابی وجود داشته باشد (مهم نیست از کدام interface دریافت شود)rx: Source باید در جدول مسیریابی موجود باشد و دقیقاً از همان interface که route داریم دریافت شود
توصیه
حالت rx امنیت بیشتری دارد و برای جلوگیری از IP Spoofing توصیه میشود.
Session Management
Session Timeout
میتوان برای session هایی که به shell روتر ایجاد میشود timeout مشخص کرد:
soodar(config)# line vty
soodar(config-line)# exec-timeout 1 0
فرمت: exec-timeout <minutes> <seconds>
در مثال بالا، بعد از غیرفعال بودن نشست به مدت ۱ دقیقه، نشست به طور خودکار بسته خواهد شد.
نمایش کاربران متصل
soodar# show user
Number Line User Peer Address Session
---------------------------------------------------------------
* 0 SSH admin 192.168.1.3:34718 c5
1 Console admin --- c6
قطع اتصال کاربر
soodar# clear line 1
لاگهای امنیتی
فعالسازی Logging
soodar(config)# log syslog errors
تنظیم Log Server
soodar(config)# log syslog http://192.168.1.55 loki
soodar(config)# log syslog 192.168.1.55 port 3000 tcp
soodar(config)# log syslog 192.168.1.55 port 3100 udp
مشاهده لاگهای امنیتی
soodar# show log all
soodar# show log all follow
soodar# show logging | include SSH
Log Rotation
soodar(config)# log rotate max-file-size 10M
soodar(config)# log rotate max-files 10
soodar(config)# log rotate max-retention 30
تونلهای امن (IPSec و Wireguard)
IPSec
IPSec مجموعهای از پروتکلها برای ایمنسازی ارتباطات شبکهای در لایه اینترنت است.
مثال پیکربندی IPSec با PSK:
soodar(config)# crypto ikev2 proposal IKE-PROPOSAL
soodar(c/crypto/ikev2/proposal/IKE-PROPOSAL)# encryption aes-256
soodar(c/crypto/ikev2/proposal/IKE-PROPOSAL)# integrity sha-256
soodar(c/crypto/ikev2/proposal/IKE-PROPOSAL)# group 20
soodar(c/crypto/ikev2/proposal/IKE-PROPOSAL)# exit
soodar(config)# crypto ikev2 keyring KEYRING-1
soodar(c/crypto/ikev2/keyring/KEYRING-1)# peer REMOTE
soodar(c/crypto/ikev2/keyring/KEYRING-1/peer/REMOTE)# address 200.1.2.2
soodar(c/crypto/ikev2/keyring/KEYRING-1/peer/REMOTE)# identity address 222.2.2.2
soodar(c/crypto/ikev2/keyring/KEYRING-1/peer/REMOTE)# pre-shared-key mysecret123
soodar(c/crypto/ikev2/keyring/KEYRING-1/peer/REMOTE)# exit
soodar(c/crypto/ikev2/keyring/KEYRING-1)# exit
soodar(config)# crypto ikev2 profile VPN
soodar(c/crypto/ikev2/profile/VPN)# identity local address 222.1.1.1
soodar(c/crypto/ikev2/profile/VPN)# match identity remote address 222.2.2.2
soodar(c/crypto/ikev2/profile/VPN)# keyring local KEYRING-1
soodar(c/crypto/ikev2/profile/VPN)# proposal IKE-PROPOSAL
soodar(c/crypto/ikev2/profile/VPN)# exit
soodar(config)# crypto ipsec transform-set IPSEC-TS esp hmac sha-256 cipher aes-256
soodar(c/crypto/trans/IPSEC-TS)# mode transport
soodar(c/crypto/trans/IPSEC-TS)# exit
soodar(config)# crypto ipsec profile IPSEC-PROFILE
soodar(ipsec-profile)# set transform-set IPSEC-TS
soodar(ipsec-profile)# set ikev2-profile VPN
soodar(ipsec-profile)# exit
soodar(config)# interface tunnel10
soodar(config-if)# tunnel source 200.1.2.1
soodar(config-if)# tunnel destination 200.1.2.2
soodar(config-if)# tunnel protection ipsec profile IPSEC-PROFILE
soodar(config-if)# ip address 10.0.0.1/24
soodar(config-if)# exit
soodar(config)# write
بررسی وضعیت IPSec:
soodar# show crypto ikev2 sa
soodar# show crypto ipsec sa
Wireguard
Wireguard یک پروتکل VPN مدرن و سریع است.
مثال پیکربندی Wireguard:
soodar(config)# interface wireguard wg0
soodar(config-if)# private-key <PRIVATE_KEY>
soodar(config-if)# listen-port 51820
soodar(config-if)# address 10.0.0.1/24
soodar(config-if)# peer REMOTE-PEER
soodar(config-if-peer)# public-key <PUBLIC_KEY>
soodar(config-if-peer)# allowed-ips 10.0.0.2/32
soodar(config-if-peer)# endpoint 200.1.2.2:51820
soodar(config-if-peer)# exit
soodar(config-if)# exit
soodar(config)# write
PKI (Public Key Infrastructure)
ایجاد کلید RSA
soodar(config)# crypto key generate rsa label soodar-key modulus 2048
ایجاد Trustpoint
soodar(config)# crypto pki trustpoint soodar-cert
soodar(ca-trustpoint)# rsakeypair soodar-key
soodar(ca-trustpoint)# subject-name C=IR, O=Soodar, CN=soodar.local.net
soodar(ca-trustpoint)# subject-alt-name soodar.local.net
soodar(ca-trustpoint)# exit
احراز هویت CA
soodar(config)# crypto pki authenticate soodar-cert
ایجاد CSR
soodar(config)# crypto pki enroll soodar-cert
وارد کردن گواهینامه
soodar(config)# crypto pki import soodar-cert certificate
نمایش گواهینامه
soodar# show crypto pki certificate soodar-cert
سرویسهای امنیتی سیستم
Fail2Ban
Fail2Ban سرویسی است که به صورت خودکار IP های مشکوک را بلاک میکند.
بررسی وضعیت Fail2Ban:
soodar# show system service status fail2ban
SNMP Security
برای امنیت SNMP، از کاربران با احراز هویت استفاده کنید:
soodar(config)# agentx
soodar(config)# snmp-server user USER auth sha PASSWORD priv aes PRIV_PASSWORD
بهترین شیوههای امنیتی
1. مدیریت گذرواژهها
✅ استفاده از گذرواژههای قوی (حداقل ۸ کاراکتر)
✅ تغییر دورهای گذرواژهها
✅ استفاده از گذرواژههای متفاوت برای سطوح مختلف
✅ فعالسازی رمزنگاری گذرواژه
2. امنیت SSH
✅ استفاده از Public Key Authentication
✅ تغییر پورت SSH از 22
✅ محدود کردن دسترسی با ACL
✅ فعالسازی Logging
3. فیلترینگ ترافیک
✅ استفاده از ACL برای محدود کردن دسترسی
✅ استفاده از uRPF برای جلوگیری از IP Spoofing
✅ استفاده از Port Security برای کنترل دسترسی در لایه 2
4. نظارت و لاگگیری
✅ فعالسازی Logging برای تمام رویدادهای امنیتی
✅ ارسال لاگها به سرور مرکزی
✅ بررسی منظم لاگهای ورود ناموفق
✅ تنظیم Log Rotation
5. تونلهای امن
✅ استفاده از IPSec برای Site-to-Site VPN
✅ استفاده از Wireguard برای VPN های سریع
✅ استفاده از گواهینامههای دیجیتال (PKI) به جای PSK
6. مدیریت Session
✅ تنظیم Session Timeout مناسب
✅ نظارت بر کاربران متصل
✅ قطع اتصال کاربران غیرفعال
دستورات مرجع سریع
مدیریت دسترسی
دستور |
کاربرد |
|---|---|
|
بلاک کردن IP پس از تلاشهای ناموفق |
|
باز کردن بلاک IP |
|
نمایش تلاشهای ورود ناموفق |
|
نمایش کاربران متصل |
|
قطع اتصال کاربر |
مدیریت گذرواژه
دستور |
کاربرد |
|---|---|
|
تغییر گذرواژه دسترسی |
|
تنظیم گذرواژه enable |
|
تنظیم گذرواژه config |
|
تنظیم حداقل طول گذرواژه |
|
فعالسازی رمزنگاری گذرواژه |
امنیت SSH
دستور |
کاربرد |
|---|---|
|
نمایش وضعیت SSH |
|
تغییر پورت SSH |
|
مدیریت Public Keys |
|
نمایش Public Keys |
فیلترینگ
دستور |
کاربرد |
|---|---|
|
ایجاد ACL |
|
اعمال ACL روی interface |
|
فعالسازی uRPF |
Port Security
دستور |
کاربرد |
|---|---|
|
فعالسازی Sticky MAC |
|
تعیین حداکثر تعداد MAC |
|
تنظیم Script برای Violation |
|
نمایش وضعیت Port Security |
|
پاک کردن Violation |
Session Management
دستور |
کاربرد |
|---|---|
|
ورود به حالت پیکربندی VTY |
|
تنظیم Session Timeout |
خلاصه
با استفاده از تنظیمات امنیتی ارائه شده در این بخش، میتوانید:
✅ محافظت در برابر حملات با بلاک کردن IP های مشکوک
✅ کنترل دسترسی با مدیریت گذرواژهها و SSH
✅ فیلترینگ ترافیک با ACL و uRPF
✅ امنیت لایه 2 با Port Security
✅ تونلهای امن با IPSec و Wireguard
✅ نظارت و لاگگیری برای تشخیص و تحلیل تهدیدات
با رعایت بهترین شیوههای امنیتی و پیکربندی صحیح، میتوانید یک زیرساخت امن و پایدار برای شبکه خود ایجاد کنید.