Vill du ha ett DDoS-filter i MikroTik RouterOS7? Då får du vara snäll och först fundera lite på vad du vill, vad RouterOS skall göra om man överskrider gränserna du anger, hur länge de som överskrider gränserna skall vara på ”shit list”, med mera …
Jag anser att det enklaste är att man skapar IP-adresslistor, kanske dynamiska som gäller fram till nästa omstart eller statiska med ett bäst-före-datum angivet eller med oändlig livslängd. För min del, DDoS:ar man mina NTP-servrar så dröjer det för närvarande 10 minuter innan man är välkommen igen, gör man detsamma med min sökmotorproxy så är man persona non grata i tre månader … så man kan med gott samvete, och med förde, ha olika blocktider för olika brott, liksom …

Det fina med MikroTik RouterOS är att man kan skapa nästlade regler och man kan hoppa mellan de olika stegen på ett enkelt sätt.
I brandväggen så arbetar man oftast med de fördefinierade filterkedjorna input, output och forward men det finns inget som hindrar att man skapar en egen kedja, till exempel en som heter detect-ddos.


Under fliken ”General” så anger man att det är kedjan ”forward” man använde för att trigga filtret, tcp på port 80 eller 443 och att det är nya sessioner man tittar efter. Däremot, under ”Action”-fliken så anger man ”Jump” och som target anger man sin egen filterkedja, i mitt fall ”detect-ddos”. Sedan trycker man ”Ok” och sparar detta steg.
I nästa steg vill man sätta sina gränsvärde för en DDoS-attack och här finns inget ränt och heller inget fel, man får anpassa detta efter sina användares normala trafikmönster, till att börja med behöver man ju inte använda sin filterlista i en regel utan bara se hur många man fångar och sedan intrimmar man detta till man är nöjd …
I detta steg, under fliken ”General” anger jag bara min egen filterkedja, i mitt fall ”detect-ddos”.

Under fliken ”Extra” sker sedan vad man vill trigga på och i mitt fall har jag funnit att en kontinuerlig paketström med nya sessioner om 20 per sekund med en burat på 30 ytterligare ger ett bra resultat utan att till exempel en kommun eller företag som alla kommer från en enda IP-adress fastnar i filtret. I mitt fall just här har jag valt att återställa triggerfiltret efter 10 minuter för IP-källadressen mot just denna destinations-IP …

… och som ”Action” väljer jag att göra ”Return” tillbaka till filterkedjan ”detect-ddos”.

Om man inte börjat fundera på vad man vill än så är det dags nu, jag har för att vara framtidssäkrad satt upp så att jag skapar en lista över DDoS-attackerare och en lista över DDoS-offer, vilka IP-adresser dessa har alltså. Så när triggersteget ovan gör return tillbaka till filterkedjan ”detect-ddos” så kör jag följande.

Inget konstigt under ”General”, men under ”Action” ser det ut såhär …

… vilket, om den inte redan finns, skapar IP-listan ”ddos-targets”.
Nåsta steg i kedjan gör detsamma men för DDoS-källans IP-adress istället.

Skillnaden här är att jag tar bort IP-adressen ur listan efter 90 dagar.
Nu är filtret klart och man kan se vilka gränsvärden som kan passa en utan att man spärrar ut legitima användare, tänk på att många företag och organisationer presenterar sig med en och samma IP-adress vilket för att du kan få många samtidiga, men legitima, anrop från en och samma IP mot dina tjänster så det gäller att balansera detta, tyvärr finns det inte en smart knapp att trycka på utan det är upp till dig att finurla ut detta.
De IP-listor som skapas kan du sedan använda efter dina egna önskemål i dina brandväggsfilter.
