Dieses Tutorial bietet Lesern Anweisungen zum Installieren und Konfigurieren eines VSFTPD-FTP-Servers auf einem RHEL 8 / CentOS 8-Server. Diese Anleitung beginnt zunächst mit einer grundlegenden Standardkonfiguration, zu der wir die sichere TLS-Konfiguration, den anonymen Zugriff und die Konfiguration des passiven Modus hinzufügen werden.
In diesem Tutorial lernen Sie:
- So installieren Sie den VSFTPD-FTP-Server.
- So öffnen Sie die Firewall für eingehende FTP-Verbindungen.
- So sichern Sie eine FTP-Verbindung mit TLS.
- Anonyme Verbindungen zulassen.
VSFTPD-FTP-Verbindung auf RHEL 8 / CentOS 8 Server/Workstation. Softwareanforderungen und verwendete Konventionen
| Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
|---|---|
| System | RHEL 8 / CentOS 8 |
| Software | vsftpd:Version 3.0.3 |
| Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
| Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Grundlegende VSFTPD-Konfiguration Schritt-für-Schritt-Anleitung
In diesem Abschnitt werden wir einfach den VSFTPD-FTP-Server installieren, Firewall-Ports öffnen und die Verbindungen testen.
- Installieren Sie das VSFTPD-Paket.
vsftpdPaket kann mit dem dnf-Paketmanager installiert werden:# dnf install vsftpd
- Erstellen Sie eine Kopie und überprüfen Sie die standardmäßige VSFTPD-Konfigurationsdatei. Erstellen Sie zunächst eine Kopie der ursprünglichen Konfigurationsdatei:
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
Beginnen wir mit einer sauberen Konfigurationsdatei:
# grep -v ^# /etc/vsftpd/vsftpd.conf_orig > /etc/vsftpd/vsftpd.conf
Ihr neuer
/etc/vsftpd/vsftpd.confKonfiguration sollte ähnlich wie unten aussehen:anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES - Starten Sie den VSFTPD-Daemon und stellen Sie ihn so ein, dass er nach dem Neustart gestartet wird:
# systemctl start vsftpd # systemctl enable vsftpd
- Firewall-FTP-Port 21 für eingehende Verbindungen öffnen:
# firewall-cmd --zone=public --permanent --add-service=ftp # firewall-cmd --reload
- Testen Sie die FTP-Verbindung vom entfernten Host mit
ftpBefehl. Verwenden Sie Ihre regulären Benutzerdaten, um sich anzumelden. Erstellen Sie beispielsweise eine FTP-Verbindung zum Hosten vonrhel8-ftp.linuxconfig.org:# ftp rhel8-ftp.linuxconfig.org Connected to rhel8-ftp.linuxconfig.org. 220 (vsFTPd 3.0.3) Name (rhel8-ftp.linuxconfig.org:lubos): linuxconfig 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Damit sind die grundlegende Konfiguration und das Testen von VSFTPD abgeschlossen. Im nächsten Abschnitt fügen wir eine Sicherheitsebene hinzu, indem wir unseren VSFTPD-FTP-Server mit TLS konfigurieren.
Schritt-für-Schritt-Anleitung zum Sichern von VSFTPD mit einer TLS-Verbindung
In diesem Abschnitt werden wir einfach den VSFTPD-FTP-Server installieren, Firewall-Ports öffnen und die Verbindungen testen.
- Installieren Sie OpenSSL. Dieses Paket ist möglicherweise bereits auf Ihrem RHEL8-System verfügbar. Um OpenSSL zu installieren, führen Sie Folgendes aus:
# dnf install openssl
- Generieren Sie ein selbstsigniertes Zertifikat oder verwenden Sie Ihr vorhandenes Zertifikat. In diesem Beispiel generieren wir den privaten Schlüssel
vsftpd.keyund das signierte Zertifikatvsftpd.crt. Sie werden aufgefordert, einige Fragen zu beantworten. Fühlen Sie sich frei, die meisten von ihnen als Standard zu belassen, außerCommon Name:# openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/vsftpd.key -x509 -days 365 -out /etc/pki/tls/certs/vsftpd.crt Generating a RSA private key ..................+++++ ....+++++ writing new private key to '/etc/pki/tls/private/vsftpd.key' ----- 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) []:rhel8-ftp.linuxconfig.org Email Address []: #
- Konfigurieren Sie VSFTPD für die TLS-verschlüsselte Verbindung. Öffnen Sie Ihre vorhandene VSFTPD
/etc/vsftpd/vsftpd.confKonfiguration und fügen Sie zusätzlich zu den vorhandenen Zeilen die folgende Konfiguration hinzu:rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt rsa_private_key_file=/etc/pki/tls/private/vsftpd.key ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH - VSFTPD neu starten:
# systemctl restart vsftpd
- Testen Sie die TLS-VSFTPD-FTP-Verbindung.
HINWEIS
Bitte beachten Sie, dass Sie zu diesem Zeitpunkt keine passive FTP-Verbindung von einem Remote-Host herstellen können, es sei denn, Sie haben die entsprechenden Ports auf der Firewall Ihres RHEL 8-Servers geöffnet.Verwenden Sie einen FTP-Client, der TLS-Verbindungen unterstützt, wie zum Beispiel FileZilla:
Herstellen einer TLS-Verbindung zum VSFTPD-ftp-RHEL-8-Server.
Verbunden mit VSFTPS RHEL 8-Server mit sicherer TLS-Verbindung.
Alles scheint in Ordnung zu sein. Im nächsten Abschnitt werden wir unserem VSFTPD-FTP-Server eine passive Verbindungsfunktion hinzufügen.
Fügen Sie Schritt-für-Schritt-Anleitungen für VSFTPD den passiven Modus hinzu
- Öffnen Sie Ihre bestehende VSFTPD
/etc/vsftpd/vsftpd.confKonfiguration und fügen Sie zusätzlich zu den bestehenden Zeilen folgende Konfiguration hinzu:pasv_enable=YES pasv_min_port=10000 pasv_max_port=10100 - VSFTPD neu starten:
# systemctl restart vsftpd
- Öffnen Sie den Firewall-Portbereich, um passive Ports aufzunehmen:
# firewall-cmd --permanent --zone=public --add-port=10000-10100/tcp # firewall-cmd --reload
Schritt-für-Schritt-Anleitung für anonymen VSFTPD-Zugriff zulassen
- Öffnen Sie Ihre bestehende VSFTPD
/etc/vsftpd/vsftpd.confKonfiguration und ändern Sieanonymous_enableundallow_anon_sslZeilen aufYES:anonymous_enable=YES allow_anon_ssl=YES - VSFTPD neu starten:
# systemctl restart vsftpd
Anhang
Zu Ihrer Bequemlichkeit die abschließende /etc/vsftpd/vsftpd.conf Konfigurationsdatei ist unten gezeigt:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100