Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:ftp

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

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

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

<Directory /var/www/fussballtipp>
  Umask                          027 027
</Directory>

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:

<Limit SITE_CHMOD>
        DenyAll
</Limit>
linux/ftp.txt · Zuletzt geändert: 2014-04-05 11:42 (Externe Bearbeitung)