Hallo Gemeinde,
mein erstes Posting ist gleich eine Frage, trotzdem erhoffe ich mir hier Hilfe.
Ich habe eine Firewall auf einem ältlichen (2.4.7) Linux laufen, die zwischen einem externen Interface, nennen wir es mal 192.168.0.1, und einem internen, zB. 192.168.100.1, nattet.
Darauf läuft auch ein ProFTPd, der von 192.168.100.x problemlos erreichbar ist.
Vom Provider kommt auf dem externen Interface eine Standleitung an, über die wir über die statische IP 141.x.y.z erreichbar sind. Um FTP zu ermöglichen, habe ich die iptables-Module ip_nat_ftp und ip_nat_conntrack geladen. Nun das Problem: läuft unser FTPd auf Port 21, kann ich über 141.x.y.z:21 problemlos FTPen, im Log für passives FTP erscheint auch ganz brav die externe IP (141,x,y,z,a,b). Bei jedem anderen Port meldet der FTP-Client jedoch die IP der externen Ethernetschnittstelle, also 192,168,0,1,a,b %)
Ich habe den Modulen den Parameter ports=21,521 (Beispiel) schon mal mitgegeben, hat aber nicht geändert. Obwohkl die Angabe irgendetwas zu tun scheint, denn wenn ich NUR den 521 angebe, funktioniert FTP auch auf der 21 nur noch bis zum LIST, ein CHDIR o.ä. meldet dann, dass die Datenverbindung nicht aufgebaut werden kann. Auf allen anderen Ports ausser 21 funktioniert der Login noch, aber natürlich keine Datenverbindung (na wie auch, wenn als Ziel die Ethernet-IP der externen Karte und nicht die Internet-IP übergeben wird).
Irgendwer eine Idee?
Danke
Stefan
FTP auf hohen Ports durch NAT?
Falls du einen Fehler dort vermutest, solltest du die Changelogs bis zum neuesten 2.4.x-Kernel prüfen oder einfach mal den neuesten 2.4.x Kernel ausprobieren. So aufwendig ist das ja nicht, könnte aber einiges Rätselraten sparen.
Janka
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
Inzwischen ist das Problem gelöst.
Ich habe ProFTPd mittels MasqueradeAddress die statische Internet-IP unseres Servers gegeben und nun ist es egal, ob er auf Port 21 oder irgendwo anders lauscht, im PASV-Kommando steht korrekterweise eben diese IP plus Wunschport und nicht mehr die der Ethernetkarte. Warum die IP bei Port 21 korrekt ist und ob das was mit iptables zu tun hat habe ich noch nicht genauer erforscht, da es eh nur ein Workaround ist, die Platten platzen aus allen Nähten und nächsten Monat gibt's nen neuen Server.
Ich habe ProFTPd mittels MasqueradeAddress die statische Internet-IP unseres Servers gegeben und nun ist es egal, ob er auf Port 21 oder irgendwo anders lauscht, im PASV-Kommando steht korrekterweise eben diese IP plus Wunschport und nicht mehr die der Ethernetkarte. Warum die IP bei Port 21 korrekt ist und ob das was mit iptables zu tun hat habe ich noch nicht genauer erforscht, da es eh nur ein Workaround ist, die Platten platzen aus allen Nähten und nächsten Monat gibt's nen neuen Server.