Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


ProFTPD

[ProFTPD Logo]

Gemeinsamkeiten ] in.ftpd ] wu-ftpd ] [ ProFTPD ] vsftpd ] FTP-Clients ]


Als weiterer FTP-Server ist der ProFTPD bekannt, der einige Sicherheitslücken vom wu-ftpd behebt und eine übersichtlichere Konfiguration ermöglicht. Der ProFTPD wurde von rund auf neu entwickelt und ist unter der GPL (GNU Public License) frei verfügbar. Zu den Eigenarten diese Servers gehören, der ProFTPD benötigt keine 'Changed-Root-Umgebung' für anonyme Logins. Auch wird der ProFTPD mit nur einer Konfigurationsdatei administriert.
Im Folgenden wird wieder einen kurze Beispiel-Installation unter Debian vorgestellt, dabei wird auch auf die anonyme Variante des FTP-Server eingegangen.

Installation

Unter Debian kann der ProFTPD einfach mit dem Kommando: 'apt-get install proftpd' installiert werden. Zum Abschluss der Installation erscheint noch ein Dialog bezüglich der Startart des Dämons:

  • ProFTPd über inetd oder als Daemon starten? <inetd>

Es sollte die Variante über den Super-Dämon: 'inetd' gewählt werden. Sinnvoll ist es auch das Paket der Dokumentation 'proftpd-doc' mit zu installieren. Als 'Changed-Root-Umgebung' kann die bereits vorgestellte Variante genutzt werden.

Konfiguration

Wie bereits erwähnt wird der ProFTPD mit nur einer Konfigurationsdatei: '/etc/proftpd.conf' administriert. Unter Debian wird standardmäßig eine vorkonfigurierte Datei installiert, die als Ausgangsbasis für eigene Konfigurationen genutzt werden kann. Die Datei ist ähnlich aufgebaut wie die Konfigurationsdatei des Apaches, es sind sogar viele identische Anweisungen enthalten. Im Folgenden ist die leicht abgeänderte default-Konfigurationsdatei zu sehen (gelb markierten Bereiche):

/etc/proftpd.conf

#
# /etc/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#

ServerName                      "Debian"
ServerType                      inetd
ServerAdmin                     ftpadm@localhost
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

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

DenyFilter                      \*.*/

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
#PersistentPasswd               off

# Uncomment this if you would use TLS module:
#TLSEngine                      on

# Uncomment this if you would use quota module:
#Quotas                         on

# Uncomment this if you would use ratio module:
#Ratios                         on

# Port 21 is the standard FTP port.
Port                            21

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                    30

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

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite                  on

# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
#DelayEngine                    off

#
# Logging options
#

TransferLog /var/log/xferlog

# 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
   # Cosmetic changes, all files belongs to ftp user
   DirFakeUser on ftp
   DirFakeGroup on 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>
 
   # Uncomment this if you're brave.
   # <Directory incoming>
   #   # Umask 022 is a good standard umask to prevent new files and dirs
   #   # (second parm) from being group and world writable.
   #   Umask                            022  022
   #         <Limit READ WRITE>
   #         DenyAll
   #         </Limit>
   #         <Limit STOR>
   #         AllowAll
   #         </Limit>
   # </Directory>
 
 </Anonymous>

Eigentlich sollte der ProFTPD mit der default-Konfigurationsdatei als restricted-FTP-Server schon lauffähig sein. Für die individuelle Konfiguration, hier eine kurze Beschreibung der wichtigsten Parameter:

  • ServerName
    Hier wird lediglich ein Name definiert, der bei der Herstellung der Verbindung an den Client geliefert wird.

  • ServerType
    Bei ServerType wird zwischen 'standalone' und 'inetd' unterschieden. Der Betrieb über den Super-Dämon: 'inetd' bringt aber den Vorteile mit sich, dass der ProFTPD-Prozess wird nur bei Bedarf gestartet wird und somit den Rechner nur dann belastet. Zusätzlich können Zugriffsbeschränkungen bereits im Vorfeld definiert werden, d.h. nicht autorisierte Zugriffe werden bereits vor einem Start des ProFTP vom Super-Dämon abgewiesen.

  • ServerAdmin
    Hier ist die Email-Adresse des FTP Administrators einzutragen.

  • DeferWelcome
    Angabe ob Informationen, wie der 'ServerName', angezeigt werden, bevor eine Anmeldung stattgefunden hat.

  • DefaultServer
    Falls der Rechner mehrere IP-Adressen besitzt, wird mit dieser Anweisung definiert ob auf alle Anfragen mit dem Standardserver geantwortet wird. Falls der Wert auf off gesetzt ist und für die zweite Adresse kein FTP -Server definiert wurde, so wird eine Fehlermeldung ausgegeben.

  • Port
    Standardport für das FTP-Protokoll ist der Port: '21'. Wenn der Server über 'inetd' gestartet wurde, wird dieser Wert ignoriert, da der Superdämon nur Anfragen am Port '21' weiterleitet. Falls mehrere Server unter einer IP-Adresse mit unterschiedlichen Ports laufen sollen, muss der ProFTPD im standalone-Modus betrieben werden.

  • Umask
    Dieser Wert gibt die Attribute einer neu erstellten Datei an.

  • User
    Angabe unter welchem Benutzer der ProFTPD läuft.

  • Group
    Angabe unter welcher Gruppe der ProFTPD läuft

  • TransferLog
    Hier wird die Log-Datei des ProFTPD definiert.

In der vorgegebenen Konfiguration ist standardmäßig aus Sicherheitsgründen der anonyme FTP-Zugang deaktiviert. Um den anonymen FTP-Zugang zu erlauben, muss der entsprechende Teil aktiviert werden. Die Einstellungen hierfür sind im unteren Teil der Konfigurationsdatei zwischen den Anweisungen: '<Anonymous ~ftp>' und '</Anonymous>' zu finden. Dazu sind die Kommentarzeichen zwischen den Anweisungen zu entfernen.

Eine vollständige Beschreibung des ProFTPD ist auf der Homepage und den Manualseiten zu finden.

Anmerkungen

Zum ProFTPD-Paket gehören einige weitere interessante Programme wie 'ftpcount', ftpwho', 'ftpstats' und 'ftpshut'. Detaillierte Informationen zu den Programmen sind auf den entsprechenden Manualseiten zu finden.

Weitere Infos

Homepage von ProFTPD http://www.proftpd.org/
ProFTPd HOWTO http://www.debianhowto.de/howtos/de/proftpd/
Manualseiten zu: proftpd; proftpd.conf man proftpd; man proftpd.conf
System-Dokumentation: proftpd /usr/share/doc/proftpd

Home ] Nach oben ] Gemeinsamkeiten ] in.ftpd ] wu-ftpd ] [ ProFTPD ] vsftpd ] FTP-Clients ]

letzte Änderung: 07. März 2006

 

Copyright © 2004 Norbert Eusterholz