8.2 FTP-Server

Um Dateien über das Netzwerk (oder auch im Internet) zu kopieren, hat sich seit langer Zeit das File-Transfer-Protokoll (FTP) etabliert. Sehr verbreitet ist der WU-FTPD-Server, der auch als Debian-Paket vorliegt. Wir möchten Ihnen jedoch an dieser Stelle den ProFTPD-Server vorstellen, der sich durch eine sehr leichte Konfiguration auszeichnet und durch ein moderneres Konzept größere Sicherheit bietet.

Zunächst sollten Sie das Paket proftpd installieren. Danach finden Sie die Konfigurationsdatei im Verzeichnis /etc/ unter dem Namen proftpd.conf.

Auch für dieses Debian-Paket wurde eine kleine Konfigurationsroutine hinzugefügt:

+------------------------- Configuring Proftpd --------------------------+
|                                                                        |
| This option will create a 'ftp' user if needed, and set up ProFTPD to  |
| allow anonymous ftp access to /home/ftp.                               |
|                                                                        |
| Enable anonymous ftp access?                                           |
|                                                                        |
|                   <Yes>                      <No>                      |
|                                                                        |
+------------------------------------------------------------------------+

Editing /etc/proftpd.conf ...
Starting professional ftp daemon: proftpd.   

Sie können hier auswählen, ob Sie Ihren FTP-Bereich (Standard ist das Verzeichnis /home/ftp/) auch für anonyme Benutzer freigeben wollen.

Werfen wir nun einen Blick in die erzeugte Konfigurationsdatei:

# This is a basic ProFTPD configuration file (rename it to 
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName			"ProFTPD"
ServerType			standalone
DeferWelcome			off

ShowSymlinks			on
MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on
AllowOverwrite			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
LsDefaultOptions                "-l"

# Port 21 is the standard FTP port.
Port				21

# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask				022

# Set the user and group that the server normally runs at.
User				root
Group				root


# A basic anonymous configuration, no upload directories.

<Anonymous ~ftp>
  User				ftp
  Group				nogroup
  # We want clients to be able to login with "anonymous" as well as "ftp"
  UserAlias			anonymous ftp

  RequireValidShell		off
##
  # Limit the maximum number of anonymous logins
  MaxClients			10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin			welcome.msg
  DisplayFirstChdir		.message

  # Limit WRITE everywhere in the anonymous chroot
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>
##
  # <Directory incoming>
  #            <Limit READ WRITE>
  #            DenyAll
  #            </Limit>
  #            <Limit STOR>
  #            AllowAll
  #            </Limit>
  # </Directory>

</Anonymous>

Wenn Sie sich bereits mit der Konfiguration des Webservers Apache beschäftigt haben, werden Ihnen in dieser Konfiguration sicher viele Dinge bekannt vorkommen.

Damit wäre die grundsätzliche Konfiguration abgeschlossen. Wenn Sie wirklich den Zugriff von außen auf Ihren Rechner erlauben wollen, müssen Sie noch etwas mehr tun. Sehen Sie zunächst in die Datei /etc/hosts.deny: Dort sollte lediglich der Eintrag ALL: ALL zu finden sein, um erst einmal alle Zugriffe von außen auf den Rechner abzublocken. Es ist einfacher, die Übersicht zu behalten, wenn man explizit die Rechner freigibt, die zugreifen dürfen. Dies geschieht über die Datei /etc/hosts.allow.

Wenn Sie den Zugriff auf Ihren FTP-Server von jedem Rechner weltweit erlauben wollen, tragen Sie die Zeile

   ftpd: ALL

in dieser Datei ein. Um den Zugriff aus der Domain openoffice.de zu erlauben, genügt die folgende Zeile:

 ftpd: .openoffice.de
 

Natürlich lässt sich der Zugriff auch auf einzelne Rechner beschränken. Hierzu tragen Sie folgende Zeile (sinngemäß) ein:

 ftpd: 198.186.203.20
 

Wenn Sie an den ProFTPD-Konfigurationsdateien Veränderungen vorgenommen haben, müssen Sie den Dämon mit dem Kommando /etc/init.d/proftpd reload zum Einlesen der neuen Dateien überreden.

Zum ProFTPD-Paket gehören einige weitere interessante Programme. Dies sind: ftpcount, ftpwho, ftpstats und ftpshut.

ftpcount zeigt die Anzahl der Verbindungen zu jedem Server an.

ftpwho zeigt Prozessinformationen zu allen aktiven Verbindungen an.

ftpshut beendet alle ProFTPD-Server auf dem System zu einer bestimmten Zeit.

In den Manpages zu den einzelnen Programmen finden Sie weitere Informationen.

Weitere Informationen zu ProFTPD finden Sie im Netz unter der URL http://www.proftpd.net.