Benutzer-Werkzeuge

Webseiten-Werkzeuge


pure-ftp

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
pure-ftp [2017-06-20 10:15:23] – [weiter Möglichkeiten zum besseren absichern] manfredpure-ftp [2017-06-20 11:17:02] (aktuell) manfred
Zeile 1: Zeile 1:
 +====== Pure-FTPd ======
 +
 +  * [[https://www.server-world.info/en/note?os=Ubuntu_16.04&p=ftp&f=3]]
 +  * [[https://www.server-world.info/en/note?os=Ubuntu_16.04&p=ftp&f=8]]
 +
 +
 +===== Ubuntu 14.04 LTS =====
 +
 +  * [[http://articlebin.michaelmilette.com/setting-up-pure-ftpd-in-ubuntu/]]
 +  * **[[https://help.ubuntu.com/community/PureFTP]]**
 +
 +Installation:
 +<file text>
 +> 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}
 +</file>
 +
 +Mit Grafischer Gtk-Oberfläche für PureFTPd:
 +<file text>
 +> 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}
 +</file>
 +
 +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                   |
 +  +------+---------+-------+------+-------------------------------------------+
 +
 +
 +==== weiter Möglichkeiten zum besseren absichern ====
 +
 +
 +=== mit SSL Zertifikat für TLS ===
 +
 +[[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 ===
 +
 +[[https://www.howtoforge.com/community/threads/fail2ban-pureftp.40177/#post-207610|fail2ban für Pure-FTPd konfigurieren]]
 +
 +<file bash /etc/fail2ban/jail.conf>
 +#
 +# 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
 +</file>
 +
 +<file bash /etc/fail2ban/filter.d/pure-ftpd.conf>
 +# Version vom 08. Februar 2010
 +failregex = pure-ftpd(?:\[\d+\])?: \(.+?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]\s*$
 +</file>