krakonos Pokud uděláš omezení na konexe a klient to používá také, tak je to pro něj samozřejmě problém. Odlišit dobrý a špatný provoz z principu vlastně nelze. Ale alespoň ti nelehne síť. Možná.
Na GW lze použít limit pro příchozí spojení. Samozřejmě to nějaký strojový čas stojí ... Ale pokud díky tomu nebude klient odpovídat, může to pomoci.
Musíš také zapojit RAW tabulku netfilteru, aby ti to nevyžralo conntrack. Tedy na forwardu, nebo inputu je vlastně pozdě (ale jen tam to zvládneš "počítat"). Proti DoS to jde, ale DDoS ti to zabije tak jako tak ...
Asi to nepoužíváš, tedy pro inspiraci:
/ip firewall filter
add action=jump chain=forward comment=konexe connection-state=new \
in-interface-list=connlimit jump-target=KONEXE_IN
add action=jump chain=forward connection-state=new jump-target=KONEXE_OUT \
out-interface-list=connlimit
add action=reject chain=KONEXE_IN connection-limit=450,32 protocol=tcp \
reject-with=tcp-reset
add action=reject chain=KONEXE_IN connection-limit=150,32 dst-port=!443 \
protocol=udp reject-with=icmp-admin-prohibited
add action=reject chain=KONEXE_IN connection-limit=120,32 dst-port=443 \
protocol=udp reject-with=icmp-admin-prohibited
add action=reject chain=KONEXE_OUT connection-limit=100,32 connection-state=\
"" protocol=tcp reject-with=tcp-reset
add action=reject chain=KONEXE_OUT connection-limit=50,32 protocol=udp \
reject-with=icmp-admin-prohibited
Je to takový základ proti tomu, aby stanice za klientským routerem neměla možnost se zbláznit. LAN interface musí být zapsán v interface-list connlimit.
Využít lze i počítání přístupů na služby routeru jako takového. Je to trochu něco jiného, používám to (po pravdě, je to obšlehnuté odněkud z tohoto fóra):
/ip firewall filter
add action=drop chain=sshchain comment="SSH prevent brute force" \
src-address-list=sys_ssh_blacklist
add action=accept chain=sshchain comment="whitelist khnet_management" \
src-address-list=khnet_management
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
Potom stačí z inputu cokoliv (příklad je ssh a winbox) poslat do tohoto chainu:
add action=jump chain=input connection-state=new dst-port=22,8291 \
jump-target=sshchain protocol=tcp
No a když už je ta IP hajzlem, tak ji seknout i ve zmíněné RAW:
/ip firewall raw
add action=drop chain=prerouting protocol=tcp src-address-list=sys_ssh_blacklist
Jsou to jen příklady!