Mac nix basteln:FTPServer

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

secure FTP-Server (vsftpd) unter Linux(Debian und Derivate) aufsetzen

Shell-Kommandos:

sudo apt-get install vsftpd      # Installation
sudo /etc/init.d/vsftpd start    # Server starten
sudo ifconfig      # eigene IP ermitteln, um damit Server zu testen
ftp 'IP-Adresse'  # testet und legt Standardkonfig.Datei an
'Username'
'PW'
bye   # fertig
sudo vim /etc/vsftpd.conf  # Konfigurationsdatei anpassen 


Auf Mac OS X

OS X 10.6 & .7 kommen mit einem tnFTPd vorinstalliert. Unter 10.6 ist es denkbar einfach ihn einzuschalten - den Haken dafür findet man unter Systemeinstellungen / Freigaben / Dateifreigabe / Optionen / Dateien und Ordner über FTP freigeben. Unter 10.7 wurde die Aktivierung über die GUI entfernt, aber er lässt sich über die Konsole starten. So aktiviert, können die auf dem Rechner eingerichteten Benutzer auf ihr jeweiliges Heimverzeichnis zugreifen. Wenn es das ist, was man vorhatte, ist man fertig.

Allerdings dürfte das sellten sein, was man vorhat. In der Regel möchte man wahrscheinlich eher nur ganz bestimmte Ordner für bestimmte Nutzer - die vielleicht eben noch nicht einmal lokale Nutzer auf dem Rechner sind oder sein sollen - freigeben. Und vielleicht möchte man auch noch ein Tässchen Krypto, á la FTPS. Spezifische Freigaben, virtuelle Benutzer und Krypto - das sind ja gleich drei Wünsche auf einmal. Um das mit vertretbaren Aufwand zu konfigurieren empfiehlt es sich zu einer GUI-Lösung zu greifen: pureFTPd-manager

Die dort zu findende Dokumentation ist gut bebildert und selbsterklärend. Deshalb soll hier nur auf die Fallstricke hingewiesen werden...

Port-Weiterleitung

Die meisten Anleitungen weisen darauf hin, dass TCP Port 21 durch den router auf den Rechner mit dem FTP-server weitergeleitet werden muss. Dies ist richtig, aber nicht vollständig. Über Port 21 laufen nur die Befehle (control port). Die Daten hingegen laufen über den control port -1, also auf Port 20. FTP kann im aktiven und im passiven Modus betrieben werden. Aktiv bedeutet, dass der server über Port 21 kontaktiert wird und einen "hohen" (>1023) Port für den Datentransfer aufmacht auf dem er aktiv versucht den client zu kontaktieren. Sitzt der client hinter einer firewall (oder router) kann es zu Problemen kommen. Deshalb gibt es noch den passiven Modus, in dem der Server den client nur sagt: hier auf folgenden hohen Ports kannst Du mich erreichen und Daten transferieren. (Warum es diese hohen Ports zum Datentransfer gibt, obwohl der Datenport doch Port 20 ist, konnte ich noch nicht herausfinden). Wenn der server hinter einem router sitzt, müssen also diese hohen ports für den passiv Modus fest gelegt werden damit man sie auch auf dem router weiterleiten kann. Wie man das im pureFTPd-manager einstellt steht hier: firewall configuration

Zusammenfassend lässt sich sagen, hat man im server die hohen Datenports 42000-42010 eingestellt muss man folgende Ports auf dem router per NAT durchleiten:
20-21,42000-42010

TLS-Verschlüsselung

Wie man pureFTPd einstellt TLS zu unterstützen wird hier erläutert. Beim verbinden gibt es den expliziten und den impliziten Modus. Der Unterschied ist, dass bei explizit erst mal im Klartext Hallo gesagt wird und die verschlüsselte Verbindung (noch vor dem Authentifizieren) über den Befehl AUTH "explizit" angefordert wird. Eine implizite Verbindung geht von vornherein davon aus, dass der server SSL oder TLS spricht und wenn nicht passiert auch nix.

Es ist also sowieso nur der Befehlskanal (also auch die Authentifizierung) verschlüsselt. Der eigentliche Datentransfer wird nur dann verschlüsselt, wenn auch zusätzlich noch der Befehl PROT gesendet wird. Leider ist das völlig client-seitig und der server hat gar keinen Einfluss darauf. Um Verschlüsselung zu betreiben, muss man zusätzlich auch noch die folgenden Ports frei schalten:

989-990

UDP

Obwohl alle Anleitungen nur von TCP sprechen funktioniert es bei mir nicht wenn ich nicht auch die genannten Ports auf UDP weiter leite.

Diese Seite wurde zuletzt am 11. Februar 2012 um 20:53 Uhr geändert. Diese Seite wurde bisher 3.107 mal abgerufen.