====== 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