Een poortdoorstuur zegt tegen de router: komt er verkeer van buiten op deze poort binnen, stuur het dan naar dit apparaat in mijn netwerk. In RouterOS is dat een dst-nat-regel. Je hebt het nodig voor een webserver, een spelserver of een camera die van buiten benaderd moet worden. Je hebt het meestal niet nodig als alleen jijzelf erbij moet: daar is VPN voor.
Waar het staat
In het onderdeel Firewall & NAT, onder Port forwarding. Bij de router-rollen komt dezelfde lijst ook in de wizard langs.
De velden
- Protocol: TCP, UDP of allebei. Bij allebei worden er twee regels geschreven.
- Externe poort(en): waar van buiten op aangeklopt wordt. Een lijst mag:
80,443. - Naar intern adres: het vaste adres van het apparaat binnen.
- Interne poort: optioneel. Leeg laten betekent dezelfde poort als buiten. Vul je iets in, dan komt
443van buiten bijvoorbeeld binnen aan op8443. - Opmerking: komt als comment in het script en helpt je over een jaar.
Geef het apparaat binnen een vast adres, anders wijst je regel na een reboot naar de buurman. In LAN en DHCP zet je daarvoor een vaste lease op het MAC-adres.
Beperken wie erbij mag
De doorstuurregel zelf heeft geen veld voor het bronadres: hij staat open voor heel internet. Wil je hem beperken, dan zijn er twee wegen in de tool. Zet de toegestane adressen in een adreslijst en voeg een eigen filterregel toe in de forward-chain die verkeer naar het interne adres dropt behalve vanaf die lijst (RouterOS accepteert een uitroepteken voor de lijstnaam). Of, als de dienst op de router zelf draait en niet op een apparaat erachter, gebruik dan de lijst diensten op de router zelf bereikbaar vanaf internet: die heeft wel een veld alleen vanaf.
Let op het verschil tussen die twee lijsten. Poortdoorstuur gaat naar een apparaat achter de router. De tweede lijst zet een poort open op de router zelf, bijvoorbeeld voor een dienst die je daar draait. VPN-poorten hoef je in geen van beide te zetten: die worden vanuit het onderdeel VPN automatisch toegevoegd.
Hairpin NAT
Zonder hairpin werkt je doorstuur van buiten, maar niet als je vanaf je eigen bank op hetzelfde publieke adres probeert. Dat is de klassieke "het werkt op 4G maar niet op wifi". Met hairpin NAT aan (standaard, zodra er een doorstuur in de lijst staat) komt er een tweede dst-nat-regel voor verkeer dat vanaf het LAN naar een eigen adres van de router gaat, plus een masquerade-regel zodat het antwoord via de router terugkomt in plaats van rechtstreeks. Die masquerade-helft gebruikt de reeks uit LAN en DHCP.
Hairpin is niet de enige oplossing en meestal niet de mooiste. Een statisch DNS-record dat de naam binnen naar het interne adres laat wijzen, is goedkoper en eerlijker. Zie DNS.
Wat de configurator ervan maakt
Per doorstuur een regel in /ip firewall nat, chain dstnat, met in-interface-list=WAN. De standaard forward-regel die alles vanaf WAN dropt, laat dstnatted verbindingen juist door, dus je hebt geen extra accept-regel nodig. Dat is ook de reden dat die slotregel drop all from WAN not DSTNATed heet.
Waarom dubbel NAT het breekt
Als het modem van je provider zelf nog routeert, heeft jouw router geen publiek adres maar een adres uit het modemnetwerk. Verkeer van buiten komt dan nooit bij jouw regel aan, want het modem weet niet waar het heen moet. Controleer met /ip address print welk adres je WAN-poort heeft. Begint het met 192.168., 10. of 100.64., dan zit je achter iets.
- Zet het modem in bridge. Dat is de echte oplossing; je router krijgt dan het publieke adres.
- Kan dat niet, dan moet je in het modem ook doorsturen, naar het WAN-adres van je MikroTik. Twee lagen die allebei goed moeten staan.
- Krijgt je provider zelf al geen publiek adres meer (CGNAT, het bereik
100.64.0.0/10), dan valt er niets door te sturen. Vraag een publiek IPv4-adres aan, of gebruik IPv6, of laat de verbinding vanaf binnen opzetten met een VPN.
De veiligere route: VPN
Elke open poort is een deur waar de hele wereld tegenaan mag duwen. Moet alleen jij bij je NAS, je camera's of je server, zet dan geen poort open maar een WireGuard-tunnel. Je bent dan binnen alsof je thuis bent, en van buiten is er niets te zien. De tool waarschuwt daar ook actief voor bij poorten 3389, 445, 23 en 21: remote desktop, bestandsdeling, telnet en FTP horen niet rechtstreeks aan internet. Zie VPN voor onderweg.
Als het niet werkt
- Test van buiten, niet van binnen. Gebruik je telefoon op mobiel internet. Testen vanaf je eigen netwerk test hairpin, niet je doorstuur.
- Staat de regel er?
/ip firewall nat print statstoont of er pakketten op je dstnat-regel staan. Nul betekent: het komt niet eens bij de router aan, dus kijk naar het modem of je provider. - Heeft het apparaat binnen zelf een firewall? Windows, een NAS en veel camera's blokkeren standaard van buiten hun eigen subnet.
- Klopt het interne adres nog? Zonder vaste lease verschuift het.
- Wisselt je publieke adres? Dan heb je een naam nodig die meebeweegt. Dat regel je bij je DNS-aanbieder of met de cloud-functie van RouterOS, niet in dit onderdeel.
Verder lezen: Firewall en NAT, Recept: een server die van buiten bereikbaar is en Als er iets misgaat.