[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: vsftp und doppeltes NAT



Hallo Heiko,

From: "Heiko Schlittermann"
Daniel Bauer <mlist@dsb-gmbh.de> (Di 29 Jan 2013 18:37:06 CET):
ich versuche seit Tagen verzweifelt meinen vsftp verfügbar zu machen.

Als erstes kommt ein Router der als DMZ Host meine Firewall
eingetragen hat. Hinter dieser Firewall steht auch der Server. Auf
der Firewall wird folgendes akzeptiert:
-p tcp --sport 1024:65535 --dport 21
-p tcp --sport 1024:65535 --dport 20
-p tcp --sport 20 --dport 1024:65535
Andere Dienste wie z.B. SSH funktionieren einwandfrei.

Und was wird nicht akzeptiert? Es wäre hilfreich, das komplette Ruleset
zu sehen, am einfachsten die Ausgabe von "iptables-save"

kann ich bei Bedarf senden, aber ich konnte das Problem weiter eingrenzen.


Wenn ich den Server direkt hinter den Router klemme, funktioniert
alles bestens, sobald er hinter der Firewall ist kommt kein FTP
Connect mehr zustande.

Laut $Suchmaschine ist doppeltes NAT möglich, kann mir jemand bitte
einen Schups in die richtige Richtung geben.

Doppeltes NAT sehe ich in den von Dir zitierten Regeln gar nicht. Nicht
mal einfaches NAT.

ich hatte extra nur die Regeln fürs FTP gezeigt, eigentlich sollte mit Connection Tracking ja auch nur der Port 21 reichen, dann allerdings nur für passives FTP.

Der Aufbau ist folgender:

10.20.1.180 (FTP Server)
<->
10.20.0.1 (Firewall)
192.168.1.11
<->
192.168.1.1 (Fritzbox)
ext. IP
<->
ext. IP
10.30.0.1 (Firewall)
<->
10.30.1.x (FTP Client)

Sobald ich nun den FTP Server auf die 192.168.1.12, oder den FTP Client auf die externe IP lege funktioniert das Ganze. Aber fast jeder Client ist hinter einem Router und nicht direkt im Internet.


FTP über ganze NAT-Kaskaden kann funktionieren, wenn dieses NAT-Router
alles richtig machen. Dazu gehört, daß sie in der Lage sind, das
FTP-Protokoll zu verstehen, nicht nur die TCP/IP-Header. Paketfilter
können von Natur nur die Header-Information auswerten, nicht die
Nutzlast. FTP transportiert aber Information zum Verbindungsaufbau in
der Nutzlast.

Für iptables gibt es da Unterstützung durch nf_conntrack_ftp (filter)
und nf_nat_ftp (nat). Das sind Kernel-Module, die geladen werden müssen. (Je nach Kernelversion heißen die - glaube ich - manchmal etwas anders,
aber nat_ftp oder conntrack_ftp haben die immer im Namen.)

diese Module sind geladen.


Sobald Verschlüsslung ins Spiel kommt (FTP mit TLS oder SSL) wird es
komplexer. Dann würde ich sftp (SSH) bevorzugen.

das würde ich generell auch, aber die meisten wollen einen "einfachen" FTP Zugang.


Die komplette Lösung überlasse ich Deiner Kreativität, die dsb-gmbh
(Dein Absender) bietet ja IT-Solutions an ?

auch nach über 24 Jahren im Geschäft gibt es keinen Tag an dem ich nicht lernen muß.

Danke + Gruß
Daniel
Reply to: