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.
vsftpd
Paket 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.conf
Konfiguration 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
ftp
Befehl. 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.key
und 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.conf
Konfiguration 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.conf
Konfiguration 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.conf
Konfiguration und ändern Sieanonymous_enable
undallow_anon_ssl
Zeilen 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