مرجع شامل ومبسّط لأهم سكربتات RouterOS لتحصين جهازك، مرتّب في أقسام قابلة للطي لسهولة التصفح والنسخ السريع
إخلاء مسؤولية: لسنا مسؤولين عن أي خطأ أو عطل أو ضرر أو قفل قد يصيب جهازك نتيجة عوامل مقصودة أو غير مقصودة. هذا المرجع يعمل بشكل مستقل ولا يتبع لشركة MikroTik، وجميع المشاكل التي قد تحدث على جهازك هي مسؤوليتك الخاصة، ويجب أن تكون مستعدًا لتحمّل جميع المخاطر قبل تطبيق أي سكربت.
واجهة برمجة التطبيقات (API) تتيح للمستخدمين إنشاء برامج أو تطبيقات مخصصة تتواصل مع الراوتر عبر المنفذ 8728. غالبًا ما يتعرض هذا المنفذ لهجمات Brute Force، لذا يُفضّل تغييره أو تعطيله عند عدم الحاجة إليه.
# API Port Enable /ip service set api port=8728 address=0.0.0.0/0 disabled=no # API Port Disable /ip service set api port=8728 address=0.0.0.0/0 disabled=yes
نفس وظيفة API لكن مع تأمين إضافي عبر شهادة SSL على المنفذ 8729.
# API-SSL Port Enable /ip service set api-ssl port=8729 address=0.0.0.0/0 disabled=no # API-SSL Port Disable /ip service set api-ssl port=8729 address=0.0.0.0/0 disabled=yes
خدمة FTP القياسية على المنفذين 20 و21 لرفع/تنزيل النسخ الاحتياطية، وغالبًا ما تتعرض لهجمات Brute Force.
# FTP Port Enable /ip service set ftp port=21 address=0.0.0.0/0 disabled=no # FTP Port Disable /ip service set ftp port=21 address=0.0.0.0/0 disabled=yes
وحدة تحكم بعيدة آمنة ومشفّرة على المنفذ 22 الافتراضي، وغالبًا ما تتعرض لهجمات Brute Force.
# SSH Port Enable /ip service set ssh port=22 address=0.0.0.0/0 disabled=no # SSH Port Disable /ip service set ssh port=22 address=0.0.0.0/0 disabled=yes
نفس وظيفة SSH لكن بدون تشفير، على المنفذ 23 الافتراضي، وغالبًا ما تتعرض لهجمات Brute Force.
# TELNET Port Enable /ip service set telnet port=23 address=0.0.0.0/0 disabled=no # TELNET Port Disable /ip service set telnet port=23 address=0.0.0.0/0 disabled=yes
خدمة الوصول لواجهة Winbox الرسومية عبر المنفذ 8291. بعض إصدارات RouterOS القديمة قابلة للاستغلال عبر هذا المنفذ.
# WINBOX Port Enable /ip service set winbox port=8291 address=0.0.0.0/0 disabled=no # WINBOX Port Disable /ip service set winbox port=8291 address=0.0.0.0/0 disabled=yes
الوصول عبر المتصفح باستخدام HTTP على المنفذ 80.
# WWW (webfig) Port Enable /ip service set www port=80 address=0.0.0.0/0 disabled=no # WWW (webfig) Port Disable /ip service set www port=80 address=0.0.0.0/0 disabled=yes
الوصول عبر المتصفح مع تأمين SSL على المنفذ 443.
# WWW-SSL (webfig) Port Enable /ip service set www-ssl port=443 address=0.0.0.0/0 disabled=no # WWW-SSL (webfig) Port Disable /ip service set www-ssl port=443 address=0.0.0.0/0 disabled=yes
بروتوكولات MNDP/CDP قد تكشف هوية الراوتر وعنوان MAC وعنوان IP الخاص به للأجهزة المجاورة.
# Hide Discover Interface Broadcast /ip neighbor discovery-settings set discover-interface-list=none # Show Discover Interface Broadcast /ip neighbor discovery-settings set discover-interface-list=all
منع الوصول عن بُعد عبر عنوان MAC من خلال Winbox أو Telnet.
# Protect login from Mac Address /tool mac-server mac-winbox set allowed-interface-list=none /tool mac-server ping set enabled=no # Unprotect login from Mac Address /tool mac-server mac-winbox set allowed-interface-list=all /tool mac-server ping set enabled=yes
تفعيل حماية RouterBOOT يُعطّل زر الـ Reset والوصول عبر الكونسول. ملاحظة: بعد لصق سكربت التفعيل، اضغط زر الـ Reset خلال 60 ثانية لتأكيد التفعيل.
# Enable Bootloader Protector /system routerboard settings set protected-routerboot=enabled # Disable Bootloader Protector /system routerboard settings set protected-routerboot=disabled
منع استخدام الغرباء لراوترك كخادم اختبار سرعة (Bandwidth Test).
# Btest Server Enable /tool bandwidth-server set enabled=yes authenticate=yes # Btest Server Disable /tool bandwidth-server set enabled=no authenticate=yes
بروتوكول MikroTik الخاص الذي يستخدم عنوان MAC كمعرّف RoMON.
# Enable RoMON /tool romon set enabled=yes secrets=12345 # Disable RoMON /tool romon set enabled=no secrets=12345
حجب المنافذ الافتراضية للخدمات (telnet, ssh, ftp, winbox, www, api) عن الإنترنت.
# Protect Port Service from Internet /interface list add name=WAN /interface list member add list=WAN interface="ether to ISP" /ip firewall filter add action=drop chain=input dst-port=21,22,23,8291,80,8728,8729 in-interface-list=WAN protocol=tcp comment="Protect Port Service from Internet" add action=drop chain=input dst-port=21,22,23,8291,80,8728,8729 in-interface-list=WAN protocol=udp
ثغرة Winbox تتيح استخراج قاعدة بيانات المستخدمين. الإصدارات المتأثرة: 6.30.1–6.40.7، 6.29–6.42، 6.29rc1–6.43rc3.
# Anti Hack from EXPLOIT /ip firewall filter add action=reject chain=input content=user.dat reject-with=icmp-network-unreachable comment="Anti Hack Exploit" /ip firewall filter add action=drop chain=input content=user.dat
هجوم DDoS يستخدم المنفذ UDP 11211 (Memcached) كمُضخّم لحجم الهجوم.
# Memcrashed - Amplification Attacks UDP 11211 /ip firewall filter add chain=forward dst-port=11211 protocol=udp action=drop comment="Memcrashed - Amplification Attacks UDP 11211"
منع العملاء من الوصول لواجهة المودم/الراوتر الخاص بمزوّد الخدمة.
# Block ACCESS MODEM /ip firewall address-list add address=192.168.1.1 list=IP-MODEM add address=192.168.2.1 list=IP-MODEM /ip firewall filter add action=drop chain=forward dst-address-list=IP-MODEM dst-port=21-23,80,443 protocol=tcp comment="MODEM PROTECTED" add action=drop chain=output dst-address-list=IP-MODEM dst-port=21-23,80,443 protocol=tcp
إخفاء مسار الشبكة الداخلية عن أداة Traceroute.
# Drop TRACEROUTE /ip firewall filter add action=drop chain=forward icmp-options=11:0 protocol=icmp comment="Drop TRACEROUTE" add action=drop chain=forward icmp-options=3:3 protocol=icmp
اكتشاف وحظر مستخدمي NetCut (هجمات ARP من الطبقة الثانية) تلقائيًا.
# ANTI NETCUT /ip firewall address-list add list=netcut address=www.arcai.com comment="Anti Netcut" /ip firewall mangle add action=add-src-to-address-list address-list=NetcutUser address-list-timeout=1h5m chain=prerouting dst-address-list=netcut dst-port=80 protocol=tcp comment="Anti Netcut" /ip firewall filter add action=drop chain=forward src-address-list=NetcutUser comment="Anti Netcut" /system scheduler add interval=10m name="AutoBlockNetcut" comment="Anti Netcut"
ثم افتح System → Scheduler → AutoBlockNetcut وأضف هذا السكربت داخله:
local a [/ip firewall address-list get [find list="NetcutUser"] address]
local b [/ip hotspot active get [find address=$a] mac-address]
if ($a != "") do={
/ip hotspot ip-binding add mac-address="$b" address="$a" type=blocked
/ip firewall address-list remove [find address="$a"]
/system scheduler add name ($a) interval="01:00:00" on-event="/ip hotspot ip-binding remove [find mac-address=$b]; /system scheduler remove [find name=$a]"
}
منع استغلال راوترك كخادم DNS عام مفتوح (Open Recursive DNS).
# Block Open Recursive DNS /interface list add name=WAN /interface list member add list=WAN interface="ether to ISP" /ip firewall filter add chain=input dst-port=53 in-interface-list=WAN protocol=tcp action=drop comment="Block Open Recursive DNS" add chain=input dst-port=53 in-interface-list=WAN protocol=udp action=drop
منع استغلال البروكسي المفتوح (Open Proxy) على جهازك.
# Block Open PROXY /interface list add name=WAN /interface list member add list=WAN interface="ether to ISP" /ip firewall filter add action=drop chain=input dst-port=3128,8080 in-interface-list=WAN protocol=tcp comment="Block Open PROXY" add action=drop chain=input dst-port=3128,8080 in-interface-list=WAN protocol=udp
اكتشاف وحظر هجمات DDoS تلقائيًا باستخدام حدود الاتصالات (Connection Limits).
# Anti DDoS Attacks /ip firewall filter add chain=forward connection-state=new action=jump jump-target=block-ddos comment="Anti DDoS Attacks" add chain=forward connection-state=new src-address-list=ddoser dst-address-list=ddosed action=drop add chain=block-ddos dst-limit=50,50,src-and-dst-addresses/10s action=return add chain=block-ddos action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m add chain=block-ddos action=add-src-to-address-list address-list=ddoser address-list-timeout=10m
اكتشاف وإسقاط أدوات فحص المنافذ (NMAP FIN / SYN / NULL) تلقائيًا.
# Anti PORT SCAN /ip firewall filter add chain=input protocol=tcp psd=21,3s,3,1 action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="Mark Source ip port scanner to Address list" disabled=no add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP FIN Stealth scan" add chain=input protocol=tcp tcp-flags=fin,syn action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/FIN scan" add chain=input protocol=tcp tcp-flags=syn,rst action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="SYN/RST scan" add chain=input protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="FIN/PSH/URG scan" add chain=input protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="ALL/ALL scan" add chain=input protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w comment="NMAP NULL scan" add chain=input src-address-list="port scanners" action=drop comment="Drop port scanners" disabled=no
حظر محاولات الاختراق بالتخمين (Brute Force) الموجّهة ضد خدمتي FTP وSSH/Telnet.
# Anti Hack from BruteForce FTP + SSH /ip firewall filter add action=drop chain=input comment="drop ftp BRUTE FORCErs" dst-port=21 protocol=tcp src-address-list=ftp_blacklist add action=accept chain=output content="530 Login incorrect" dst-limit=1/1m,9,dst-address/1m protocol=tcp add action=add-dst-to-address-list address-list=ftp_blacklist address-list-timeout=3h chain=output content="530 Login incorrect" protocol=tcp add action=drop chain=input comment="drop ssh BRUTE FORCErs" dst-port=22-23 protocol=tcp src-address-list=ssh_blacklist add action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=1w3d chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage3 add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage2 add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp src-address-list=ssh_stage1 add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input connection-state=new dst-port=22-23 protocol=tcp add action=drop chain=forward comment="drop ssh brute downstream" dst-port=22-23 protocol=tcp src-address-list=ssh_blacklist
فتح المنافذ عن بُعد عبر إرسال حزم ICMP بأحجام محددة (72 ثم 172 بايت).
ويندوز: ping -l 72 (IP) ثم ping -l 172 (IP)
لينكس / ماك: ping -s 72 (IP) ثم ping -s 172 (IP)
# Port Knocking Use Icmp + Packet Size /ip firewall filter add action=add-src-to-address-list address-list="port-knocking-first" address-list-timeout="00:00:00" chain=input packet-size="72" protocol=icmp comment="Port Knocking first key" add action=add-src-to-address-list address-list="port-knocking-second" address-list-timeout="00:00:00" chain=input packet-size="172" protocol=icmp src-address-list="port-knocking-first" add action=accept chain=input dst-port="21,22,23" protocol=tcp src-address-list="port-knocking-second" add action=drop chain=input dst-port="21,22,23" protocol=tcp src-address-list="!port-knocking-second"