ProFTPd
Aus Ubuntu-Forum Wiki
Inhaltsverzeichnis |
1 Allgemeines
ProFTPd (Pro FTP daemon) stellt auf dem System einen FTP-Server zur Verfügung. Damit ist es möglich, Dateien über ein Netzwerk oder das Internet über das File Transfer Protocol (FTP) zu transferieren. ProFTPd ist unter Unix-Systemen recht bekannt und wird häufig verwendet.
2 Installation
Die Installation gestaltet sich in Ubuntu sehr einfach. In der Paketverwaltung installiert man dazu das Paket proftpd. Bevorzugt man das Terminal, so installiert man den FTP-Server mit dem Befehl:
sudo apt-get install proftpd
Bevor APT das Paket richtig installiert, erscheint jedoch ein Fenster, wo ausgewählt werden kann, ob das Programm als Dienst über Inetd oder als eigener Daemon gestartet werden soll.
- Dienst über Inetd: Dies hat den Vorteil, dass das Programm ressourcensparender läuft, jedoch auch nicht die Leistung bringen wird wie proftpd als Daemon. Wenn man nicht viele Anfragen auf den FTP hat und es nicht notwendig/gewünscht ist, dass der Server permanent läuft, kann man diese Variante bevorzugen.
- Eigener Daemon: Soll der Server permanent online sein oder werden viele Anfragen gestellt, so ist es sinnvoller, den daemon zu benutzen.
3 ProFTPd einrichten
Die Konfiguration kann sowohl über das Terminal als auch über eine grafische Umgebung (GUI) gemacht werden. In dieser Anleitung wird die Einrichtung über die Konsole beschrieben. Um die (selbst erklärende) grafische Oberfläche zu benutzen, installiert man das Paket: "gproftpd".
sudo apt-get install gproftpd
Nach der Installation fällt auf, dass ein neuer Home-Ordner mit dem Namen ftp erstellt wurde (/home/ftp). Dies wird das spätere FTP-Verzeichnis. Doch diesem müssen wir zuerst die erforderlichen Rechte für eine Benutzung über FTP geben:
sudo chmod a+rw /home/ftp
In dem Ordner befindet sich nun lediglich eine Datei namens welcome.msg in der man die Wilkommensnachricht beim Verbinden einstellen kann.
Nach der Installation sieht die Nachricht so aus:
Welcome, archive user %U@%R ! The local time is: %T This is an experimental FTP server. If have any unusual problems, please report them via e-mail to <root@%L>.
Die Nachricht kann nach Belieben verändert werden.
Die Konfigurationsdatei von proFTPd ist die Datei: "/etc/proftpd/proftpd.conf", welche wir über:
sudo nano /etc/proftpd/proftpd.conf
bzw. für Ubuntu-Versionen bis Dapper über:
sudo nano /etc/proftpd/proftpd.conf
Wenn man die Datei das erste Mal öffnet, ist diese schon mit den Standard-Einstellungen konfiguriert, welche nur noch angepasst werden müssen.
Eine mögliche Konfiguration, bei der ein anonymer Benutzer ohne Passwort auf dem FTP-Server Lese-Rechte hat, wäre dieser Abschnitt der Konfigurationsdatei:
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> <Directory incoming> Umask 022 022 <Limit READ WRITE> DenyAll </Limit> <Limit STOR> AllowAll </Limit> </Directory> </Anonymous>
Eine andere Konfigurationsmöglichkeit wäre die Folgende. Hierbei kann sich der Benutzer otto (der auch auf dem System aktiv sein muss) mit seinem zugehörigen Passwort anmelden. (Sprich das lokale Kennwort von otto ist auch das FTP-Passwort):
<Anonymous /home/ftp> User otto Group otto AnonRequirePassword on MaxClients 3 "The server is full, hosting %m users" DisplayLogin welcome.msg DisplayFirstChdir .msg <Limit LOGIN> Allow from all Deny from all </Limit> <Limit LIST NLST RETR PWD XPWD SIZE STAT CWD XCWD CDUP XCUP > AllowAll </Limit> <Limit STOR STOU APPE RNFR RNTO DELE MKD XMKD SITE_MKDIR RMD XRMD SITE_RMDIR SITE SITE_CHMOD SITE_CHGRP MTDM > DenyAll </Limit> </Anonymous>
Falls proftpd als inetd installiert wurde, muss es vor dem Benutzen gestartet werden. Dies geschieht durch:
sudo /etc/init.d/inetd restart
oder:
sudo /etc/init.d/proftpd restart
Sollte dies nicht funktionieren, müssen erst folgende Einstellungen in der Datei: "/etc/inetd.conf" gemacht werden:
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd
(Diese Einstellungen sollten aber standardmäßig enthalten sein -- Test: 7.04)
Will man seinen FTP-Dienst auch über das Internet anbieten, so muss zuerst der Port 21 (Standartport für FTP) im Router freigegeben weden (vorausgesetzt, man benutzt einen).
3.1 Verzeichnisse freigeben
ProFTPd ist dadurch, dass es den Benutzer des FTPs "chrootet" äußerst sicher, da der Benutzer nicht außerhalb dieses speziell für FTP angelegten Ordners agieren kann. Häufig ist dies aber gar nicht so gewünscht, da die zu bereistellenden Daten in verschiedenen Ordnern liegen. Möchte man nun gezielt Ordner freigeben, muss man Folgendes tun. Das wird an einem einfachen Beispiel erklärt:
3.1.1 Voraussetzungen
- Der FTP ist wie oben angegeben in /home/ftp. Die Rechte des Ordners sollten auf 666 (Lesen und Schreiben für alle, aber kein Ausführen) gesetzt sein, um optimales Arbeiten zu gewährleisten.
- Standardmäßig wären also nur Ordner in der Struktur /home/ftp/xyz möglich. Wir möchten aber beispielsweise /media/daten freigeben (jeder Unterordner von "daten" wäre aber auch möglich!). Dafür müssen wir den gewünschten Ordner in den bestehenden hineinmounten und dauerhaft verfügbar machen.
3.1.2 Durchführung
- Den Unterordner in /home/ftp erstellen:
sudo mkdir /home/ftp/daten
- Den Ordner /media/daten in /home/ftp/daten mounten:
sudo mount --bind /media/daten /home/ftp/daten
Nun sollte der Ordner /media/daten also ebenfalls in /home/ftp/daten verfügbar sein.
- Um dieses Mounten auch nach einem Neustart des Rechners noch zu haben, empfiehlt es sich, das Ganze in die /etc/fstab einzutragen:
sudo nano /etc/fstab
Dort sind ja bereits einige weitere Partitionen der Festplatte sowie die Swap-Partition gemountet. Hier fügt man in einer Zeile Folgendes hinzu:
/media/daten /home/ftp/daten ext3 bind 0 0
Achtung: ext3 natürlich nur, wenn /media/daten auch ext3 als Dateisystem hat! bei Ntfs natürlich "ntfs" eintragen und bei Fat32 "vfat" (jeweils ohne die Anführungsstriche). Das bind ist nötig, da es sich bei /media/daten um einen Ordner handelt, und nicht um ein "wirkliches" Laufwerk. Die Optionen "0 0" haben was mit dem automatischen Systemcheck zu tun.
Wenn man nun den Rechner neustartet, ist der Ordner /media/daten direkt in den Ordner /home/ftp/daten gemountet. Folglich kann man über den FTP auch auf den Ordner /media/daten zugreifen, obwohl er außerhalb des Bereichs für den FTP-Benutzer liegt.