@
BaseBoyNL RouterOS ondersteunt een soort van fail2ban m.b.v. dynamic address lists & timeouts.
Hier hoe je dat toepast (uit de oude mikrotik docs, kan ik zo snel even geen link voor vinden). Ik heb een chain genaamd svcp-SSH dat automatisch ip addressen blokkeert als ze meer dan 3x in ca 3 minuten verbinding proberen te maken. Die 3x kan je aanpassen door meer of minder 'kleuren' te gebruiken'.
Het idee is dus dat:
- iemand verbind met SSH -> ip toegevoegd aan light gray adres lijst voor 1 min
- iemand verbind weer met SSH en zijn ip is in light gray -> gray voor 1 min
- iemand verbind weer met SSH en zijn ip is in gray -> dark gray voor 1 min
- iemand verbind weer met SSH en zijn ip is in dark gray -> geblocked voor 2 weken
Als er ip adressen zijn die je vertrouwt, voeg die dan toe aan de my-TRUSTED-IPs adres lijst zodat die nooit aan light gray worden toegevoegd. Anders blokkeer je je zelf ook als je 3x (succesvol) binnen 3 min inlogt.
code:
1
2
3
4
5
6
7
8
| add action=return chain=svcp-SSH dst-port=!22 protocol=tcp
add action=return chain=svcp-SSH protocol=!tcp
add action=add-src-to-address-list address-list=SSH-BLACKLIST address-list-timeout=2w chain=svcp-SSH src-address-list=SSH-DARKGRAY
add action=drop chain=svcp-SSH src-address-list=SSH-BLACKLIST
add action=add-src-to-address-list address-list=SSH-DARKGRAY address-list-timeout=1m chain=svcp-SSH src-address-list=SSH-GRAY
add action=add-src-to-address-list address-list=SSH-GRAY address-list-timeout=1m chain=svcp-SSH src-address-list=SSH-LIGHTGRAY
add action=add-src-to-address-list address-list=SSH-LIGHTGRAY address-list-timeout=1m chain=svcp-SSH src-address-list=!my-TRUSTED-IPs
add action=accept chain=svcp-SSH |
Je hoeft uiteraard niet een aparte chain te gebruiken, maar om mijn firewall overzichtelijk te houden definieer ik chain's per applicatie / port. Vervolgens kan je dan je binnenkomende verkeer via jump-targets door deze chain sturen:
code:
1
2
3
4
| add action=jump chain=input in-interface-list=wans jump-target=in-WAN
add action=jump chain=in-WAN jump-target=svcp-SSH
... andere toegestane services
add action=drop chain=in-WAN |
Let wel (1), je zou dit alleen moeten gebruiken voor services die je alleen voor jezelf daadwerkelijk publiekelijk toegankelijk wilt hebben. Het beste zou uiteraard zijn om enkel een adressen lijst als whitelist te gebruiken en/of om de ssh of telnet service niet op een standard port te draaien:
code:
1
| add action=accept chain=svcp-SSH dst-port=22 protocol=tcp src-address-list=my-TRUSTED-IPs |
Let wel (2), dat op mijn manier van het gebruiken van chains & jump-targets je significant meer firewall regels krijgt. Voor huis, tuin en keukengebruik zou dat niet een groot probleem moeten zijn, maar hoe meer firewall regels des te hogere latency uiteraard. Zelf vind ik een overzichtelijke firewall belangrijker.