Linux Server - FTP-Server


Einrichten von FTP-Servern für anonymes FTP

Die zweite Methode für FTP ist das sogenannte anonyme FTP. Hier liegt die Sache etwas anders, als beim perönlichen FTP, weil ein anonymer User keine Rechte auf irgendwelche Verzeichnisse bekommen sollte.

Um sich anonym einzuloggen wird beim Login der Username "ftp" oder "anonymous" eingegeben. Der Server frägt jetzt nach einem Passwort, aber hier kann alles eingegeben werden. Traditionell verlangen die Server die E-Mail_Adresse als Passwort, können aber natürlich deren Echtheit nicht überprüfen. Web-Browser wie Netscape oder MSIE loggen sich grundsätzlich anonym bei FTP-Servern ein, es sei denn, in der URL wäre ein Username und Passwort angegeben worden.

Ein anonymer Eingang wird dadurch realisiert, dass dem Unix-System der User ftp angefügt wird. Sein Heimatverzeichnis ist ein Verzeichnis, irgendwo im Verzeichnisbaum, in dem er eine sogenannte chroot-Umgebung vorfindet.

Eine chroot-Umgebung bedeutet, dass der FTP-User dieses Verzeichnis als Wurzel des Systems zu sehen bekommt. Er kommt nicht weiter, als zu eben dieser Wurzel, d.h., dass er nur einen Bruchteil der realen Festplatten zu sehen bekommt.

Lautet der Eintrag in /etc/passwd z.B.

  ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash
so wechselt dieser User nach dem erfolgreichen Login mit Username ftp oder anonymous in das Verzeichnis /usr/local/ftp und dieses Verzeichnis wird zur Wurzel des Systems. Damit das aber funktioniert müssen auf diesem Verzeichnis einige Unterverzeichnisse stehen, die es auf der echten Wurzel auch gibt, damit das Unix-System überhaupt funktioniert.

Das Verzeichnis bin
Dieses Verzeichnis muß root gehören und darf von niemandem beschreibbar sein. Es muß mindestens das Programm ls darin liegen, damit der FTP-User den Inhalt von Verzeichnissen ansehen kann. Das ls-Programm sollte das Zugriffsrecht 111 besitzen. Vorsicht. Das ls-Kommando hier muß statisch gelinkt sein, sonst sucht es nach der Standard-Library, die es nicht finden kann. Sollte kein statisch gelinktes Programm vorhanden sein, kann auch ein Verzeichnis lib angelegt werden, das die nötigen Libraries enthält.
Das Verzeichnis etc
Auch dieses Verzeichnis sollte root gehören und von niemandem beschreibbar sein. Es muß die Dateien passwd und group enthalten, jedoch ohne Passwörter. Die beiden Dateien dienen nur dazu, dass das ls -l Kommando statt Nummern Usernamen und Gruppennamen anzeigen kann.
Das Verzeichnis pub
Hier sollten die Dateien liegen, die der anonyme User downloaden kann.
Neben diesen Verzeichnissen können noch andere liegen, z.B. ein Verzeichnis msgs (messages), das bestimmte Nachrichten enthält, die beim Login dargestellt werden. Oder wie oben schon erwähnt, das Verzeichnis lib für benötigte Libraries. Weil all das viel Arbeit zum Einrichten bedeutet, haben viele Linux-Distributionen bereits ein fertiges Paket im Lieferumfang, das eine komplette anonyme FTP-Umgebung einrichtet.

In vielen Fällen ist es erwünscht, dass der anonyme FTP-User gleich ins Verzeichnis pub wechselt, wenn er sich einloggt. Trotzdem ist es aber nötig, die chroot-Umgebung als sein Homeverzeichnis zu definieren. Für diesen Fall bietet der wu.ftpd eine zusätzliche Möglichkeit an, das Problem zu lösen.

Der Eintrag für das Home-Verzeichnis des FTP-Users in /etc/passwd darf eine Erweiterung beinhalten, nämlich eben das Verzeichnis, in das der User wechseln soll, nachdem er eingeloggt ist. Diese Erweiterung wird durch ein /./ (Slash Punkt Slash) vom eigentlichen Homeverzeichniseintrag getrennt. In unserem Beispiel müssten wir also statt

  /usr/local/ftp
jetzt
  /usr/local/ftp/./pub
schreiben. Die zweite Angabe versteht sich also relativ zur ersten. Die komplette Zeile in /etc/passwd würde also lauten:
  ftp:x:40:2:ftp account:/usr/local/ftp/./pub:/bin/bash
Das hat dann zwar zur Folge, dass sich niemand mehr als ftp auf der Konsole einloggen kann, aber das soll ja sowieso nicht sein.


[Zurück zur FTP-Seite] [Nächste Seite]