/ip firewall filter
add action=accept chain=input src-address=127.0.0.0/8
add action=accept chain=input connection-state=established,related
add action=jump chain=input connection-state=new jump-target=ICMP protocol=icmp
#pristup z LAN na tento router asi moc neomezovat (ale bezpecnosti se meze nekladou ... myslim ovsem, ze vsechny sluzby lze omezit primo v jejich definici, neni uplne nutne je delat firewallem - krome DNS a mozna i NTP serveru).
#ale lze to ochranit pred "zahlcenim" castym pripojovanim, vysledek je povoleni nebo zablokovani takove sluzby. Pocitani je na SRC-IP, cili vsechny tam "poslane" sluzby soucasne. Takto napsane to tedy povoli pristup i z WAN
add action=jump chain=input connection-state=new dst-port=22,8291 jump-target=sshchain protocol=tcp
add action=accept chain=input in-interface=ETHER-LAN
#co potrebuje byt vystaveno z tohoto routeru do WAN povolit zde. Asi moc takovych sluzeb nebude.
#pozor hlavne na DNS, to musi zustat z WAN zakazane dej se co dej.
#a nasledne VSE zakazat
add action=drop chain=input
#-------------------------
#na toto misto musis nadefinovat ten LIMIT (nebo DST-LIMIT). Ja nevim vlastne, jak se to pise ...
#jelikoz kdekoliv jinde za established,related by to nic nepocitalo - nikdy by tam ten paket "neprosel"
#tohle by melo nepovolit prekroceni 100 paketu za sekundu smerem z wan do lan. Ale VSECH!!! Cili je vlastne nutne to psat zvlast alespon na skupiny sluzeb/IP.
add action=drop chain=forward in-interface=ether1-wan limit=100,5:packet
#nebo pouzit tu druhou moznost, ktera to rovnou pocita na kazdou DST adresu zvlast. Takhle napsano to je zase smer z WAN do LAN.
add action=drop chain=forward dst-limit=100,5,dst-address/1m40s in-interface=ether1-wan
#tohle funguje tak, ze prvni paket pokousejici se projit routerem (skupina SRC,DST,SPORT,DPORT,PROTOCOL) neni ani navazane, ani k necemu patrici spojeni
#tedy tento radek nezabere a paket je testovan dal. Pokud je akceptovan, tak vsechny ostatni (i ty opacnym smerem) uz jsou navazane a tedy povolene timto pravidlem.
add action=accept chain=forward connection-state=established,related
add action=jump chain=forward connection-state=new jump-target=ICMP protocol=icmp
add action=accept chain=forward comment="VNC" dst-port=5800-5900 in-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="VNC" dst-port=5800-5900 in-interface=ether1-wan protocol=udp
add action=accept chain=forward comment= "PPTP" dst-port=500,4500,1701 in-interface=ether1-wan protocol=udp
add action=accept chain=forward comment="DVB-T server" dst-port=9981,9982 in-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="DVB-T server" dst-port=9981,9982 in-interface=ether1-wan protocol=udp
add action=accept chain=forward comment="www server" dst-port=80,443 in-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="FTP server" dst-port=1021 in-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="FTP server PASSIV" dst-port= 2005-2010 in-interface=ether1-wan protocol=tcp
add action=accept chain=forward comment="SSH na server" dst-port=222 in-interface=ether1-wan protocol=tcp
#nektere veci je lepsi zakazat sakumprdum
add action=drop chain=forward comment="blokace exploitable services" connection-state=new dst-port=1900 log=yes log-prefix="DDOS: " protocol=udp
add action=drop chain=forward connection-state=new dst-port=19 log=yes log-prefix="DDOS: " protocol=udp
add action=drop chain=forward connection-state=new dst-port=19 log=yes log-prefix="DDOS: " protocol=tcp
add action=drop chain=forward connection-state=new dst-port=17 log=yes log-prefix="DDOS: " protocol=tcp
add action=drop chain=forward connection-state=new dst-port=17 log=yes log-prefix="DDOS: " protocol=udp
#ja to delam rozdelene, ven i dovnitr z LAN zvlast. Jde o hlidani MAX poctu konexi.
#na tomto miste se to netyka provozu povoleneho/zakazaneho extra pred temito radky.
add action=reject chain=forward comment="konexe tcp" connection-limit=300,32 connection-state=new in-interface=ETHER-LAN protocol=tcp reject-with=tcp-reset
add action=reject chain=forward connection-limit=100,32 connection-state=new in-interface=ETHER-LAN protocol=udp reject-with=icmp-admin-prohibited
add action=reject chain=forward connection-limit=100,32 connection-state=new out-interface=ETHER-LAN protocol=tcp reject-with=tcp-reset
add action=reject chain=forward connection-limit=50,32 connection-state=new out-interface=ETHER-LAN protocol=udp reject-with=icmp-admin-prohibited
#tohle mi neni jasne ... blokovat provoz smerem k tem serverum? nema to byt obracene?
add action=drop chain=forward comment="Blokovani IP adres v address listu (bych si to popsal asi lepe ...)" dst-address-list=SAT
#vsechno smerem z LAN do WAN chci povolit?
add action=accept chain=forward in-interface=ETHER-LAN
#a naopak pristup z WAN do LAN komplet zakazat (pro jistotu bez definovani interface)
add action=drop chain=forward
#----------------------
#filtruji i ICMP
add action=accept chain=ICMP icmp-options=8:0-255 protocol=icmp
add action=accept chain=ICMP icmp-options=3:0-255 protocol=icmp
add action=accept chain=ICMP icmp-options=4:0-255 protocol=icmp
add action=accept chain=ICMP icmp-options=11:0-255 protocol=icmp
add action=accept chain=ICMP icmp-options=12:0-255 protocol=icmp
add action=drop chain=ICMP log=yes log-prefix=ICMP protocol=icmp
#---------------------------
#je vhodne si IP spravce povolit zapsanim do zmineho address listu. Nutne to samozrejme neni.
add action=drop chain=sshchain comment="SSH prevent brute force" src-address-list=sys_ssh_blacklist
add action=accept chain=sshchain comment="whitelist" src-address-list=NEJAKY_ADDRESS_LIST
add action=add-src-to-address-list address-list=sys_ssh_blacklist address-list-timeout=3d chain=sshchain connection-state=new src-address-list=sys_ssh_stage3
add action=add-src-to-address-list address-list=sys_ssh_stage3 address-list-timeout=1m chain=sshchain connection-state=new src-address-list=sys_ssh_stage2
add action=add-src-to-address-list address-list=sys_ssh_stage2 address-list-timeout=1m chain=sshchain connection-state=new src-address-list=sys_ssh_stage1
add action=add-src-to-address-list address-list=sys_ssh_stage1 address-list-timeout=1m chain=sshchain connection-state=new
add action=accept chain=sshchain
ETHER-LAN si nahraď správným názvem.
Je to trošku zjednodušené než používám já, ale pro tebe jako zjevného začátečníka to musí stačit.
Jde o princip "firemní síť". Tedy: co není povoleno, je zakázáno. Princip "ISP" by se psal obráceně ...
A jak už jsem jednou řekl, omezovat počty paketů za vteřinu je prostě pitomé. Špatně se to definuje, co počítat, co radši ne ... a také rozhodnout, co je správný počet. Kromě toho to možná bude zbytečně náročné pro router (to connection-limit také, ale dle mě méně).
Také jsem koukal, že v DNAT máš třeba i SMTP server. Ten ovšem ve filteru nepovoluješ. Kromě toho ten jede jen na TCP. A pro www servery bych asi udělal i port 443.
edit: snad jsem po sobě všechny chyby napravil. Můžeš zkoušet. Ale doporučuji nastudovat si principy stavových firewallů. Nemusíš přímo mikrotik, linuxový netfilter (iptables) je to samé. Já většinou dodržuji pořekadlo: dej hladovému rybu, nasytíš ho dnes. Nauč ho lovit, nasytíš ho do konce života. Akorát jsem ho teď dost porušil ... A také neradím osobně, raději mám veřejnou pomoc. Nejsi jediný na světě ...