Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
vserver:ftp [2010-05-03 10:42] 127.0.0.1 Externe Bearbeitung |
— (aktuell) | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== 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: | ||
- | <code ini> | ||
- | ServerName "Stefan Macke" | ||
- | <IfModule mod_tls.c> | ||
- | 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 | ||
- | </IfModule> | ||
- | </code> | ||
- | |||
- | ===== FTP-Benutzer ===== | ||
- | Dann können die Benutzer eingerichtet werden, die sich mit dem Server verbinden können sollen: | ||
- | <code ini> | ||
- | # chroot für alle User der Gruppe ftpusers | ||
- | DefaultRoot ~ ftpusers | ||
- | |||
- | # Login nur von Mitgliedern der Gruppe ftpusers erlauben | ||
- | <Limit LOGIN> | ||
- | DenyGroup !ftpusers | ||
- | </Limit> | ||
- | |||
- | # Root-Login verbieten und keine gültige Shell verlangen (in /etc/shells) | ||
- | <Global> | ||
- | RootLogin off | ||
- | RequireValidShell off | ||
- | </Global> | ||
- | |||
- | # Speed erhoehen | ||
- | UseReverseDNS off | ||
- | IdentLookups off | ||
- | </code> | ||
- | |||
- | ===== Logging ===== | ||
- | Zuletzt kann noch das Logging aktiviert werden (hier ist schon eine Logdatei zur Auswertung mit //awstats// integriert): | ||
- | <code ini> | ||
- | # 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 | ||
- | </code> | ||
- | |||
- | ===== 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. | ||
- | <code ini>Umask 077 077</code> | ||
- | |||
- | 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: | ||
- | <code ini> | ||
- | <Directory /var/www/fussballtipp> | ||
- | Umask 027 027 | ||
- | </Directory> | ||
- | </code> | ||
- | |||
- | 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: | ||
- | <code ini> | ||
- | <Limit SITE_CHMOD> | ||
- | DenyAll | ||
- | </Limit> | ||
- | </code> | ||
- | |||
- | ====== Einrichten eines Samba-Servers ====== | ||
- | * <code bash>apt-get install samba</code> |