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

Einen reinen PW-Benutzer hinzufügen

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

FTP-Verbindung

Referenz

Das könnte dich auch interessieren …