Ziel
Das Ziel besteht darin, zunächst einen einfachen ProFTPD-Server auf CentOS 7 zu konfigurieren. Sobald wir einen grundlegenden FTP-Server eingerichtet haben, werden wir den passiven FTP-Modus hinzufügen und die Sicherheit erhöhen, indem wir Transport Layer Security ( TLS ) hinzufügen.
Zuletzt fügen wir eine optionale anonyme Konfiguration hinzu, damit sich anonyme Benutzer ohne Benutzername und Passwort beim FTP-Server anmelden können.
Betriebssystem- und Softwareversionen
- Betriebssystem: – CentOS Linux-Version 7.5.1804
- Software: – ProFTPD-Version 1.3.5e
Anforderungen
Privilegierter Zugriff auf Ihr Ubuntu-System als root oder über sudo
Befehl ist erforderlich.
Schwierigkeit
MITTEL
Konventionen
- # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von
sudo
Befehl - $ – gegebene Linux-Befehle, die als normaler nicht-privilegierter Benutzer ausgeführt werden sollen
Anleitung
Grundlegende FTP-Konfiguration
Beginnen wir mit der grundlegenden Installation und Konfiguration des ProFTP-Servers. Dies umfasst die Installation, Definition von Firewall-Regeln und Client-Tests.
Server-Setup
Der ProFTPD-FTP-Server ist Teil eines EPEL-Repositorys. Daher besteht der erste Schritt darin, das EPEL-Repository zu aktivieren und dann den ProFTPD-Server zu installieren:
# yum install epel-release # yum install proftpd
Starten Sie als nächstes den ProFTPD-Server und bestätigen Sie den korrekten Start, indem Sie nach einem geöffneten Port 21
suchen
# service proftpd start # ss -nlt
Als nächstes müssen wir ein Ganzes in die Firewall des Servers stecken, um eingehenden Datenverkehr auf Port 21
zuzulassen
# firewall-cmd --add-port=21/tcp --permanent # firewall-cmd --reload
Zum Bestätigen eines geöffneten eingehenden Ports 21
ausführen:
# firewall-cmd --list-portsBasis-FTP-Server mit ProFTPD unter CentOS 7 konfigurieren
In diesem Stadium kann sich jeder vorhandene Systembenutzer per FTP beim neu konfigurierten ProFTPD-Server anmelden. Optional können wir einen neuen Benutzer erstellen, z. lubos
mit einem Zugriff auf das Verzeichnis /var/ftp-share
:
# useradd lubos -s /sbin/nologin -d /var/ftp-share # passwd lubos # chmod -R 750 /var/ftp-share # setsebool -P allow_ftpd_full_access=1
Client-Verbindung
An diesem Punkt sollten wir in der Lage sein, eine FTP-Verbindung von einem Remote-Client-Computer herzustellen. Der einfachste Test ist die Verwendung von ftp
Befehl.
Da unser ProFTPD-Server über ftp.linuxconfig.org
aufgelöst werden kann Hostname und Benutzer lubos
ist vorhanden ausführen:
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp>HINWEIS:Bitte beachten Sie, dass wir derzeit nur „aktive FTP-Verbindungen“ herstellen können! Jeder Versuch, eine „passive FTP-Verbindung“ herzustellen, schlägt fehl.
Passiv-Modus-FTP-Konfiguration
Server-Setup
Um unserem FTP-Server zu ermöglichen, auch passive FTP-Verbindungen zu akzeptieren, führen Sie die folgenden Befehle aus, um passive Verbindungen auf dem IANA-registrierten ephemeren Portbereich zu aktivieren:
echo "PassivePorts 49152 65534" >> /etc/proftpd.conf
Starten Sie den ProFTPD-Server neu:
# service proftpd restart
Öffnen Sie die Firewall für Ports im Bereich 49152-65534
:
# firewall-cmd --add-port=49152-65534/tcp --permanent # firewall-cmd --reload
Bestätigen Sie, dass die Ports korrekt geöffnet wurden:
# firewall-cmd --list-portsKonfigurieren Sie den ProFTPD-Server, um passive FTP-Verbindungen zu empfangen.
FTP-Client-Verbindung
Wie zuvor können wir jetzt die passive FTP-Verbindung testen, indem wir den ftp
verwenden Befehl. Stellen Sie sicher, dass Sie diesmal den -p
verwenden Option wie unten gezeigt:
$ ftp -p ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 230 User lubos logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,1,111,209,252). 150 Opening ASCII mode data connection for file list 226 Transfer complete ftp>
Alles funktioniert wie erwartet!
Sicherer FTP-Server mit TLS
Server-Setup
Falls Sie vorhaben, Ihren FTP-Server außerhalb Ihres lokalen Netzwerks zu verwenden, wird empfohlen, eine Art Verschlüsselung zu verwenden. Glücklicherweise ist die Konfiguration von ProFTPD mit TLS extrem einfach. Installieren Sie zuerst, falls noch nicht vorhanden, den openssl
Paket:
# yum install openssl
Erstellen Sie als Nächstes ein Zertifikat mit dem folgenden Befehl. Der einzige erforderliche Wert ist Common Name
das ist der Hostname Ihres FTP-Servers :
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem Generating a 1024 bit RSA private key ...++++++ .......++++++ writing new private key to '/etc/pki/tls/certs/proftpd.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:ftp.linuxconfig.org Email Address []:
Öffnen Sie als Nächstes als Root-Benutzer /etc/sysconfig/proftpd
Verwenden Sie Ihren bevorzugten Texteditor und ändern Sie:
FROM: PROFTPD_OPTIONS="" TO: PROFTPD_OPTIONS="-DTLS"
Sobald Sie fertig sind, starten Sie den ProFTPD-Server neu:
# service proftpd restart
Clientverbindung
Dieses Mal verwenden wir FileZilla als unseren FTP-Testclient:
Erstellen Sie eine neue FTP-Verbindung. Stellen Sie zum Testen von TLS sicher, dass Sie eine korrekteEncryption
auswählen und Logon Type
. Der FTP-Client warnt Sie vor dem Unknown Certificate
. Aktivieren Sie Always Trust
und drücken Sie OK
. TLS-verschlüsselte Verbindung erfolgreich. Anonymen FTP-Benutzer konfigurieren
Server-Setup
Um anonymen Benutzern die Anmeldung beim FTP-Server zu ermöglichen, öffnen Sie /etc/sysconfig/proftpd
Verwenden Sie Ihren bevorzugten Texteditor und ändern Sie:
FROM: PROFTPD_OPTIONS="-DTLS" TO: PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"
Oben gehen wir davon aus, dass Sie TLS bereits zuvor aktiviert haben. Wenn Sie fertig sind, starten Sie den FTP-Server neu:
# service proftpd restart
Clientverbindung
Verwenden von FileZilla als unseren FTP-Testclient:
AlsLogon Type
Wählen Sie Anonymous
Anonyme FTP-Verbindung erfolgreich. Anhang
FTP-Zugriff des Benutzers sperren/verweigern
Falls Sie den Zugriff auf den FTP-Server eines Systembenutzers sperren/verweigern müssen, fügen Sie seinen/ihren Benutzernamen in /etc/ftpusers
ein . Ein Benutzername pro Zeile. Dadurch schlägt jeder Benutzerversuch, sich anzumelden, mit 530
fehl Anmeldefehler:
$ ftp ftp.linuxconfig.org Connected to ftp.linuxconfig.org. 220 FTP Server ready. Name (ftp.linuxconfig.org:lubos): lubos 331 Password required for lubos Password: 530 Login incorrect. Login failed. Remote system type is UNIX. Using binary mode to transfer files. ftp>