Der Roman . . .
Kaum hatt ich auf Abschicken geklickt, da viel mir ein, das ich vor ewigen Zeiten den Roman schon mal für ein anderes Board geschrieben hatte. Und weil ich eine ordentliche Datenschlampe bin, hab ich den sogar wieder gefunden:
- FTP-Server einrichten
Wenn man die gängigen Webseiten befragt, wird man erfahren, das ein FTP-Server die Ports 20 und 21 benutzt. Und das es bei einem Router bzw. einer Firewall genüge, den Port 21 freizugeben und auf den Rechner, auf dem der FTP-Server laufen soll, zu forwarden.
Ich will nicht sagen, das das völliger Schwachsinn ist - aber es ist leider nur ein kleiner Teil der Wahrheit. Denn wie jeder weiß, der dies einmal getestet hat: funktionieren wird’s so eher selten. Früher hat es sehr oft funktioniert, aber seit auch viele „normale“ User hinter einem Router/einer Firewall liegen, ist damit Schluß.
Um das Warum verstehen, und was man dagegen tun kann, benötigt man einen etwas tiefergehenden Einblick in die Abläufe eines FTP-Transfers:
Im ersten Schritt nimmt der Client mit dem Server auf Port 21 (oder welchen Port man auch immer im FTP-Server und im Client eingestellt hat) Kontakt auf. Dazu gehören neben der Anmeldung mit Usernamen/Passwort und der Überprüfung/Bestätigung, das der Server Resume-fähig ist, auch das Auskungeln der eigentlichen Datenverbindung. Der Port 21 ist nämlich ausschließlich für Kommandos da, der eigentliche Datentransfer läuft über einen anderen Port. Und da beginnen die Schwierigkeiten:
Es gibt zwei Möglichkeiten:
Beim aktiven FTP sagt der Client dem Server: Ich möchte die Daten auf dem Port x bekommen. x ist dabei ein ausgewürfelter Port zwischen 1024 und 65535. Daraufhin fängt der Server auf seinem Port 20 an, Daten (zuerst mal das Directory) an den gewünschten Port des Clients zu senden.
Sofern nun der Client hinter einem Router, einer Firewall oder einem Proxy-Server sitzt oder auch nur eine Software-Firewall installiert hat, werden diese Daten davon abprallen, weil es von diesen Geräten/Programmen als unerwünschte/unerwartete Verbindungsaufnahme aus dem Web gewertet werden wird. Sprich: es wird keine Verbindung zustande kommen.
Beim passiven FTP dagegen kündigt der Server dem Client an, auf welchen Port er die Daten zu senden wünscht. Der Client bestätigt die Empfangsbereitschaft durch das Senden einer kurzen Nachricht auf eben diesem vorgeschriebenen Port - womit er seiner Firewall/dem Router oder Proxy gleichzeitig klar macht, das Daten auf diesem Port von dem angesprochenen Server in den kommenden Minuten erwünscht sind und zu ihm weitergeleitet werden sollen.
Normalerweise sind auch dafür die Ports 1024-65535 vorgesehen, aber jede gute FTP-Server-Software lässt hier eine selber zu definierende Port-Range zu. Und das muss man auch unbedingt eingrenzen, denn genau diese Port-Range muss der geneigte Server-Betreiber wiederum in seinem Router forwarden, sonst wird es keine Verbindung geben. Klar, das man diese so klein wie irgendmöglich halten sollte, und möglichst nicht auf bekannte Ports irgendwelcher Trojaner legt!
Ausdrücklich, weil es da jede Menge Missinformation im Internet gibt:
Passives oder Aktives FTP hat nichts mit dem Datentransfer zu tun, es beeinflusst weder die Geschwindigkeit noch die Anmeldung. Es geht ausschließlich darum, welcher der beiden Rechner den Port für die Datenübertragung festlegt!
Dem Client ist das egal, der probiert im Normalfall erst mal aus, ob es mit passivem FTP klappt und benutzt aktives nur, wenn passiv vom Server abgelehnt wird.
Im Klartext: Aktives FTP ist für den Betreiber des Servers zwar sehr einfach einzurichten (Server installieren und Port 21 auf dem Router freigeben), aber für den Client wird dann kompliziert: Er müsste die entsprechenden Ports auf seinem Router freigeben, um zu einer Verbindung zu kommen.
Mal ganz davon abgesehen, das 90% aller User Deppen sind, denen ich das Einrichten eines Port-Forwardings gar nicht zumuten möchte, bleibt die Tatsache, das der Client einen beliebigen Port zwischen 1024 und 65535 auswürfelt. Wenn man die alle forwarden würde (und das müsste man!), könnte man auf seinen Router/seine Firewall auch gleich ganz verzichten - denn damit würden ja auch die ganzen Ports, über die sich Würmer und Trojaner fortpflanzen, wieder mit seinem Rechner verbunden. Alleine aus Sicherheitsgründen (nicht des Serverbetreibers, aber seiner Besucher) verbietet sich aktives FTP damit.
Passives FTP dagegen erfordert erst mal etwas Arbeit des Server-Betreibers: Man braucht zuallererst mal eine Server-Software, die sich auf passives FTP einstellen lässt - das kann bei weitem nicht jede! Definitiv funktionieren tut’s mit BulletProofFTP in der Version 2.3.1 - ältere Versionen können es nicht (alle).
Man muss dort seine Adresse eingeben (was wegen wechselnder IPs wieder nur mit einem DynDNS- oder NoIP-Account möglich ist) und die gewünschte Port-Range vorgeben und dann diese Port-Range im Router auf den Rechner mit dem FTP-Server forwarden.
Hoffe, das hilft dir weiter.
mabuse