De firewall beslist drie dingen: wat er bij de router zelf mag komen (de input-chain), wat er doorheen mag naar een ander netwerk (de forward-chain), en hoe verkeer naar buiten van adres wisselt (NAT). Dit onderdeel staat standaard aan en is het enige onderdeel dat je beter niet uitzet.
Waar het staat
In de wizard krijg je bij de router-rollen een korte firewallstap: poortdoorstuur, VLAN-isolatie, beheer alleen vanuit het beheer-VLAN en brute-force bescherming. In geavanceerd staat het hele onderdeel Firewall & NAT open.
Twee firewalls om uit te kiezen
Bovenaan kies je welke firewall je wilt. Van deze tool is de standaard: de regels van MikroTik plus de opties hieronder. De standaard firewall van MikroTik is letterlijk wat een fabrieksapparaat heeft, inclusief de defconf: opmerkingen, zodat je hem regel voor regel naast een echt apparaat kunt leggen. Kies je die, dan gelden de opties hieronder niet: je krijgt de standaardregels en verder niets. Dat staat ook als melding boven het script.
De volgorde, en waarom die zo is
RouterOS loopt de regels van boven naar beneden af en stopt bij de eerste die past. De standaardregels beginnen daarom met de goedkoopste beslissing:
- accept established, related, untracked: verkeer dat bij een verbinding hoort die al beoordeeld is. Verreweg de meeste pakketten vallen hier al af en hoeven de rest van de lijst niet door.
- drop invalid: pakketten die bij geen enkele verbinding horen. Die zijn nooit nuttig.
- Daarna pas de regels die naar nieuwe verbindingen kijken: ICMP, je eigen regels, wat je vanaf internet openzet.
- drop all not coming from LAN als slot van de input-chain, en drop all from WAN not DSTNATed als slot van de forward-chain.
Die laatste twee doen het echte werk. Alles wat je openzet is een uitzondering die ervóór staat; alles waar je niets over zegt, gaat weg. Regels die jij toevoegt worden vanzelf vóór de afsluitende drop gezet.
FastTrack
FastTrack geeft bestaande verbindingen een kort pad door de router heen. Op kleine routers is dat het verschil tussen een paar honderd megabit en gigabit. Het staat standaard aan, maar wordt automatisch weggelaten zodra QoS of PCC load balancing actief is, want fasttracked verkeer slaat die juist over. In plaats van de regel komt er dan een opmerking in het script die uitlegt waarom hij er niet staat.
NAT naar internet
Masquerade is de keuze voor een dynamisch WAN-adres en werkt altijd. Heb je een vast adres van je provider, dan is src-nat naar een vast adres iets efficiënter, want de router hoeft het adres niet elke keer op te zoeken. Geen NAT is voor routers die met publieke adressen werken of ergens in de kern staan. Voor switches en access points is er daarnaast de schakelaar alleen het apparaat zelf beschermen: dan komen alleen input-regels in het script, geen forward-regels en geen NAT.
Ping vanaf internet
Ping blokkeren staat standaard uit, en dat is met opzet. ICMP is niet alleen ping: het draagt ook de foutmeldingen waarmee de juiste pakketgrootte gevonden wordt. Blokkeer je ICMP helemaal, dan laden websites half en blijven downloads hangen. Zet je de schakelaar aan, dan wordt alleen de echo-request vanaf WAN gedropt en blijft de rest van ICMP gewoon toegestaan.
Bogons in raw
Adressen die nooit van internet kunnen komen (privéreeksen, documentatiereeksen, gereserveerde blokken) worden in /ip firewall raw gedropt, vóór connection tracking. Dat scheelt werk op de router. De regels voor het doeladres staan bewust op in-interface-list=WAN, zodat multicast op je LAN blijft werken: anders sneuvelen mDNS, SSDP en printerdetectie meteen mee.
Hangt je router achter een modem dat zelf nog routeert, dan is zijn WAN-adres privé. De bogon-regels droppen dan verkeer vanuit dat modemnetwerk. Zet het modem in bridge, of zet bogons uit voor dat apparaat.
Isolatie tussen VLANs
Gebruik je VLANs, dan zijn er twee manieren om te bepalen wie wie mag bereiken. Open, behalve geïsoleerde VLANs volgt het vinkje Geïsoleerd per VLAN: zo'n VLAN mag alleen naar internet. Alleen wat in de matrix is aangevinkt geeft je een raster: een rij start de verbinding, een kolom ontvangt hem, antwoorden komen altijd terug. Wat niet aangevinkt staat, gaat weg, ook voor IPv6. Schakel je over naar de matrix, dan begint die met wat vandaag open staat, zodat het omzetten zelf niets afsnijdt. Het vinkje Geïsoleerd wordt dan niet meer gebruikt.
Daarnaast is er router alleen beheerbaar vanuit het beheer-VLAN. Die regel laat DNS, DHCP en NTP vanaf het hele LAN naar de router toe, plus volledig beheer vanuit het beheer-VLAN en vanaf een eventuele offbridge-poort, en dropt de rest. Zie ook Beheertoegang.
Brute-force bescherming
Deze optie bouwt de escalerende adreslijsten uit de handleiding: eerste poging, tweede, derde, daarna een dag op de banlijst, op de SSH- en WinBox-poort die je bij Beheertoegang hebt gekozen. Wees eerlijk over wanneer dit helpt: staat de standaard input-drop aan en is beheer niet vanaf internet bereikbaar, dan is dat verkeer toch al weg en houden de lijsten alleen adressen bij van pakketten die nergens meer komen. De tool zegt dat ook. En let op: de regels matchen op nieuwe TCP-verbindingen, dus iemand met een vervalst afzenderadres kan een adres op de banlijst zetten, ook dat van jou.
Loggen en eigen regels
Gedropte input-pakketten loggen zet een prefix drop-in op de afsluitende drop, handig als je wilt zien wat er aanklopt. Zet het niet permanent aan op een druk apparaat.
Onderaan staan adreslijsten en eigen filterregels. Een eigen regel kiest chain, actie, protocol, poorten, bron- en doeladres, een bron-adreslijst en in- of out-interface (of de lijsten WAN en LAN, eventueel met uitroepteken). Input-regels komen vóór de afsluitende input-drop, de andere vóór de afsluitende forward-drop.
Helemaal onderaan kun je tcp-established-timeout verlagen. Leeg laten betekent de RouterOS-standaard van een dag; op een router met weinig geheugen is bijvoorbeeld 2h zinniger.
IPv6 krijg je er altijd bij
Ook als je IPv6 niet gebruikt, komt de IPv6-firewall mee in het script. Een apparaat zonder IPv6-regels is namelijk pas onveilig op het moment dat de stack alsnog aangaat, bijvoorbeeld na een update, en dan staat alles open. Wil je IPv6 echt kwijt, lees dan IPv6.
Wat je kunt controleren
/ip firewall filter printtoont de regels in volgorde; metprint statszie je welke regel daadwerkelijk pakketten telt./ip firewall nat printvoor masquerade en je doorstuurregels./ip firewall raw printvoor de bogons.- Zet je de standaardregels uit, dan geeft de tool een fout: zonder input-drop is de router vanaf internet bereikbaar.
Verder lezen: Een poort openzetten, VLANs en Als er iets misgaat.