2011-05-16 04:00:37 +0000 2011-05-16 04:00:37 +0000
219
219

Wat is port forwarding en waarvoor wordt het gebruikt?

Er zijn veel vragen over ‘port forwarding’ , maar er lijkt er geen te zijn die duidelijk aangeeft wat het is en waarvoor het wordt gebruikt. Dus:

  1. Wat is port forwarding?

    1. Waarvoor wordt het gebruikt en waarom zou ik het nodig hebben?

Antwoorden (1)

324
324
324
2011-05-16 04:35:44 +0000

The Basics

Om het doorsturen van poorten echt uit te leggen, moet u eerst iets meer begrijpen over wat uw router doet. Uw internetprovider kent een IP-adres toe aan uw internetverbinding. Alle computers op het internet hebben een uniek IP-adres nodig, maar u hebt meerdere computers in huis en slechts één adres. Dus hoe werkt dit?

Als u weet wat het is en gewoon wilt weten hoe het moet : http://portforward.com/ ](http://portforward.com/) heeft een how-to met screenshots voor letterlijk honderden verschillende routers. De documentatie is daar verborgen achter een advertentiepagina voor hun automatische portconfig tool. (Klik gewoon een beetje rond en je vindt het.)

NAT - Wat is het? Waarom gebruiken we het?

Je thuisrouter heeft een functie genaamd Network Address Translation, of NAT, ingebouwd. Binnen je netwerk hebben computers adressen zoals 192.168.1.100. Alle adressen in het 192.168.1.100 bereik (of in het 10.168.1.100 bereik) zijn _ privé “_ of _ gereserveerd ”_ adressen. Deze adressen worden officieel door IANA toegewezen voor gebruik binnen particuliere netwerken. Uw router wijst automatisch een dergelijk adres toe aan elke computer die is aangesloten via DHCP . Deze adressen zijn de manier waarop computers in uw netwerk met de router en met elkaar communiceren.

Uw router heeft een aparte netwerkinterface die hem met het internet verbindt. Deze interface heeft een heel ander adres dat door uw ISP is toegewezen. Dit is het enige adres dat ik eerder heb genoemd, en uw router gebruikt het om te communiceren met andere computers op het internet. Computers binnen uw netwerk hebben non-routable private IP adressen, wat betekent dat als ze pakketten rechtstreeks naar het internet sturen de pakketten automatisch worden gedropt (pakketten met private adressen mogen niet over het internet gaan om redenen van stabiliteit). Maar je router heeft een routable adres. Network Address Translation, zoals de naam al aangeeft, vertaald tussen deze twee soorten adressen, waardoor de meerdere computers binnen je netwerk op het internet verschijnen als één computer met één adres.

De Details

Hoewel dit misschien ingewikkeld klinkt, is het eigenlijk vrij eenvoudig hoe je router het doet. Elke keer als een computer binnen je netwerk verbinding wil maken met een computer op het internet, stuurt hij het verbindingsverzoek naar de router (hij weet dat hij het naar de router moet sturen omdat de parameter Default Gateway is ingesteld op het adres van de router). De router neemt dan dat verbindingsverzoek (een “SYN-verzoek” in TCP/IP) en wijzigt het bronadres (het “reply-to” of retouradres) en wijzigt het van het privé-IP van de computer naar het openbare IP van de router, zodat het antwoord naar de router wordt gestuurd. Vervolgens wordt in een database (genaamd de NAT-tabel) genoteerd dat de verbinding is geïnitieerd, zodat deze later wordt onthouden.

Wanneer het antwoord terugkomt van de computer op afstand (een “SYN-ACK”), kijkt de router in zijn NAT-tabel en ziet dat een verbinding met die host op die poort eerder is geïnitieerd door een privécomputer op uw netwerk, verandert het bestemmingsadres in het privé-adres van de computer, en stuurt het door in uw netwerk. Op deze manier kunnen pakketten heen en weer blijven lopen tussen netwerken, waarbij de router de adressen transparant wijzigt zodat het werkt. Wanneer de verbinding wordt verbroken, verwijdert de router deze gewoon uit de NAT-tabel.

