Schwierigkeiten mit FTP-Servern und Firewall:
Wenn Sie eine Firewall für einen Host konfigurieren, auf dem ein FTP-Server läuft, müssen Sie normalerweise die Ports 1024-65365 offen lassen, da Sie nie wissen, über welchen Port der FTP-Server Daten an den FTP-Client sendet. Diese Situation ist ziemlich kritisch, wenn Sie einen Host haben, der sensible Ports über 1024 hat, die für das Internet geschlossen werden müssen. Natürlich können Sie jeden Port auswählen und in der Firewall schließen, aber ich bevorzuge definitiv die Firewall-Methode, die alles schließt und nur die Ports öffnet, die für den Zugriff aus dem Internet benötigt werden. Hier ist pure-ftpd Zur Rettung kommen. Dieser FTP-Server kann den Portbereich auswählen, der zum Übertragen von Daten an den FTP-Client verwendet wird. Dies erleichtert die Konfiguration einer Firewall erheblich.
Im folgenden Beispiel hat pure-ftp die folgende Konfiguration:
– bietet FTP und FTPS mit inhaftierten Benutzern (Benutzer sind auf ihr Home-Verzeichnis beschränkt).
– keine anonymen Clients
– IP-Version Nur 4
– Ports für die Datenübertragung sind auf den Bereich 20000-20099 beschränkt
SCHRITTE: apt-get install pure-ftpd
echo '20000 20099' > /etc/pure-ftpd/conf/PassivePortRange
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
echo "yes" > /etc/pure-ftpd/conf/IPV4Only
echo "1" > /etc/pure-ftpd/conf/TLS
Wenn Sie Clients zwingen möchten, TLS nur für FTP-Verbindungen zu verwenden, verwenden Sie den Befehlecho "3" > /etc/pure-ftpd/conf/TLS
Ausnahmen von Chroot
Wenn Sie alle Benutzer mit Ausnahme einiger vertrauenswürdiger Benutzer auf ihre Home-Verzeichnisse beschränken möchten, müssen Sie:
– eine neue Systemgruppe erstellen, in der Sie die vertrauenswürdigen Benutzer hinzufügen
– anstatt zu verwenden obiger Befehl 'echo "yes"> /etc/pure-ftpd/conf/ChrootEveryone'
die GID der vertrauenswürdigen Gruppe in die Datei /etc/pure-ftpd/conf/TrustedGID einfügen.
Beispiel: Wir wollen Chroot für alle Benutzer außer „martin“ und „jannine“. Das bedeutet, dass martin und jannine in anderen Teilen des Systems als ihren Home-Verzeichnissen navigieren können, aber alle anderen Benutzer auf ihre Home-Verzeichnisse beschränkt sind:groupadd ftptrusted
usermod -G ftptrusted martin
usermod -G ftptrusted jannine
GID=$(grep ftptrusted /etc/group | cut -d: -f3)
echo "$GID" > /etc/pure-ftpd/conf/TrustedGID
rm /etc/pure-ftpd/conf/ChrootEveryone
HINWEIS: Um eine ordnungsgemäß signierte Zertifikatsdatei für pure-ftpd zu erstellen, stellen Sie sicher, dass Sie die beiden folgenden Komponenten in der Datei /etc/ssl/private/pure-ftpd.pem haben :
– Privater Schlüssel (im PEM-Format)
– Zertifikat (im PEM-Format)
Wenn Sie es stattdessen mit einem selbstsignierten Zertifikat ausführen möchten, führen Sie die folgenden Befehle aus:mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 97300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
Starten Sie pure-ftpd neu, um die neue Konfiguration und das neue Zertifikat zu registrieren.service pure-ftpd restart