Debian: ProFTPd-Server aufsetzen

Zur Vorbereitung auf meine Abschlussprüfung habe ich mit einigen Schulkollegen abgesprochen, einen gemeinsamen FTP-Server aufzusetzen, sodass wir zentral Dokumente und Prüfungen pflegen können.

Nachfolgend ein knappes HowTo, wie man einen ProFTPd-Server auf Debian 4 im Daemon-Mode installiert und zum Zugriff von lokalen Benutzern auf deren Home-Verzeichnisse konfiguriert.

apt-get update
apt-get install proftpd
# Gruppe für FTP-Zugang anlegen
addgroup ftpuser
usermod -G ftpuser username
#/etc/proftpd/proftpd.conf
   # 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 "ServerName"
   ServerType standalone
   DeferWelcome off

   ShowSymlinks on
   MultilineRFC2228 on
   DefaultServer on
   AllowOverwrite on

   TimeoutNoTransfer 600
   TimeoutStalled 600
   TimeoutIdle 1200

   DisplayLogin welcome.msg
   DisplayFirstChdir .message

   DenyFilter *.*/

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

   # 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

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

   AllowOverwrite on
   </Directory>

   # Hier meine Ergänzungen

   # chroot für alle User der Gruppe ftpuser
   DefaultRoot ~ ftpuser

   # Login nur von Mitgliedern der Gruppe ftpuser erlauben
   <Limit LOGIN>
   DenyGroup !ftpuser
   </Limit>

   # Root-Login verbieten und gültige Shell verlangen (in /etc/shells)
   <Global>
   RootLogin off
   RequireValidShell on
   </Global>

   # Speed erhoehen
   UseReverseDNS off
   IdentLookups off

   # Logging Formate
   LogFormat default "%h %l %u %t "%r" %s %b"
   LogFormat auth "%v [%P] %h %t "%r" %s"
   LogFormat write "%h %l %u %t "%r" %s %b"

   # Logging aktivieren

   # alle logins
   ExtendedLog /var/log/ftp_auth.log AUTH auth

   # file/dir Zugriff
   ExtendedLog /var/log/ftp_access.log WRITE,READ write

   # für paranoide (vorsicht, erzeugt grosse Logfiles)
   #ExtendedLog /var/log/ftp_paranoid.log ALL default 
   UseIPv6 off

Um Benutzern den Zugriff per Shell zu verbieten, sollte man eine Pseudoshell erstellen:

cp /bin/false /bin/ftp
echo "/bin/ftp" >> /etc/shells

Beim Erstellen eines neuen Benutzers kann nun die Shell per Parameter übergeben werden (usermod -s /bin/ftp username) oder bei bestehenden Benutzern geändert werden (useradd … -s /bin/ftp … username)

Bastian

Seit 2006 bin ich täglich im IT-Umfeld unterwegs und interessiere mich für technische Lösungen im Hard- und Softwarebereich, die einem den Alltag erleichtern. Zu meinen Hobbies zählt ein 3D-Drucker, das auch (handwerkliche) Tüfteln, Scripten sowie der unqualifizierte Umgang mit dem Lötkolben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.