Port forwardingPort forwarding of port mapping is het doorsturen van een TCP- of UDP-pakket in een NAT-gateway om een intern netwerk aan een extern netwerk (bijvoorbeeld internet) te koppelen door middel van poortnummers. Deze techniek wordt gebruikt om communicatie mogelijk te maken tussen externe hosts en andere diensten binnen een LAN. DoelPort forwarding maakt het mogelijk externe computers (bijvoorbeeld openbare machines op het internet) te verbinden met een bepaalde computer binnen een privénetwerk (LAN). Bijvoorbeeld:
In de Linuxkernel is dit mogelijk door de iptables- of netfilter-modules aan te passen. BSD- en Mac OS X-besturingssystemen gebruiken een soortgelijke tool genaamd Ipfirewall (ipfw). VoorwaardenEnkele algemene voorwaarden voor port forwarding zijn:
Port forwarding kan ook worden gebruikt binnen één enkele computer. Port forwarding is nodig voor een stand-alone-computer als een van de volgende voorwaarden van toepassing zijn:
WerkingEen standaardthuisnetwerk heeft toegang tot internet via een DSL of kabelmodem. De modem kan worden aangesloten op een router, of in de meeste gevallen zit de modem al in de router. De router wordt vervolgens aangesloten op het lokale netwerk door middel van een ethernetkabel of Wi-Fi. Alleen de router heeft directe toegang tot het internet. Het IP-adres is dus gekoppeld aan de router en niet aan de achterliggende computers. De computers in het lokale netwerk zijn onzichtbaar voor het internet als ze beschikken over een lokaal IP-adres. Dit gaat meestal via DHCP. Port forwarding is nodig in de router om computers met een intern IP-adres te verbinden met het externe IP-adres van de router. Unix-poortnummersPort forwarding wordt gewoonlijk gedaan op Unixcomputers waar poortnummers genummerd onder 1024 alleen geopend kunnen worden door software die draait als rootgebruiker. Programma's starten als root kan een beveiligingsprobleem opleveren. Een veelvoorkomende oplossing is om een server te laten luisteren (listen) naar een hoger poortnummer en die via de router om te leiden naar een lager poortnummer. Als men een webserver opzet, gebeurt dat standaard op poort 80. Wanneer de webserver wordt gestart als root kan dit een probleem opleveren voor de veiligheid. Daarom laat men de webserver luisteren op poort 8080. Vervolgens wordt de router zo ingesteld dat al het verkeer dat een request doet op poort 80 omgeleid wordt naar poort 8080. Dit noemt men port triggering en is mogelijk op TCP, UDP of beide. Omgekeerde port forwardingReverseport forwarding, of omgekeerde port tunneling, wordt gedaan door twee componenten die aan elkaar gekoppeld worden met als doel een port forwarding. Dit wordt meestal gerealiseerd door software. Component 1 is de server die luistert op een vooraf ingestelde poort. Component 2 is de client die een verbinding maakt met component 1 (de server). Als de server de client heeft goedgekeurd, wordt er een sessie opgezet. Nu is het mogelijk om al het verkeer dat een request doet op component 1 (de server) om te leiden naar een andere poort, namelijk component 2 (de client). Op deze manier is het mogelijk om een soort server op te zetten zonder de router te configureren. Men kan stellen dat de server en de client zijn omgewisseld. Deze methode wordt vaak gebruikt bij remote-desktopprogramma's en bij SSH. Zie ook
|