====== Einrichten des FTP-Servers ======
===== Sichere Verbindung per TLS =====
Verwendet wird //proftpd//. Die Konfiguration liegt unter ///etc/proftpd/proftpd.conf//.
Zunächst sollte der Name des Servers geändert und TSL aktiviert werden:
ServerName "Stefan Macke"
TLSEngine on
TLSLog /var/log/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem
TLSVerifyClient off
TLSRequired off
===== FTP-Benutzer =====
Dann können die Benutzer eingerichtet werden, die sich mit dem Server verbinden können sollen:
# chroot für alle User der Gruppe ftpusers
DefaultRoot ~ ftpusers
# Login nur von Mitgliedern der Gruppe ftpusers erlauben
DenyGroup !ftpusers
# Root-Login verbieten und keine gültige Shell verlangen (in /etc/shells)
RootLogin off
RequireValidShell off
# Speed erhoehen
UseReverseDNS off
IdentLookups off
===== Logging =====
Zuletzt kann noch das Logging aktiviert werden (hier ist schon eine Logdatei zur Auswertung mit //awstats// integriert):
# 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"
LogFormat awstats "%t %h %u %m %f %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
# awstats log
ExtendedLog /var/log/awstats_ftp READ,WRITE awstats
===== Berechtigungen =====
Wichtig ist jetzt noch das korrekte Einrichten der Benutzer. Grundsätzlich werden die Benutzer als [[grundkonfiguration#benutzerverwaltung_und_dateirechte|Systembenutzer]] ohne Shell angelegt, deren Home-Verzeichnis unter ///home/ftp// liegt, und auf das nur sie selbst Zugriff haben (700). Das Verzeichnis ///home/ftp// benötigt jedoch 750, da die Benutzer sonst nicht in ihr Home-Verzeichnis wechseln können.
Die globale **Umask** sollte wie folgt gesetzt werden, damit neue Dateien und Verzeichnisse alleine dem entsprechenden Benutzer gehören. Auch dieser kann die Dateien jedoch niemals ausführen, da //proftpd// die Umask von 666 berechnet. Eine Berechtigung zum Ausführen muss explizit per //chmod// gesetzt werden.
Umask 077 077
Lädt ein Benutzer Webseiten hoch (Home unter ///var/www//), so benötigt der [[apache2|Webserver]], der unter //www-data.ftpusers// läuft, hierauf Zugriff (Lesen und Ausführen). Dies wird durch eine Direktive für das entsprechende Verzeichnis gewährleistet:
Umask 027 027
Soll der Benutzer Dateien nicht als ausführbar kennzeichnen bzw. überhaupt keine Berechtigungen setzen können, ist noch folgender Befehl nötig (z.B. auf Directory-Ebene) um das Kommando //chmod// zu deaktivieren:
DenyAll