So installieren Sie Pure-FTPd mit TLS und virtuellen Benutzern unter OpenSUSE Leap 42.1
Pure-FTPd ist ein kostenloser und leichter FTP-Server auf Basis von Troll-FTPd, die Entwicklung begann 2001 und läuft auf vielen Unix-ähnlichen Betriebssystemen wie Linux, *BSD, Solaris und HP-UX. Pure-FTPd hat viele Funktionen wie virtuelle Domains, chroot home directory, virtuelle Benutzer, TLS/SSL-Unterstützung, virtuelle Quota und vieles mehr.
In diesem Tutorial zeige ich Ihnen, wie Sie pure-ftpd unter OpenSUSE Leap 42.1 installieren und konfigurieren. Ich zeige Ihnen, wie Sie pure-ftpd mit TLS/SSL einrichten und dann virtuelle Benutzer einrichten.
Voraussetzung
- OpenSUSE Sprung 42.1
- Root-Rechte
- OpenSUSE, Zypper Wissen
Schritt 1 – Installation und Konfiguration von SuSEfirewall2
SuSEfirewall2 ist ein Skript zum Erzeugen der Firewall-Konfiguration in der Datei’/etc/sysconfig/SuSEfirewall2′. Wir werden SuSEfirewall2 installieren und dann die Ports für SSH und den FTP-Dienst öffnen.
Installieren Sie SuSEfirewall2 mit zypper:
zypper in SuSEfirewall2
Bearbeiten Sie anschließend die Konfigurationsdatei ‚/etc/sysconfig/SuSEfirewall2‘ mit vim:
vim /etc/sysconfig/SuSEfirewall2
Füge die neuen Dienste ssh und FTP zu Zeile 253 hinzu:
FW_SERVICES_EXT_TCP="ssh ftp"
Speichern und beenden.
Starten Sie nun SuSEfirewall2 mit dem Befehl systemctl:
systemctl start SuSEfirewall2
Schritt 2 – Installation und Konfiguration von Pure-FTPd
In diesem Schritt werden wir pure-ftpd mit OpenSSL für die TLS/SSL-Konfiguration installieren und den Benutzer und die Gruppe pure-ftpd konfigurieren.
Installieren Sie die Anwendungen mit Zypper wie unten gezeigt:
zypper in pure-ftpd openssl
Füge nun die neue Gruppe‘ftpgroup‚ und den neuen Benutzer für den Master’FTP-Benutzer‘ namens‘ftpuser‚ zur Gruppe hinzu.
groupadd ftpgroup useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Gehen Sie in das Verzeichnis pure-ftpd und bearbeiten Sie die Konfigurationsdatei’pure-ftpd.conf‘ mit dem vim-Editor:
cd /etc/pure-ftpd/ vim pure-ftpd.conf
Ändern Sie den Wert in Zeile 81 auf’yes‘ für die Deaktivierung des anonymen Benutzers.
NoAnonymous yes
Entkommentieren Sie die Zeile 131, um das Backend zu konfigurieren. Pure-ftpd unterstützt MySQL, PostgreSQL und LDAP als Backend, aber in diesem Tutorial werden wir’PureDB‘ für die Backed verwenden.
PureDB /etc/pure-ftpd/pureftpd.pdb
Kommentieren Sie die PAMAuthentifizierungszeile aus, um die PAM-Authentifizierung auf Zeile 141 zu deaktivieren, da wir PureDB als Authentifizierungsquelle verwenden werden.
#PAMAuthentication yes
Speichern und beenden.
Schritt 3 – TLS/SSL für Pure-FTPd konfigurieren
Erzeugen Sie mit dem Befehl openssl eine neue selbstsignierte Zertifikatsdatei im Verzeichnis’/etc/ssl/private‘:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365
Ändern Sie die Berechtigungen der Zertifikatsdatei auf 0600:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Gehen Sie anschließend zurück zum pure-ftpd-Verzeichnis und bearbeiten Sie die Konfigurationsdatei, um die TLS/SSL-Unterstützung für die Client-Verbindung zu aktivieren.
cd /etc/pure-ftpd/ vim pure-ftpd.conf
Entkommentieren Sie die Zeile 439, um TLS zu aktivieren.
TLS 1
Entkommentiere Zeile 449 und füge eine neue Option hinzu, um sie sicherer zu machen.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
Entkommentieren Sie die Zeile 445, um die Zertifikatsdatei zu definieren.
CertFile /etc/ssl/private/pure-ftpd.pem
Speichern und beenden.
Starten Sie nun pure-ftpd mit dem Befehl systemctl:
systemctl start pure-ftpd
Schritt 4 – Virtuelle Benutzer konfigurieren
Pure-FTPd bietet Funktionen zum Erstellen und Verwenden von virtuellen Benutzern anstelle von Benutzern mit echtem System (Linux). Pure-FTPd bietet mehrere Authent-Backends und die Konfiguration des virtuellen Benutzers hängt von dem Backend ab, das vom Server verwendet wird. In Schritt 2 haben wir ‚PureDB‘ als Backend festgelegt.
Wir können einen neuen virtuellen Benutzer mit dem Befehl ‚pure-pw‘ von pure-ftpd erstellen. In diesem Schritt erstellen wir einen neuen virtuellen Benutzer namens’shiro‘ mit dem Verzeichnis’/srv/ftp/shiro‘ als ftp-Hauptverzeichnis und der Benutzer wird in dieses Verzeichnis chrootisiert, so dass er nicht auf die anderen Systemverzeichnisse zugreifen kann.
Erstellen Sie den neuen virtuellen Benutzer mit pure-pw:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro
Erstellen Sie das Verzeichnis für den virtuellen Benutzer und ändern Sie den Besitzer dieses Verzeichnisses auf den Master’FTP-Benutzer‘.
mkdir -p /srv/ftp/shiro chown -R ftpuser.ftpgroup /srv/ftp/shiro
Als nächstes müssen wir die Änderungen mit dem Befehl unten speichern:
pure-pw mkdb
Nun ist der Benutzer shiro bereit für die Verwendung, wir könnenFTPp von der Kommandozeile oder FileZilla for GUI-Schnittstelle verwenden, um eine Verbindung zum Server herzustellen.
Hinweis:
pure-pw hat mehr Befehlsoptionen, Sie können die‘pure-pw help‚ verwenden, um alle nützlichen Befehle anzuzeigen.
Schritt 5 – Prüfung
Ich werde den FTP-Befehl im Terminal für den Test verwenden. Öffnen Sie Ihr Terminal und geben Sie „ftp“ ein:
ftp
Als nächstes geben Sie den pure-ftpd Server ip ein:
open 192.168.43.69
Melden Sie sich mit dem Benutzer’shiro‘ und dem Passwort an und drücken Sie dann’Enter‘.
Versuchen Sie, die Datei mit dem Befehl’put‘ hochzuladen:
put picture.png mypict.png
Nun sehen Sie die Datei mypict.png auf dem Server mit dem Befehl ls unten:
ls