| FTP ist auf jedem Server ein Standard-Dienst. Auf Linux (LAMP)-Systemen werden vorwiegend die FTP-Server pure-ftpd und vsftpd verwendet. | pure-ftpd erlaubt sowohl einfache Tests als auch absolut professionelles und sicheres FTP-Service mit hoher Last. |
LAMP
|
Standard-Server mit Linux - Apache - MySQL - PHP - Samba |
| Linux & FTP | FTP-Server als fixer Bestandteil jedes Standard-Servers |
| Vorbereitung | LAN, Server, Installation, ... |
| Verwaltung | Scripts, Start, Autostart, Kontrolle, ... |
| Konfiguration | Maßgeschneiderte Einstellung nach Bedarf |
| Optionen | Eine kleine Auswahl der Möglichkeiten |
| Muster | Muster-Konfigurationen |
| Links |
Ausgewählte
|
Vorbereitung |
|
LAN:Ein FTP-Server ergibt nur in einem Netzwerk Sinn. Ihr LAN sollte daher vor Installation eines FTP-Servers bereits funktionieren. |
Testen sie, ob ihr Server von jedem PC im LAN erreichbar ist:
# ping 192.168.0.1
Ersetzen sie die IP-Adresse durch Name oder Adresse ihres Servers.
|
(Linux)-Server:Je nach Version hat ihr System schon bei der Installation einige der Vorarbeiten ausgeführt. Die Angaben sind nur Richtwerte, insbesondere die Datei-Pfade können sich unterscheiden.● user & group: Das System sollte einen user ftp angelegt haben. Als home-Verzeichnis für diesen User ist normalerweise /srv/ftp/ eingetragen. Dieses Verzeichnis dient für als FTP-Startverzeichnis für anonyme user. Wenn sie 'gewöhnliche' und Administrations-user unterscheiden wollen, dann verwenden sie dazu eine eigene Gruppe (im Beispiel unten mit der GID-Nr 1111). Wählen sie die Mitglieder dieser Gruppe nach Bedarf. |
● directory: Ein Verzeichnis muss als FTP-Startverzeichnis definierert oder angelegt werden. Standard ist /srv/ftp/ Dieses Verzeichnis muss als home-Verzeichnis für den user ftp eingetragen sein. Legen sie darin ein öffentliches Verzeichnis an (üblicher Name pub oder public ): /srv/ftp/pub/ und stellen sie die gewünschten Zugangsrechte ein. Wenn sie Dateien für spezielle user-Gruppen anbieten, dann erzeugen sie dafür weitere Verzeichnisse. Legen sie die Zugriffsrechte fest. Ein Verzeichnis /srv/ftp/marketing/ könnte z.B. alles enthalten, was im Marketing benötigt wird, mit Lese-Rechten (nur) für die Marketing-Gruppe, ohne jeden Zugriff anderer User. |
Installation aus der Linux-Distribution:Am einfachsten ist die Installation direkt aus ihrer Linux-Distribution:● Diese Methode ist immer zu bevorzugen, denn der Distributor hat sich bereits darum gekümmert, alle Bestandteile passend einzurichten. ● Kontrollieren sie, ob ihre Distribution pure-ftpd enthält, und ob das Paket installiert ist. |
Ältere SuSE-Versionen enthalten pure-ftpd. Öffnen sie dazu YAST und suchen entweder nach dem Paket-Namen ('pure') oder nach Paketgruppen (Produktivität | Netzwerk | FTP | Server). Installieren sie das Paket. |
RPM-Paket:● Falls ihre Linux-Distribution kein pure-ftpd enthält, laden sie es aus dem Internet, am besten als fertig konfiguriertes Installations-Paket *.rpm.Alle Distributoren bieten solche Pakete zum Download an, sie sind bereits für das jeweilige System konfiguriert. Packen sie das Archiv aus und installieren sie das Paket: # rpm -i pure-ftpd-xxx.rpm
Link: pureftpd.org,
SuSE
|
In seltenen Fällen erfolgt keine Installation und sie erhalten einen Hinweis auf eine fehlende (Bibliotheks)-Datei. Falls diese library in ihrer Distribution nicht zu finden ist, erhalten sie meist im Internet Hinweis auf das zu installierende Paket (z.B. libpq.so im Paket postgres ...). Details zu RPM-Paketen im Kapitel Linux-Installation |
Kompilieren:● Falls sie nicht zu einem installierbaren Paket gelangen, laden sie aus dem Internet den Quelltext (source) des Programms und erzeugen (compile) daraus selbst am eigenen PC das Programm. Folgen sie dazu den beigelegten Anweisungen und der Dokumentation beim Hersteller.Details im Kapitel Linux-Installation. |
Super-Server:● pure-ftpd wird ungefragt als 'standalone'-Service installiert. Das ist die sicherste und schnellste Einsatz-Methode.● Alternativ besteht auch die Möglichkeit, einen 'super-server' zu verwenden (z.B. inetd ). Die Dokumentation bietet dazu detaillierte Angaben. Ein Super-Server verwaltet alle Anfragen an einen Server und leitet sie an den entsprechenden Dienst zur Bearbeitung weiter. Diese Art des Einsatzes ist IT-Profis vorbehalten. |
Kontrolle nach Installation:Sehen sie nach, ob und wo neue Dateien installiert wurden (Unterschiede je nach Distribution und Version !).Für pure-ftpd werden auf SuSE u.a. die rechts gezeigten Dateien installiert. Sehen sie sich die Dokumentation an, auch die Scripts sind für IT-Profis meist aufschlussreich. Nach Installation können sie den FTP-Server bereits probeweise starten. Für den laufenden Betrieb müssen sie jedoch meist noch Änderungen an der Konfiguration vornehmen. |
# Ausführbare Programme (binaries):
/usr/sbin/pure-ftpd
# Ausführbare Perl-Scripts:
/usr/sbin/pure-config.args.pl
# Konfiguration und Verwaltung:
/usr/sbin/pure-config.pl /etc/pure-ftpd/pure-ftpd.conf
# Dokumentation:
/usr/share/doc/packages/pure-ftpd/
/usr/share/man/man8/pure-ftpd.8.gz |
Verwaltung |
|
Script-Programme:Scripts sind Text-Dateien, die ein Programm enthalten. Sie sind transparent (lesbar), und mit jedem Editor-Programm zu öffnen oder zu ändern. Linux verwendet für Verwaltungs-Aufgaben vorwiegend Scripts.● Jeder installierte Dienst muss verwaltet werden. Übliche Maßnahmen sind start, stop, restart und status. Darüber hinaus sollte ein Dienst bei Systemstart automatisch gestartet werden. Diese Aufgaben werden mit Scripts ausgeführt, die bei der Installation des Pakets konfiguriert und installiert wurden. |
● Zusätzlich zu den Scripts stehen je nach Distribution bequeme Programme mit grafischer Oberfläche zur Verfügung - auch in diesem Fall werden im Hintergrund die gleichen Scripts verwendet ! Normalerweise genügen die vorgesehenen Resourcen zur Verwaltung: Nach Installation und Konfiguration sollte der FTP-Server ja ohne weitere Aufsicht laufen. |
Manueller Start:● Das Server-Programm kann direkt gestartet werden:# /usr/local/sbin/pure-ftpd &
In der Praxis sollten sie den Server nicht manuell bedienen,
sondern die dazu installierten Scripts verwenden oder eigene Scripts nach deren
Muster erstellen.
|
● Sonderwünsche: Wenn sie experimentieren wollen, oder Sonderwünsche erfüllen müssen, dann ändern sie installierte Scripts nicht oder nur minimal. Stützen sie sich in eigenen Scripts so weit wie möglich auf die installierten Scripts und programmieren sie selbst nur die unbedingt notwendigen Teile. |
Auto-Start:● Ein Dienst (service, daemon) sollte beim Systemstart automatisch gestartet werden.● Mit runlevel werden die verschiedenen Arten der Verwendung bezeichnet. Der FTP-Server sollte bei jeder Verwendung als Server bzw. im Netzwerk gestartet werden, das sind die runlevels 3 und 5. Für jeden runlevel sind eigene Verzeichnisse vorgesehen, die darin enthaltenen Scripts werden automatisch ausgeführt. ● Jede gängige Linux-Distribution bietet ein Programm zur Verwaltung der Dienste, z.B. SuSE: YAST | System | Runlevel-Editor. Richten sie den FTP-Dienst für Autostart ein. Damit werden in den betroffenen Verzeichnissen Scripts erzeugt, z.B. /etc/init.d/rc5.d/K10pure-ftpd
|
Ändern sie nicht das runlevel-Script. Legen sie in einem anderen Verzeichnis einen symbolischen Link an, mit dem sie dieses Script benutzen können, z.B.: ln -s /etc/init.d/rc5.d/K10pure-ftpd /root/ftpdtool
Nun können sie den FTP-Server in ihrem Verzeichnis verwalten:
# /root/ftpdtool
# /root/ftpdtool status # /root/ftpdtool start # /root/ftpdtool stop # /root/ftpdtool restart |
Kontrolle:● Der FTP-Server speichert seine PID (process id-number) nach Linux-Praxis in einer Text-Datei, z.B./var/run/pure-ftpd.pid
Sie können den aktuellen Prozess-Status anzeigen:
# ps -C pure-ftpd -F
Statt 1234 setzen sie ihre aktuelle PID ein.# ps -p 1234 -F ● Je nach Konfiguration schreibt der FTP-Server laufende Ereignisse in eine Log-Datei, z.B. /var/log/pure-ftpd.log
|
● Das Dienstprogramm pure-ftpwho gibt Auskunft über aktuelle BesucherInnen des FTP-Servers: # pure-ftpwho
● Für kreative EntwicklerInnen ist es relativ einfach, Webseiten-Programme zur Verwaltung von Diensten zu erstellen. Alle gängigen Server-Programmiersprachen (Perl, PHP, Python, ..) bieten diese Möglichkeit. Diese Art der Verwaltung ist ideal, da sie von jedem PC im LAN mit einem beliebigen Browser ausgeführt werden kann. Selbstverständlich muss dabei die Sicherheit gegen Fremd- und Fehlbedienung besonders beachtet werden. ♦ Details im Kapitel Systembefehle mit Programmiersprachen. |
Verbindung:Auf einem beliebigen PC im LAN öffnen sie die Konsole (Linux-Shell oder Windows-'Eingabeaufforderung' cmd.exe). Geben sie den Befehl ftp ein, gefolgt vom Namen oder von der IP-Adresse des FTP-Servers, z.B.
# ftp 192.168.0.1
C:\> ftp 192.168.0.1 |
Der Server sollte sich melden und je nach Konfiguration nach ihrem Anmelde-Namen fragen. Falls dieser Test fehlschlägt: Prüfen sie (z.B. mit ping ) die Verbindung zum Server und stellen sie fest (s.o.), ob der FTP-Server überhaupt läuft. |
Konfiguration |
|
| Ein wichtiger Punkt der Konfiguration wird - anders als bei anderen Diensten - an anderer Stelle festgelegt, in der User-Verwaltung des Betriebssystems: | Das Startverzeichnis für anonyme FTP-User ist jenes Verzeichnis, welches im System als /home/-Verzeichnis des Users ftp festgelegt wurde, normalerweise /srv/ftp/. |
Befehlszeilen-Optionen:● pure-ftpd ist extrem spartanisch (eben 'pur') ausgestattet und wird ausschließlich durch Optionen in der Befehlszeile gesteuert.Das klingt kompliziert, bei >50 verschiedenen Optionen in unzähligen Varianten. Tatsächlich werden die Server in der Praxis durch umfangreiche Befehlszeilen gesteuert: Das entspricht einer radikalen Optimierung für das Programm, ist jedoch für Menschen ziemlich undurchschaubar. |
Daher werden zusammen mit pure-ftpd meist Script-Programme installiert, die eine Konfigurations-Datei (in 'menschlichem' Text) lesen und daraus die Befehlszeile für den Server erstellen. Diese Methode ist sehr effizient, da sie die Konfiguration (einmalig, 'Menschen-orientiert') vom eigentlichen Server sauber trennt. |
|
●
Die Konfigurations-Datei befindet sich normalerweise hier:
/etc/pure-ftpd/pure-ftpd.conf
Das ist eine kommentierte Text-Datei.
|
Erstellen sie eine Sicherungskopie (!) und sehen sie sich die Datei mit einem Editor an. Kommentare sind integriert, solche Zeilen beginnen mit einem #- Zeichen. Für ernsthafte Verwendung benötigen sie zusätzlich unbedingt die Original-Dokumentation des Herstellers ! |
|
Testen sie die Konfiguration (zunächst noch ohne Änderung) mit diesem Befehl:
# /usr/sbin/pure-config.pl etc/pure-ftpd/pure-ftpd.conf
Das Script-Programm pure-config.pl erstellt die Befehlszeile,
zeigt sie zur Kontrolle an und leitet sie an den Server weiter.Dabei werden z.B. solche Befehlszeilen erzeugt: # /usr/sbin/pure-ftpd -B -z -D -fftp -H -lpam -M -U177:077
Wenn sie Befehlszeilen wie diese sehen, ist der Befehl bereits erteilt,
sie müssen den Befehl nicht nochmals eintippen.Der Server selbst wird besser mit dem rechts gezeigten restart-Befehl gestartet, das Script zeigt jedoch die Befehlszeile an, eine anfangs wichtige Kontrolle. |
Die Konfiguration wird normalerweise erst nach Neustart wirksam. Wenn sie ein
Verwaltungs-Werkzeug erzeugt haben, wie oben vorgestellt, dann befehlen sie den
Neustart so:
# /root/ftpdtool restart
Nun können sie den FTP-Server testen. Dazu öffnen sie eine Konsole (Shell, cmd.exe) auf einem beliebigen PC (Linux, Windows, MacOS, ..) im LAN: # ftp 192.168.0.1
Ändern sie die Adresse auf Name oder Adresse ihres Servers.Der FTP-Server sollte sich melden und ihre Anmeldung vorschlagen. Sie können das ausprobieren, oder gleich beenden:
>ftp help
>ftp quit |
|
Nach diesem Muster beginnen sie nun die Konfiguration ihres FTP-Servers: ● Konfigurations-Datei ändern (Optionen s.u.) ● Konfigurations-Script starten (Befehlszeile) ● Server restart ● Test von einem (Client)-PC im LAN |
Diesen Zyklus wiederholen sie solange, bis sie die gewünschte Einstellung
gefunden haben. Danach ist eine kurze Dokumentation ratsam: Je besser ihr Server funktioniert, umso länger wird es dauern, bis sich erneut jemand mit der Konfiguration beschäftigt ! |
|
|
|
Homepage bei
http://www.pureftpd.org/ Sourceforge: Projektseite pure-ftpd |
x-fish:
pure-ftpd intro (de) eressa: pure-ftpd intro (de) |