Questo tutorial fornisce ai lettori le istruzioni su come installare e configurare un server ftp VSFTPD su un server RHEL 8 / CentOS 8. Questa guida inizierà innanzitutto con una configurazione predefinita di base alla quale aggiungeremo la configurazione TLS sicura, l'accesso anonimo e la configurazione in modalità passiva.
In questo tutorial imparerai:
- Come installare il server ftp VSFTPD.
- Come aprire il firewall per le connessioni FTP in entrata.
- Come proteggere la connessione FTP con TLS.
- Come consentire connessioni anonime.

Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | RHEL 8 / CentOS 8 |
Software | vsftpd:versione 3.0.3 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Istruzioni passo passo per la configurazione di base di VSFTPD
In questa sezione installeremo semplicemente il server ftp VSFTPD, apriremo le porte del firewall e testeremo le connessioni.
- Installa il pacchetto VSFTPD.
vsftpd
il pacchetto può essere installato utilizzando il gestore di pacchetti dnf:# dnf install vsftpd
- Fai una copia e rivedi il file di configurazione VSFTPD predefinito. Per prima cosa fai una copia del file di configurazione originale:
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
Iniziamo con un file di configurazione pulito:
# grep -v ^# /etc/vsftpd/vsftpd.conf_orig > /etc/vsftpd/vsftpd.conf
Il tuo nuovo
/etc/vsftpd/vsftpd.conf
la configurazione dovrebbe essere simile a quella seguente: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
- Avvia il demone VSFTPD e impostalo per l'avvio dopo il riavvio:
# systemctl start vsftpd # systemctl enable vsftpd
- Apri le connessioni in entrata della porta FTP 21 del firewall:
# firewall-cmd --zone=public --permanent --add-service=ftp # firewall-cmd --reload
- Testare la connessione FTP dall'host remoto utilizzando il
ftp
comando. Usa le tue credenziali utente regolari per accedere. Ad esempio, crea una connessione FTP per ospitarerhel8-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>
Questo conclude la configurazione e il test di base di VSFTPD. Nella prossima sezione aggiungeremo un livello di sicurezza configurando il nostro server ftp VSFTPD utilizzando TLS.
Protezione di VSFTPD con la connessione TLS istruzioni dettagliate
In questa sezione installeremo semplicemente il server ftp VSFTPD, apriremo le porte del firewall e testeremo le connessioni.
- Installa OpenSSL. Questo pacchetto potrebbe essere già disponibile sul tuo sistema RHEL8. Per installare OpenSSL esegui:
# dnf install openssl
- Genera un certificato autofirmato o utilizza il tuo certificato esistente. In questo esempio genereremo la chiave privata
vsftpd.key
e il certificato firmatovsftpd.crt
. Ti verrà chiesto di rispondere ad alcune domande. Sentiti libero di lasciare la maggior parte di essi come predefiniti tranneCommon 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 []: #
- Configura VSFTPD per la connessione crittografata TLS. Apri il tuo
/etc/vsftpd/vsftpd.conf
configurazione e aggiungere la seguente configurazione in aggiunta alle righe esistenti: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
- Riavvia VSFTPD:
# systemctl restart vsftpd
- Testare la connessione FTP TLS VSFTPD.
NOTA
Tieni presente che, a meno che tu non abbia aperto le porte appropriate sul firewall del tuo server RHEL 8, non sarai in grado di effettuare una connessione ftp passiva da un host remoto a questo punto.Utilizzare un client FTP che supporti le connessioni TLS come ad esempio FileZilla:
Stabilire una connessione TLS al server VSFTPD ftp RHEL 8.
Connesso al server VSFTPS RHEL 8 con connessione TLS sicura.
Tutto sembra essere in ordine. Nella prossima sezione aggiungeremo una funzionalità di connessione passiva al nostro server ftp VSFTPD.
Aggiungi la modalità passiva alle istruzioni passo passo di VSFTPD
- Apri il tuo
/etc/vsftpd/vsftpd.conf
configurazione e aggiungere la seguente configurazione oltre alle righe esistenti:pasv_enable=YES pasv_min_port=10000 pasv_max_port=10100
- Riavvia VSFTPD:
# systemctl restart vsftpd
- Apri l'intervallo di porte del firewall per ospitare le porte passive:
# firewall-cmd --permanent --zone=public --add-port=10000-10100/tcp # firewall-cmd --reload
Consenti l'accesso anonimo a VSFTPD istruzioni dettagliate
- Apri il tuo
/etc/vsftpd/vsftpd.conf
configurazione e modificaanonymous_enable
eallow_anon_ssl
righe aYES
:anonymous_enable=YES allow_anon_ssl=YES
- Riavvia VSFTPD:
# systemctl restart vsftpd
Appendice
Per tua comodità, il /etc/vsftpd/vsftpd.conf
finale il file di configurazione è mostrato di seguito:
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