info@itandaman.com
Network Zone

Firewall Script Mikrotik

4views


จากเหตุการณ์ที่มีการ Hack เข้ามาเพื่อฝัง Script ที่ Router Mikrotik ผลกระทบหลักๆเลยคือ Hacker ได้ทำการเปลี่ยนสิทธิ User ที่เป็นจาก Full แก้ไขได้ทุกอย่าง ให้เป็น Read Only คือดูได้อย่างเดียว และ Disable ปุ่ม Reset ไม่ให้เรา Reset ได้ หรือ ต้องกดปุ่ม Reset ค้างไว้เป็นระยะเวลาที่นานมาก รวมถึงเปลี่ยน Boot Device เป็น Nand Only ทำให้ไม่สามารถทำ Net-Install เพื่อทำการ Format ได้ และได้ฝัง Script เอาไว้

/ip firewall filter
add chain=forward connection-state=invalid \ action=drop comment=”drop invalid connections”
add chain=forward connection-state=established action=accept \ comment=”allow already established connections”
add chain=forward connection-state=related action=accept \ comment=”allow related connections”

ยอมให้มีการใช้ icmp

/ip firewall filter
add chain=icmp protocol=icmp icmp-options=0:0 action=accept \ comment=”echo reply”
add chain=icmp protocol=icmp icmp-options=3:0 action=accept \ comment=”net unreachable”
add chain=icmp protocol=icmp icmp-options=3:1 action=accept \ comment=”host unreachable”
add chain=icmp protocol=icmp icmp-options=4:0 action=accept \ comment=”allow source quench”
add chain=icmp protocol=icmp icmp-options=8:0 action=accept \ comment=”allow echo request”
add chain=icmp protocol=icmp icmp-options=11:0 action=accept \ comment=”allow time exceed”
add chain=icmp protocol=icmp icmp-options=12:0 action=accept \ comment=”allow parameter bad”
add chain=icmp action=drop comment=”deny all other types”

Block การสุ่ม Login ในแบบ Bruteforce (สุ่ม User/Password Login อัดเข้ามา)
Login FTP ผิด 10 ครั้งต่อนาที

/ip firewall filter
add chain=input protocol=tcp dst-port=21 src-address-list=ftp_blacklist action=drop \ comment=”drop ftp brute forcers”
add chain=output action=accept protocol=tcp content=”530 Login incorrect” dst-limit=1/1m,9,dst-address/1m
add chain=output action=add-dst-to-address-list protocol=tcp content=”530 Login incorrect” \ address-list=ftp_blacklist address-list-timeout=3h

Prevent a SSH brute forcer to be banned for 10 days after repetitive attempts: อันนี้ Ban 10 วันเลย

/ip firewall filter
add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \ comment=”drop ssh brute forcers” disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new \ src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist \ address-list-timeout=10d comment=”” disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new \ src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 \ address-list-timeout=1m comment=”” disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 \ action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m comment=”” disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list \ address-list=ssh_stage1 address-list-timeout=1m comment=”” disabled=no
add chain=forward protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \ comment=”drop ssh brute downstream” disabled=no

Drop port scanners

/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=”Port scanners to 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”

Drop those IPs in both Input & Forward chains:

/ip firewall filter
add chain=input src-address-list=”port scanners” action=drop comment=”dropping port scanners” disabled=no
add chain=forward src-address-list=”port scanners” action=drop comment=”dropping port scanners” disabled=no

Block Bogon IP addresses

/ip firewall filter
add chain=forward src-address=0.0.0.0/8 action=drop \ comment=”Block Bogon IP addresses”
add chain=forward dst-address=0.0.0.0/8 action=drop
add chain=forward src-address=127.0.0.0/8 action=drop
add chain=forward dst-address=127.0.0.0/8 action=drop
add chain=forward src-address=224.0.0.0/3 action=drop
add chain=forward dst-address=224.0.0.0/3 action=drop

Make jumps to new chains

/ip firewall filter
add chain=forward protocol=tcp action=jump jump-target=tcp \ comment=”Make jumps to new chains”
add chain=forward protocol=udp action=jump jump-target=udp
add chain=forward protocol=icmp action=jump jump-target=icmp

Create TCP chain and deny some TCP ports in it (revise port numbers as needed)