Of denk aan deze manier

Dit is misschien een beetje makkelijker te visualiseren met een metafoor - laten we zeggen dat je een expediteur bent in de VS die met Chinese klanten werkt. Ze moeten pakketten naar veel klanten in de VS sturen, maar het is om redenen van maatwerk/papierwerk makkelijker om pakketten slechts naar één plaats te sturen. Dus, een pakket komt naar u toe vanuit een van uw klanten in China (het privé-netwerk, in dit voorbeeld) met een daadwerkelijke bestemming ergens in de VS (het internet). Je verandert het adreslabel op de doos naar het (openbare) adres in de VS, en je verandert het retouradres naar je eigen openbare adres (aangezien het niet rechtstreeks naar China kan worden teruggestuurd zonder de klant te storen) en je overhandigt het aan de postdienst. Als de klant het product terugstuurt, komt het naar u toe. Je zoekt het op in je administratie en ziet van welk bedrijf in China het afkomstig is, en verandert de bestemming naar dat bedrijf (het privé-adres) en het retouradres naar je privé-adres, zodat ze via jou een vervanger kunnen terugsturen.

Dit werkt geweldig, maar er is een beetje een probleem. Wat als een klant iets naar het bedrijf moet sturen, laten we zeggen een postwissel als betaling voor iets? Of, laten we zeggen dat een computer op het internet een verbinding met de router initieert (een SYN verzoek), zeg maar met een webserver die in het netwerk zit. De brief/pakket heeft alleen het publieke adres van de router, dus de router weet eigenlijk niet waar hij het naartoe moet sturen! het kan bestemd zijn voor een van de computers op de private netwerk, of voor geen van hen. Je hebt dit probleem misschien ervaren als je naar iemands huistelefoon belt - als ze je bellen is het geen probleem, maar als je ze belt is er voor hen geen manier om te weten voor wie de oproep is, dus de verkeerde persoon zou kunnen antwoorden.

Hoewel het gemakkelijk genoeg is voor mensen om dit uit te zoeken, is het een stuk lastiger voor computers, omdat niet elke computer op je netwerk alle andere computers kent.

En tenslotte komen we bij Port Forwarding

Port Forwarding is hoe we dit probleem oplossen: het is een manier om je router te vertellen naar welke computer binnen het netwerk inkomende verbindingen moeten worden geleid. We hebben drie verschillende manieren om dit te doen:

  • Faux-DMZ : veel routers hebben een functie die DMZ heet. Dit staat voor Demilitarized Zone, wat een soort netwerkbeveiligingsconfiguratie is. De DMZ op thuisrouters wordt vaak aangeduid als faux-DMZ omdat het de kenmerken van een echte DMZ mist. Wat het wel doet is de eenvoudigste manier om een inkomende verbinding af te handelen: alle inkomende verbindingsverzoeken worden naar een gespecificeerde binnen uw netwerk gestuurd. Het is doodsimpel - u typt een IP-adres in de configuratie van uw router, en alle inkomende verbindingen gaan daarheen. Dit werkt echter niet altijd, omdat je misschien meerdere computers hebt die inkomende verbindingen moeten accepteren. Daarvoor hebben we…
  • Port forwarding : Alle netwerkverbindingsverzoeken bevatten een “poort”. De poort is slechts een nummer, en het is een deel van hoe een computer weet wat het pakket is. IANA heeft gespecificeerd dat poort 80 wordt gebruikt voor HTTP. Dit betekent dat een binnenkomend pakket dat zegt dat poort nummer 80 een verzoek moet zijn dat bedoeld is voor een webserver. Bij Port Forwarding op je router kun je een poortnummer (of eventueel een bereik of combinatie van nummers, afhankelijk van de router) en een IP-adres invoeren. Alle inkomende verbindingen met een bijbehorend poortnummer worden doorgestuurd naar de interne computer met dat adres.
  • UPnP port forwards : UPnP forwarding werkt precies hetzelfde als port forwarding, maar in plaats van dat je het instelt, stelt software op een computer binnen het netwerk de router automatisch in op het doorsturen van verkeer op een bepaalde poort naar die poort.

