Installation:
> aptitude install pure-ftpd
Die folgenden NEUEN Pakete werden zusätzlich installiert:
libfile-copy-recursive-perl{a} openbsd-inetd{a} pure-ftpd pure-ftpd-common{a} update-inetd{a}
Mit Grafischer Gtk-Oberfläche für PureFTPd:
> aptitude install pure-ftpd pureadmin
Die folgenden NEUEN Pakete werden zusätzlich installiert:
fontconfig{a} fontconfig-config{a} gamin{a} hicolor-icon-theme{a} libatk1.0-0{a} libatk1.0-data{a} libavahi-client3{a}
libavahi-common-data{a} libavahi-common3{a} libcairo2{a} libcups2{a} libdatrie1{a} libfile-copy-recursive-perl{a}
libfontconfig1{a} libgamin0{a} libgdk-pixbuf2.0-0{a} libgdk-pixbuf2.0-common{a} libglade2-0{a} libgraphite2-3{a}
libgtk2.0-0{a} libgtk2.0-bin{a} libgtk2.0-common{a} libharfbuzz0b{a} libjasper1{a} libjbig0{a} libjpeg-turbo8{a}
libjpeg8{a} libpango-1.0-0{a} libpango1.0-0{a} libpangocairo-1.0-0{a} libpangoft2-1.0-0{a} libpangox-1.0-0{a}
libpangoxft-1.0-0{a} libpixman-1-0{a} libthai-data{a} libthai0{a} libtiff5{a} libxcb-render0{a} libxcb-shm0{a}
libxcomposite1{a} libxcursor1{a} libxdamage1{a} libxfixes3{a} libxft2{a} libxi6{a} libxinerama1{a} libxrandr2{a}
libxrender1{a} openbsd-inetd{a} pure-ftpd pure-ftpd-common{a} pureadmin update-inetd{a}
einen FTP-User und das gemeinsame FTP-Verzeichnis anlegen:
> groupadd ftpgroup > useradd -g ftpgroup -d /dev/null -s /etc ftpuser > chown -R ftpuser:ftpgroup /home/ftpuser
"otto" darf nicht per FTP auf diese Maschine zugreifen:
> echo "otto" >> /etc/ftpusers
Konfiguration:
> echo "yes" > /etc/pure-ftpd/conf/Daemonize > echo "yes" > /etc/pure-ftpd/conf/NoAnonymous > echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone > echo "yes" > /etc/pure-ftpd/conf/IPV4Only
der Benutzer "fritz" wird als virtueller FTP-User angelegt, der im Betriebssystem aber nicht existieren muss (aber kann):
> pure-pw useradd fritz -u ftpuser -d /home/ftpusers Password: Enter it again:
Sollte man weitere virtuelle FTP-Benutzer benötigen, dann muss am Ender der Kommandozeile mit pure-pw ein -m angehängt werden.
nachdem sich etwas an der Passwortdatei geändert hat, muss aus der Passwortdatei /etc/pure-ftpd/pureftpd.passwd eine (neue) Passwort-Datenbank /etc/pure-ftpd/pureftpd.pdb erzeugt werden:
> pure-pw mkdb > service pure-ftpd restart
alle virtuellen Benutzer anzeigen:
> pure-pw list fritz /home/ftpusers/./
alle Daten zu einem virtuellen Benutzer anzeigen:
> pure-pw show fritz Login : fritz Password : $1$O5VyP8o0$/M9IiimAS/dTG6Re4HW9C. UID : 1001 (fritz) GID : 1001 (fritz) Directory : /home/fritz/./ Full name : Download bandwidth : 0 Kb (unlimited) Upload bandwidth : 0 Kb (unlimited) Max files : 0 (unlimited) Max size : 0 Mb (unlimited) Ratio : 0:0 (unlimited:unlimited) Allowed local IPs : Denied local IPs : Allowed client IPs : Denied client IPs : Time restrictions : 0000-0000 (unlimited) Max sim sessions : 0 (unlimited)
Passwort eines virtuellen Benutzers ändern:
> pure-pw passwd fritz -m
einen virtuellen Benutzer löschen:
> pure-pw userdel fritz -m
Start/Stop/Status
> service pure-ftpd status > service pure-ftpd start > service pure-ftpd stop
Server-Aktivitäten anzeigen:
> pure-ftpwho +------+---------+-------+------+-------------------------------------------+ | PID | Login |For/Spd| What | File/IP | +------+---------+-------+------+-------------------------------------------+
https://wiki.hetzner.de/index.php/PureFTPd
FTP is by nature a rather unsecure protocol. Add TLS support to prevent your sessions from being vulnerable to man-in-the-middle-attacks
> aptitude install openssl
Enable TLS only mode in Pure-FTPd
> echo 2 > /etc/pure-ftpd/conf/TLS
or for a less secure version that also accepts insecure FTP connections
> echo 1 > /etc/pure-ftpd/conf/TLS
Make a private SSL key
> mkdir -p /etc/ssl/private/
Create your key (z.B. für 7300 Tage)
> openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
SSL certificates are inherently insecure if other users can read them. You must secure the certificate before it can be used by changing file permissions.
> chmod 600 /etc/ssl/private/pure-ftpd.pem
And now you need to restart Pure-FTPd
> /etc/init.d/pure-ftpd restart
fail2ban für Pure-FTPd konfigurieren
# # FTP servers # [pure-ftpd] enabled = true port = ftp,ftp-data,ftps,ftps-data filter = pure-ftpd action = iptables[name=PUREFTP, port=ftp, protocol=tcp] sendmail-whois[name=PUREFTP, dest=you@mail.com] logpath = /var/log/messages maxretry = 3
# Version vom 08. Februar 2010 failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$