Handleiding

Port forward werkt niet van buiten

De dst-nat-regel staat in het script en toch komt er niets binnen. Test van buiten, en werk de lijst af.

Je hebt een poort opengezet voor een webserver, een camera of een spelserver. De regel staat in de firewall, het apparaat binnen doet het, en van buiten gebeurt er niets. Of het werkt op mobiele data en niet vanaf de bank.

Die laatste zin is belangrijk. Werkt het van buiten wel en van binnen niet, dan is het geen port forward-probleem maar hairpin, en dat staat hieronder apart. Werkt het nergens, dan loop je de lijst af.

Test altijd van buiten. Vanaf je eigen wifi test je iets anders dan wat je denkt te testen. Gebruik je telefoon zonder wifi, of een poortcontrole op een website.

De snelle controles, in deze volgorde

  1. Heb je een publiek adres? /ip address print. Goed antwoord: een publiek adres op je WAN-poort. Een privéadres of iets in 100.64.0.0/10 betekent dat je niets kunt doorsturen; zie Twee routers achter elkaar.
  2. Raakt de regel iets? /ip firewall nat print stats en klop dan van buiten aan. Goed antwoord: de teller bij je dstnat-regel loopt op. Blijft hij op nul staan, dan komt het verkeer niet eens bij de regel en zit het probleem ervoor.
  3. Klopt de interfacelijst? /interface list member print. De regel gebruikt in-interface-list=WAN. Draagt een VLAN-interface of pppoe-out1 je publieke adres en staat alleen de fysieke poort in de lijst, dan matcht er niets.
  4. Wordt de verbinding doorgelaten? /ip firewall filter print stats. De afsluitende regel heet drop all from WAN not DSTNATed en laat dstnatte verbindingen met opzet door. Loopt juist die teller op terwijl de nat-teller ook oploopt, dan is er iets met de volgorde van je eigen extra regels.
  5. Komt het aan bij het apparaat? /tool torch interface=bridge port=443 terwijl je van buiten aanklopt. Goed antwoord: je ziet pakketten richting het interne adres. Zie je die wel en komt er geen antwoord, dan ligt het aan het apparaat zelf.
  6. Wat zegt de verbindingstabel? /ip firewall connection print where dst-port=443 laat zien of de vertaling echt gebeurt.

De gewone oorzaken

  • Er zit nog een router voor. Verreweg de meest voorkomende. Het modem van de provider stuurt niets door naar jouw WAN-adres.
  • Het apparaat binnen heeft een ander adres gekregen. De regel wijst naar een vast adres, en na een herstart kreeg het apparaat een ander. Zet een vaste lease op het MAC-adres in het onderdeel LAN en DHCP.
  • De firewall van het apparaat zelf. Windows, een NAS en veel camera's laten alleen het eigen subnet toe. Het verkeer komt aan en wordt binnen weggegooid.
  • Verkeerde interne poort. Laat je de interne poort leeg, dan gaat het naar dezelfde poort als buiten. Luistert de dienst op 8443, vul dat dan in.
  • Alleen TCP opengezet terwijl de dienst UDP is. Spelservers en VoIP zijn vaak allebei. Kies dan TCP+UDP; dat schrijft twee regels.
  • De provider blokkeert de poort. Poort 25 en soms 80 en 443 zijn bij consumentenaansluitingen dicht.

Wat de configurator hiervan weet

De regel zelf wordt gegenereerd zoals het hoort: één dstnat-regel per forward, met in-interface-list=WAN, en de afsluitende filterregel laat dstnatte verbindingen door. Je hoeft er dus geen extra accept-regel bij te zetten, en dat is precies waarom die regel drop all from WAN not DSTNATed heet.

Hairpin NAT staat aan zodra er één forward in de lijst staat. Dat levert een tweede dstnat-regel op voor verkeer vanaf het LAN naar een adres van de router zelf, plus een masquerade-regel zodat het antwoord terugkomt via de router. Zet je hairpin uit, dan werkt je forward van buiten wel en van binnen niet.

Zet je een forward op 3389, 445, 23 of 21, dan waarschuwt de tool: dat stelt een kwetsbare dienst bloot aan internet, gebruik liever een VPN. Zie Controles over veiligheid.

Wat de tool niet heeft: een veld om per forward de bronadressen te beperken. Wil je dat, gebruik dan een adreslijst met een eigen filterregel, of, als de dienst op de router zelf draait, de lijst diensten op de router bereikbaar vanaf internet: die heeft wel een veld alleen vanaf. En de tool controleert niet of het interne adres werkelijk bestaat in een van je netwerken.

Als het niet aan je router ligt

  • CGNAT. Zonder eigen publiek adres valt er niets door te sturen. Een VPN vanaf binnen opgezet is dan het antwoord.
  • De poortcontrole zit ernaast. Sommige controlesites testen alleen TCP. Test met een echte client.
  • DNS wijst naar het oude adres. Heb je een naam met een dynamisch adres, dan kan de naam nog even naar het vorige IP wijzen. Zie Dynamische DNS.

Verder lezen: Een poort openzetten, Firewall en NAT en VPN voor toegang op afstand.

Meteen proberen? Open de configurator