ProFTPd

Aus Ubuntu-Forum Wiki

Wechseln zu: Navigation, Suche

810.png 804.png 710.png 704.png 610.png 606.png 510.png

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

Installation von proFTPd

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.


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 606.png 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


3.1.2 Durchführung

sudo mkdir /home/ftp/daten
sudo mount --bind /media/daten /home/ftp/daten

Nun sollte der Ordner /media/daten also ebenfalls in /home/ftp/daten verfügbar sein.

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.

4 Links

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Forum
Navigation
Internes
Bearbeitungshilfen
Werkzeuge