ZyXEL routers, Port redirection en FTP.


referentie Z111B


Bij Port Redirection kan een router een inkomend pakketje verwijzen naar een bepaald IP adres terwijl tegelijkertijd ook de poort wordt veranderd. De meeste ZyXEL routers ondersteunen geen Port Redirection. Verzoeken gericht aan het publieke IP-adres en een port kunnen alleen doorgestuurd worden naar een IP-adres, zonder dat de poort kan worden gewijzigd. Deze routers ondersteunen ook geen HTTP URL redirection. Verzoeken gericht aan verschillende URL's op het publieke IP-adres worden doorgestuurd naar hetzelfde IP-adres, zonder dat de poort kan worden gewijzigd.

Uitzonderingen zijn de ZyWALL 5, 35 en 70, waarbij Port Redirection kan worden ingesteld met behulp van de webinterface (onder NAT). Voor een actueel overzicht van de mogelijkheden van de verschillende ZyXEL routers zie het Produktoverzicht van ZyXEL routers.
Voor het instellen van een Port Redirectionregel zie:Port Redirection op een ZyWALL 35

Nu kunnen veel soorten servers (en cliënts) worden aangepast zodat port redirection van de router meestal niet noodzakelijk is. Een aantal veelvoorkomende situaties worden in dit document behandeld:



FTP

Bij FTP naar of van een computer welke achter een ZyXEL router zit doen zich de volgende problemen voor: Ter illustratie: wat gebeurt er tijdens een FTP sessie?
Er zijn twee vormen van FTP: Active en Passive. Het verschil tussen active en passive FTP is dat bij een active ftp sessie de server de overdracht initieert, bij een passive FPT sessie laat hij dit over aan de cliënt. De sessies werken als volgt:

Active FTP


De cliënt stuurt een verzoek tot het openen van een FTP-sessie naar de server, gericht aan poort 21. Afzender is een willekeurige poort tussen de 1024 en de 65535, poort X. De firewall van de server laat poort 21 door, zoals aangegeven. De ZyXEL herkent dat dit een FTP-sessie is, en weet daardoor zeker dat hij straks ook via poort 20 verkeer door moet laten. De cliënt geeft de server aan op welke poort hij de gegevens wil hebben: poort Y Ook poort Y ligt tussen de 1024 en 65355.



De server geeft nu naar poort X een signaal dat de data eraan komt.



De server zendt nu de gevraagde gegevens vanaf de eigen poort 20 naar poort Y. Deze poort moet openstaan in de firewall van de cliënt.



Als laatste zendt de cliënt vanaf poort Y een bevestiging van ontvangst terug naar de server.

Deze methode kan tot problemen leiden aan de kant van de cliënt, als van te voren poort en poort in de firewall niet open zijn gezet. Je kunt natuurlijk de firewall open zetten voor alle mogelijke waardes van Y, maar waarvoor heb je dan nog een firewall? dan kun je net zo goed de firewall weggooien.
De cliënt dient dus van te voren de waarde van X en Y te weten en goed in te stellen in de firewall.


Het alternatief: passieve FTP

In dit proces worden drie niet-standaard poorten gebruikt welke in het bereik van 1024 tot 65355 liggen: X, Y en Z.
Daarbij is Y = X+1



De cliënt opent de FTP sessie, maar geeft aan dat dit een PASSIEVE sessie is.
Dit is weer gericht op poort 21.
Tegelijkertijd geeft de cliënt aan dat hij het signaal om met de overdracht te beginnen zal richten tot poort Y.


De server geeft aan welke poort hij gaat gebruiken om de gegevens vanaf te zenden. Dit is poort Z
.


De cliënt geeft nu aan wanneer er kan worden gezonden. Dit bericht wordt verzonden vanaf poort Y naar poort Z.
Dit is de reden waarom passive FTP met een ZyXEL router niet zal werken: de router herkent dit tweede contact van de kant van de cliënt niet als FTP-contact, omdat het niet gericht is naar poort 21 !


Als laatste zendt de server vanaf poort de gevraagde gegevens naar poort .

Ook hier bestaat het bijkomende probleem dat de waarden van X, Y en Z van te voren op de juiste plaats in de firewalls open moeten worden gezet. Anders blokkeert de firewall het verkeer. .

Samenvattend: bij een FTP sessie naar een server achter een ZyXEL firewall:

Microsoft IIS webserver

Deze kan worden ingesteld om (tegelijkertijd) ook naar andere poorten te luisteren. De procedure wordt beschreven achter de link:
Microsoft Knowledge Base Article - 149605 How to Change the TCP Port for IIS Services
Zoek naar "Advanced for multiple Port settings".



Apache webserver

Deze kan ingesteld worden om (tegelijkertijd) ook naar andere poorten te luisteren. Dit wordt beschreven onder de link:
http://httpd.apache.org/docs-2.1/en/vhosts/examples.html
en wel onder de volgende kopjes:

Webserver algemeen

Het bovenstaande vereist uiteraard nog wel dat "de" server die op poort 80 luistert verkeer voor de domeinen op de andere server(s) doorstuurt naar de(zelfde) URL met juiste poort (er achter).

De reden waarom je de andere poort er bij wil hebben is dat daardoor de server lokaal ook op de originele poort bereikbaar blijft.

Als alternatief kan "de" server als proxy worden ingesteld en de pagina's van de juiste server afhalen en doorgeven. Maar dat is waarschijnlijk een grotere inspanning.



Microsoft Terminal Server

Het aanpassen van de RDP-poort staat beschreven op de link:
Microsoft Knowledge Base Article - 187623 How to Change Terminal Server's Listening Port.
Helaas kan in dit geval de poort alleen gewijzigd worden en niet een extra poort worden toegevoegd.



Voorbeeld van het instellen op een ZyWALL 35

De onderstaande afbeelding is afkomstig van een ZyWALL 35, een van de routers waarbij het wél mogelijk is Port Redirection in te stellen.
Dit kan alleen worden ingevoerd met behulp van de Web Configurator

De juiste instellignen kunnen worden ingevoerd achter de optie NAT:



Zie de bijpassende documentatie en Help optie voor een overzicht van wat waar dien te worden ingevuld. Bedenk wel het volgende:
De firewall doet wat rules betreft niets met het originele portnummer (WAN-zijde) maar gebruikt alleen het ge-re-directe portnummer (LAN-zijde).


Relevante links:

FTP testen van buiten af.
Lijst met veel gebruikte poorten
De veiligheid van routers
Web Configurator