cwr
Goto Top

Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse. DNS-323

Hallo zusammen,

wollte gestern bei meiner DNS-323 den FTP - Server zum laufen bringen, was auf anhieb auch wunderbar funktionierte.

Damit ich auch von ausserhalb zugreifen kann habe ich dann in meinem Router ein Portforwarding für den Port 2181 auf die IP der Storage gemacht. Im FTP Server wurde natürlich der Port angeglichen auf 2181.

So nun sitz ich in der Firma und wollte auf den FTP Server zugreifen. Leider funktioniert das nicht.

Folgendes sagt mein Ftp-Client (FileZilla) wenn ich die Verbindung aufbauen will:

Verbinde mit ###.###.###.###:2181...
Status: Verbindung hergestellt, warte auf Willkommensnachricht...
Antwort: 220---------- Welcome to Pure-FTPd [TLS] ----------
Antwort: 220-You are user number 1 of 10 allowed.
Antwort: 220-Local time is now 07:37. Server port: 2181.
Antwort: 220 You will be disconnected after 2 minutes of inactivity.
Befehl: USER cwz
Antwort: 331 User cwz OK. Password required
Befehl: PASS **
Antwort: 230 OK. Current restricted directory is /
Befehl: SYST
Antwort: 215 UNIX Type: L8
Befehl: FEAT
Antwort: 211-Extensions supported:
Antwort: EPRT
Antwort: IDLE
Antwort: MDTM
Antwort: SIZE
Antwort: REST STREAM
Antwort: MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Antwort: MLSD
Antwort: ESTP
Antwort: PASV
Antwort: EPSV
Antwort: SPSV
Antwort: ESTA
Antwort: AUTH TLS
Antwort: PBSZ
Antwort: PROT
Antwort: 211 End.
Status: Verbunden
Status: Empfange Verzeichnisinhalt...
Befehl: PWD
Antwort: 257 "/" is your current location
Befehl: TYPE I
Antwort: 200 TYPE is now 8-bit binary
Befehl: PASV
Antwort: 227 Entering Passive Mode (###,###,#,##,123,25)
Status: Vom Server gesendete Adresse für den Passiv-Modus ist nicht routingfähig. Benutze stattdessen die Serveradresse.
Befehl: MLSD
Fehler: Zeitüberschreitung der Verbindung
Fehler: Verzeichnisinhalt konnte nicht empfangen werden

Hat da vielleicht wer einen Tip für mich wie ich dieses Problem beheben kann?

Im voraus besten Dank für eure Mithilfe.

Grüsse,
Chris

Content-Key: 167301

Url: https://administrator.de/contentid/167301

Printed on: April 23, 2024 at 08:04 o'clock

Member: aqui
aqui Jun 01, 2011 at 10:26:51 (UTC)
Goto Top
Das ist klar das das nicht funktionieren kann, denn FTP besteht immer aus 2 TCP Ports nämlich 20 und 21. (Daten und Command) Wenn du nun einseitig einen Port änderst vermurkst du logischerweise die gesamte Kommunikation im FTP. Vergiss das also und belasse die Ports auf dem Default.
Dan forwardest du im Router beide Ports TCP 20 und TCP 21 auf die lokale IP des NAS die natürlich damit auch statisch und außerhalb des DHCP Bereichs des Routers liegen sollte.
Tunlichst richtet man sich dann auf dem Router auch eine DynDNS Adresse ein sofern man wechselnte IP Adressen hat im DSL:
http://www.nwlab.net/tutorials/dsl-server/
Wenn du nun den Browser öffnest und mit ftp://<mein-nas.homeip.net> (wobei <mein-nas.homeip.net> deine gewählte DynDNS IP ist alternativ natürlich die aktuelle IP am DSL Port des Router...geht auch!) bist du et voila....auf deinem FTP Server und kannst alle Dateien runterladen.
Alternativ dann natürlich auch mit einem Client wie dem FTP Klassiker Filezilla:
http://www.filezilla.de/
Dann gibst du eben als Server Adresse entweder mein-nas.homeip.net ein oder die aktuelle IP Adresse deines DSL Ports am Router (bekommt man von intern mit dem Besuch von http://www.wieistmeineip.de raus )
DynDNS ist natürlich erheblich komfortabler bei den üblichen alle 24 Std. wechselnden IPs.
Natürlich müssen die Clients den passive Mode supporten, sonst kommst du nicht revers über deinen NAT Firewall im Router. Was das ist steht hier:
http://www.alenfelder.com/Informatik/pass-akt-ftp.html
Damit funktioniert das kinderleicht im Handumdrehen. Dieses Banal Szenario ist ein täglicher "Klassiker" hier....
Member: cwr
cwr Jun 03, 2011 at 07:34:54 (UTC)
Goto Top
Hallo und Danke für deine Antwort.

Hab jetzt alles so gemacht wie du geschrieben hast.

Wenn ich mich jetzt mit dem FTP-Server verbinden will (über cmd) schaut es so aus:

C:\Users\user>ftp host.dyndns.info
Verbindung mit host.dyndns.info wurde hergestellt.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 08:25. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Benutzer (host.dyndns.infoface-sadnone)): chris
331 User cwz OK. Password required
Kennwort:
230 OK. Current restricted directory is /
ftp> dir
200 PORT command successful
425 Could not open data connection to port 55459: Connection timed out
ftp>

Nach dem ich die "dir" eingegeben habe tut sich 2 Minuten nichts und dann kommt die Meldung "425 Could not open data connection to port 55459: Connection timed out. Interessanterweise wird immer eine andere Portnummer bei dieser Meldung angegeben. Sprich "425 Could not open data connection to port 55605: Connection timed out".

Hat da vielleicht noch jemand einen Tip für mich?

Im voraus besten Dank für eure Hilfe!

Grüsse,
Chris
Member: aqui
aqui Jun 03, 2011 at 09:24:49 (UTC)
Goto Top
Irgendwas stimmt da nicht, denn der Client arbeitet scheinbar nicht im Passive FTP Modus (Das Kommando "PASV" fehlt beim Verbindungsaufbau !
Ohne Passive Mode kommst du nicht revers über deinen NAT Firewall !!
http://slacksite.com/other/ftp.html
Irgendwas hast du also noch vergessen in deinem Setup !
So wie es oben aussieht benutzt du auch das CLI FTP Tool unter Winblows was (wie oben mehrfach drauf hingewiesen !) KEINEN Passive Modus supportet !
Scheinbar hast du dir den Thread mal wieder nicht richtig durchgelesen oder ignorierst aus Unwissen oder was auch immer konsequent den Passive FTP Modus !
Lad dir hier also zwingend den Filezilla Client:
http://www.filezilla.de/
runter, verwende den oder nimm einen normalen Web Browser wie den IE oder Firefox und gebe dort ein ftp://host.dyndns.info. Die Browser nutzen immer den FTP Passive Mode ebenso wie Filezilla.
Damit klappt es dann auch im Handumdrehen.
Member: aqui
aqui Jun 03, 2011 at 19:02:42 (UTC)
Goto Top
OK, externer Test auf den FTP Server funktioniert sowohl mit Firefox als auch mit Filezilla völlig Problemlos ! Screenshot Dateien fehlerfrei auf den FTP hochgeladen.
Bedenke das du den Zugriff auf die DynDNS IP niemals selber aus deinem internen LAN testen kannst !!
Dafür benötigst du eine sog. "Hairpin NAT" Funktion die so gut wie kein billiger Consumer Router supportet. Deine Router Gurke (was immer das auch ist..?) auch nicht !
http://wiki.mikrotik.com/wiki/Hairpin_NAT
Also alles gut und alles funktioniert wie es soll !
Wo ist dein Problem ??
Member: Zentralplasma
Zentralplasma Jun 01, 2012 at 10:26:20 (UTC)
Goto Top
Hier möchte ich mal einsteigen da ich ein ähnliches Problem habe...

Möchte einen zweiten FTP Server (Dlink NAS) an meiner FritzBox 7170 betreiben. Client ist FileZilla.
Genau wie beim Threadstarter habe ich in der FB das Portforwarding dementsprechend eingestellt. Port 21 für den 1 FTP Server - Zugriff von außen über DynDns funktioniert einwandfrei - für den zweiten FTP Server andern Port (1800) genommen - dieselbe Fehler Meldung wie beim Threadstarter bei FileZilla. Es wird die lokale Adresse des zweiten FTP an FileZilla gesendet (sehe ich im Protokoll) und dann gehts logischerweise nicht weiter - der kann darüber ja nicht zurück... So weit habe ich das (glaub ich) verstanden.

Ich könnte eine Einstellung in meinem 2 FTP (NAS) vornehmen eine externe IP im Passiv Modus zu übermitteln - aber die wäre ja dynamisch und das dyndns Konto kann ich da nicht eintragen...

Gibt es denn eine Möglichkeit das jetzt irgendwie umzusetzen - löse es momentan so, das ich mich per Dyndns auf meine FritzBox (Webinterface) einlogge, dort die Portfreigabe 21 auf die Adresse des 2 FTP umstelle und dann mich auf dem zweiten FTP Server (Webinterface) einlogge und dort auch dementsprechend den Port auf 21 ändere - und das gleiche dementsprechend wieder zurück wenn ich wieder den ersten FTP haben will... das kann ja auf Dauer keine Lösung sein... Wäre für Hilfe dankbar...
Member: aqui
aqui Jun 01, 2012 updated at 14:24:03 (UTC)
Goto Top
1800 ist keine sehr gute Idee denn das liegt in einem Bereich exclusiver weltweit registrierter Ports der IANA:
http://meineipadresse.de/html/ip-ports.php
in der die 1800 fest vergeben ist.
Generell soll man private Ports in den freien Pereich zwischen 49152–65535 legen um hier konform zu bleiben gerade wenn man über das öffentliche Internet mit solchen Ports kommuniziert !
Bedenke das also und verwende besser 52121 oder sowas.
Desweiteren hast du nicht bedacht das FTP immer aus zwei ! TCP Ports besteht nämlich dem Kommandoport und dem Datenport 20 und 21. Du kannst also nicht einfach mal eben einen davon "verbiegen" wenn du es nicht auf Client und Server synchron machst und dann auch für beide Ports.
FTP lässt das gar nicht zu also kannst du das gleich vergessen....
Deine einzige Chance ist passive FTP zu verwenden sofern dein Server das unterstützt. Auch der Client muss zwingend passive Mode machen.
Das beste wenn du unbedingt FTP nutzen willst ist ein kleines IP Adresskontingent (Subnet) vom Provider anfragen und mit statischen 1:1 NAT arbeiten. Damit löst du das Problem dann in 3 Minuten !
Besser ist es immer mit SCP zu arbeiten. Das nutzt fest Port TCP 22 und mit einem Client wie WinSCP ist das per Mausklick einzurichten.
SCP hat zudem noch den Vorteil das die Daten verschlüsselt werden, denn bei FTP kann jeder im Internet deinen Datenstrom und damit alle deine Inhalte unverschlüsselt mitlesen.
Eigentlich ein absolutes NoGo heutzutage.
Die andere Frage die sich stellt ist warum du nicht sinnvollerweise einen VPN Zugang auf deiner Fritz Gurke einrichtest und per VPN auf dein Netzwerk zugreifst.
http://www.avm.de/de/Service/Service-Portale/Service-Portal/index.php?p ...
Damit kannst du dir dann den ganzen Port Forwarding Quatch und Security Diskussion sparen und arbeitest von remote genau so als wenn du lokal im Netz bei dir bist.
Das ist ja genau der tiefere Sinn eines VPN !
Member: Zentralplasma
Zentralplasma Jun 02, 2012 at 07:37:29 (UTC)
Goto Top
Hallo,

erst einmal vielen Dank für die Antwort. Das mit den Ports werde ich beherzigen. Den zweiten FTP Server brauche ich nicht unbedingt - irgendwann gehts dann nur noch um "ich will das jetzt hinbekommen" - der Sache wegen... Das mit VPN werde ich einrichten - habe ich von einer Seite schon am laufen um auf unseren Firmen Server zu kommen. Dort natürlich mit besser Hardware etc. Auf privater Seite nutze ich aus Bequemlichkeit logmein - was ja umstritten ist. Wobei, so wichtige Daten bei mir privat nicht fließen... Mein FTP Server kann übrigens SSL/TLS wobei natürlich VPN sicher besser ist.

Das mit den beiden Ports bei FTP war mir eigentlich klar - allerdings verstehe ich jetzt nicht wie die FritzBox das regelt - dort gebe ich als Festeinstellung FTP das Portforwarding für Port 21 ein. Nimmt die FB da im Hintergrund automatisch auch den 20 Port - der taucht dann namentlich nirgends auf.
Das hat mich immer schon verwirrt.

Das mit den IP Adresskontigent ist wirklich am besten - aber für privat jetzt ein bisschen overload - so wichtig ist die ganze Sache nicht... SCP werde ich mir mal aber auf jeden Fall mal anschauen - danke für den Tip !

Gruß ZP
Member: aqui
aqui Jun 02, 2012 updated at 10:33:54 (UTC)
Goto Top
Die Fritzbox regelt das nicht, sie kann ja nicht einfach die Mechanismen eines weltweit standardtisierten Protokolls aushebeln...logisch !
Es wäre natürlich möglich das die Fritzbox automatisch auch den FTP Port 20 anpasst aber vermutlich tut sie es dennoch nicht wirklich.
Die FB geht davon aus das du nur Passive FTP benutzt. Normales FTP ist über eine NAT Firewall wie sie jeder DSL Router hat nicht zu übertragen.
Warum das so ist kannst du hier nachlesen:
http://www.alenfelder.com/Informatik/pass-akt-ftp.html
bzw.
http://www.alenfelder.com/Informatik/pass-akt-ftp.html
Member: Zentralplasma
Zentralplasma Jun 02, 2012 updated at 11:16:09 (UTC)
Goto Top
Bezüglich passive Mode und nur einen einzigen Port (21) bei der FB freigeben hier mal ein interessanter Link:

http://www.ip-phone-forum.de/showthread.php?t=154721


Ansonsten nochmal Danke für die Links - gehen ja in die Richtung wie mein Link - so langsam kriege ich das mit aktiv und passiv Modus auf die Reihe face-wink
Member: sk
sk Jun 02, 2012 updated at 17:32:57 (UTC)
Goto Top
Zitat von @aqui:
Die FB geht davon aus das du nur Passive FTP benutzt. Normales FTP ist über eine NAT Firewall wie sie jeder DSL Router hat
nicht zu übertragen.

Doch, weil heutzutage selbst jeder 20-EUR-Router zumindest hinsichtlich FTP eine partielle Layer7-Intelligenz besitzt. Nennt sich meist FTP-Helper oder FTP-ALG (Application Layer Gateway). Ein solcher Helper überwacht die Kontroll-Verbindung auf die relevanten FTP-Kommandos und erzeugt zur Laufzeit die benötigten "Portforwardings" und Firewallregeln. Erforderlichenfalls ersetzt er u.U. sogar "on the fly" die in den FTP-Kommandos verwendeten IP-Adressen. Wobei sich je nach Implementierung die Intelligenz des Helpers deutlich unterscheiden kann (bei Consumergeräten wird z.b. oftmals nur das Client-Szenario unterstützt). Auch lassen sich diese Helper bei Consumergeräten oftmals nicht (de-)aktivieren, geschweige denn im Detail konfigurieren.
Aus Performencegründen überwacht ein FTP-Helper in der Regel nur TCP-Verbindungen mit Destination-Port 21. Und genau dies ist die Ursache für die "Probleme" dieses Threads! Sobald die FTP-Kontroll-Verbindung auf einem anderen Port betrieben wird, greift der Helper nicht mehr ein. Auf jedem etwas besseren Gerät sollte sich der Helper jedoch zumindest dahingehend konfigurieren lassen, welche Verbindungen/Ports er als FTP-Kontroll-Verbindung interpretieren und überwachen soll. Im hiesigen Beispiel würde man also der Box einfach mitteilen, dass der Helper auch Verbindungen nach TCP/1800 überwachen soll und schon funktioniert alles wieder wie von Geisterhand! Ob die FB dementsprechend konfigurierbar ist, weiss ich allerdings nicht.

Gruß
Steffen
Member: aqui
aqui Jun 02, 2012 updated at 20:14:46 (UTC)
Goto Top
Mmmmhh, ob man da nicht von den vielen Blöd- und Baumarkt Routern nicht etwas zuviel verlangt ?! In der Tat klappt das bei einigen aber längs nicht bei allen.
Der Standard legt fest das der Client mit einem Random Port N größer 1023 als Absenderport den Server Kommando Port 21 connected.
Daraufhin "hört" der Client auf dem Port N+1, das ist im Standard so festgelegt.
Der Server baut dann von sich aus vom Source Port 20 eine Connection auf dem am Client wartenden Zielport N+1 auf.
Da scheitern dann simple NAT Firewalls, denn in der NAT Translation Table gibt es keine aktive Session für diesen Port bzw. eigehenden Connection, folglich verwirft die NAT Firewall dieses Paket und die FTP Verbindung ist unterbrochen....das klassische Verhalten.
Der Trigger ist also bei ausgehenden Client TCP 21 SYN Paketen die dann im Router den Source Port lesen und die NAT Session Tabelle um den Port N+1 erweitern. So kann Active FTP dann wieder passieren.
Anspruchsvoll, und sowas haben eher höherwertige Router im Consumerbereich. Professionelle Systeme machen sowas wegen der damit verbundenen Sicherheitsrisiken niemals, da muss man es manuell aktivieren.
Die FB kann es de facto nicht.
Besser ist so oder so man setzt auf Passive FTP, da gibt es diese Komplikationen gar nicht erst, denn dort teilt der Server dem Client mit der initiierenden Kommandos Session und dem PASV Kommando gleich den Server Zielport mit den der Client dann aufbaut. Der Sessionaufbau ist hier also komplett vom Client initiiert und so stimmt die NAT Sessiontabelle wieder im Passive Mode.
Das kann dann sogar auch die FB !