/ip firewall filter
add chain=tcp protocol=tcp dst-port=69 action=drop \ comment=”deny TFTP”
add chain=tcp protocol=tcp dst-port=111 action=drop \ comment=”deny RPC portmapper”
add chain=tcp protocol=tcp dst-port=135 action=drop \ comment=”deny RPC portmapper”
add chain=tcp protocol=tcp dst-port=137-139 action=drop \ comment=”deny NBT”
add chain=tcp protocol=tcp dst-port=445 action=drop \ comment=”deny cifs”
add chain=tcp protocol=tcp dst-port=2049 action=drop comment=”deny NFS”
add chain=tcp protocol=tcp dst-port=12345-12346 action=drop comment=”deny NetBus”
add chain=tcp protocol=tcp dst-port=20034 action=drop comment=”deny NetBus”
add chain=tcp protocol=tcp dst-port=3133 action=drop comment=”deny BackOriffice”
add chain=tcp protocol=tcp dst-port=67-68 action=drop comment=”deny DHCP”

Create UDP chain and deny some UDP ports in it (revise port numbers as needed)

/ip firewall filter
add chain=udp protocol=udp dst-port=69 action=drop comment=”deny TFTP”
add chain=udp protocol=udp dst-port=111 action=drop comment=”deny PRC portmapper”
add chain=udp protocol=udp dst-port=135 action=drop comment=”deny PRC portmapper”
add chain=udp protocol=udp dst-port=137-139 action=drop comment=”deny NBT”
add chain=udp protocol=udp dst-port=2049 action=drop comment=”deny NFS”
add chain=udp protocol=udp dst-port=3133 action=drop comment=”deny BackOriffice”

Block Port Virus

/ip firewall filter

add chain=virus protocol=tcp dst-port=135-139 action=drop comment=”Drop Blaster Worm”
add chain=virus protocol=udp dst-port=135-139 action=drop comment=”Drop Messenger Worm”
add chain=virus protocol=tcp dst-port=445 action=drop comment=”Drop Blaster Worm & WannaCrypt”
add chain=virus protocol=udp dst-port=445 action=drop comment=”Drop Blaster Worm”
add chain=virus protocol=tcp dst-port=593 action=drop comment=”________”
add chain=virus protocol=tcp dst-port=1024-1030 action=drop comment=”________”
add chain=virus protocol=tcp dst-port=1080 action=drop comment=”Drop MyDoom”
add chain=virus protocol=tcp dst-port=1214 action=drop comment=”________”
add chain=virus protocol=tcp dst-port=1363 action=drop comment=”ndm requester”
add chain=virus protocol=tcp dst-port=1364 action=drop comment=”ndm server”
add chain=virus protocol=tcp dst-port=1368 action=drop comment=”screen cast”
add chain=virus protocol=tcp dst-port=1373 action=drop comment=”hromgrafx”
add chain=virus protocol=tcp dst-port=1377 action=drop comment=”cichlid”
add chain=virus protocol=tcp dst-port=1433-1434 action=drop comment=”Worm”
add chain=virus protocol=tcp dst-port=2745 action=drop comment=”Bagle Virus”
add chain=virus protocol=tcp dst-port=2283 action=drop comment=”Drop Dumaru.Y”
add chain=virus protocol=tcp dst-port=2535 action=drop comment=”Drop Beagle”
add chain=virus protocol=tcp dst-port=2745 action=drop comment=”Drop Beagle.C-K”
add chain=virus protocol=tcp dst-port=3127-3128 action=drop comment=”Drop MyDoom”
add chain=virus protocol=tcp dst-port=3410 action=drop comment=”Drop Backdoor OptixPro”
add chain=virus protocol=tcp dst-port=4444 action=drop comment=”Worm”
add chain=virus protocol=udp dst-port=4444 action=drop comment=”Worm”
add chain=virus protocol=tcp dst-port=5554 action=drop comment=”Drop Sasser”
add chain=virus protocol=tcp dst-port=8866 action=drop comment=”Drop Beagle.B”
add chain=virus protocol=tcp dst-port=9898 action=drop comment=”Drop Dabber.A-B”
add chain=virus protocol=tcp dst-port=10000 action=drop comment=”Drop Dumaru.Y”
add chain=virus protocol=tcp dst-port=10080 action=drop comment=”Drop MyDoom.B”
add chain=virus protocol=tcp dst-port=12345 action=drop comment=”Drop NetBus”
add chain=virus protocol=tcp dst-port=17300 action=drop comment=”Drop Kuang2″
add chain=virus protocol=tcp dst-port=27374 action=drop comment=”Drop SubSeven”
add chain=virus protocol=tcp dst-port=65506 action=drop comment=”Drop PhatBot, Agobot, Gaobot”
add chain=forward action=jump jump-target=virus comment=”jump to the virus chain”
add chain=virus protocol=tcp dst-port=139 action=drop comment=”Drop WannaCrypt”