Een voorbeeld

Laten we eens kijken naar een gebruiksvoorbeeld. Veel multiplayer-videogames (als voorbeeld, Counter Strike) stellen je in staat om een gameserver op je computer te draaien waarmee andere mensen verbinding kunnen maken om met je te spelen. Je computer kent niet alle mensen die willen spelen, dus hij kan geen verbinding met ze maken - in plaats daarvan moeten ze vanaf het internet nieuwe verbindingsverzoeken naar je computer sturen.

Als je niets op de router had ingesteld, zou hij deze verbindingsverzoeken ontvangen, maar hij zou niet weten welke computer in het netwerk de spelserver heeft, dus hij zou ze gewoon negeren (of, meer specifiek, hij zou een pakketje terugsturen dat aangeeft dat hij geen verbinding kan maken). Gelukkig weet je het poortnummer dat op de verbindingsverzoeken voor de spelserver zal staan. Dus, op de router zet je een poort forward met het poortnummer dat de spelserver verwacht (bijvoorbeeld 27015) en het IP adres van de computer met de spelserver (bijvoorbeeld 192.168.1.105). De router weet de inkomende verbindingsverzoeken door te sturen naar 192.168.1.105 binnen het netwerk, en computers buiten zullen in staat zijn om verbinding te maken.

Een ander voorbeeld zou een lokaal netwerk zijn met twee machines, waar de tweede met het IP 192.168.1.10 een website host die gebruik maakt van Apache. Daarom moet de router inkomende poort 80 verzoeken doorsturen naar deze machine. Door gebruik te maken van port forwarding kunnen beide machines tegelijkertijd in hetzelfde netwerk draaien.

Videogames zijn misschien wel de meest voorkomende plaats waar alledaagse gebruikers met port forwarding te maken krijgen, hoewel de meeste moderne spellen UPnP gebruiken zodat je dit niet handmatig hoeft te doen (in plaats daarvan is het volledig automatisch). Je zult dit moeten doen wanneer je maar wilt om direct verbinding te kunnen maken met iets in je netwerk (in plaats van via een of andere tussenpersoon op het internet). Dit kan inhouden dat je je eigen webserver draait of dat je via Remote Desktop Protocol verbinding maakt met één van je computers.

Een van de leuke dingen van NAT is dat het een inspanningsvrije, ingebouwde beveiliging biedt. Veel mensen zwerven over het internet op zoek naar machines die kwetsbaar zijn… en dat doen ze door te proberen verbindingen te openen met verschillende poorten. Dit zijn inkomende verbindingen, dus, zoals hierboven besproken, zal de router ze laten vallen. Dit betekent dat in een NAT-configuratie alleen de router zelf kwetsbaar is voor aanvallen met inkomende verbindingen. Dit is een goede zaak, want de router is veel eenvoudiger (en dus minder kwetsbaar) dan een computer met een volwaardig besturingssysteem met veel software. Je moet dus in gedachten houden dat je door DMZing van een computer binnen je netwerk (het instellen van de DMZ-bestemming) die beveiligingslaag voor die computer verliest: hetstaat nu volledig open voor inkomende verbindingen van het internet, dus je moet het beveiligen alsof het direct verbonden is. Natuurlijk, wanneer u een poort doorstuurt, wordt de computer aan de ontvangende kant kwetsbaar op die specifieke poort. Zorg er dus voor dat u up-to-date software draait die goed geconfigureerd is.