Ricerca nel sito web

Configura il trasferimento file FTP sicuro utilizzando SSL/TLS in RHEL 8


Nel nostro ultimo articolo, abbiamo descritto in dettaglio come installare e configurare un server FTP in RHEL 8 Linux. In questo articolo spiegheremo come proteggere un server FTP utilizzando SSL/TLS per abilitare i servizi di crittografia dei dati per il trasferimento sicuro di file tra sistemi.

Ci auguriamo che tu abbia già un server FTP installato e funzionante correttamente. In caso contrario, utilizza la seguente guida per installarlo sul tuo sistema.

  1. Come installare, configurare e proteggere il server FTP in RHEL 8

Passaggio 1. Generazione del certificato SSL/TLS e della chiave privata

1. Crea la seguente directory per archiviare il certificato SSL/TLS e i file chiave.

mkdir -p /etc/ssl/vsftpd

2. Successivamente, genera un certificato SSL/TLS autofirmato e una chiave privata utilizzando il seguente comando.

openssl req -x509 -nodes -keyout /etc/ssl/vsftpd/vsftpd.pem -out /etc/ssl/vsftpd/vsftpd.pem -days 365 -newkey rsa:2048

Di seguito è riportata la spiegazione di ciascun flag utilizzato nel comando precedente.

  1. req – è un comando per la gestione della richiesta di firma del certificato X.509 (CSR).
  2. x509: significa gestione dei dati del certificato X.509.
  3. giorni: definisce il numero di giorni per i quali il certificato è valido.
  4. newkey: specifica il processore della chiave del certificato.
  5. rsa:2048: processore di chiavi RSA, genererà una chiave privata a 2048 bit.
  6. keyout: imposta il file di archiviazione della chiave.
  7. out – imposta il file di archiviazione del certificato, tieni presente che sia il certificato che la chiave sono archiviati nello stesso file: /etc/ssl/vsftpd/vsftpd.pem.

Il comando precedente ti chiederà di rispondere alle domande seguenti, ricorda di utilizzare valori che si applicano al tuo scenario.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Passaggio 2. Configurazione di VSFTPD per utilizzare SSL/TLS

3. Apri il file di configurazione VSFTPD per la modifica utilizzando il tuo editor della riga di comando preferito.

vi /etc/vsftpd/vsftpd.conf

Aggiungi i seguenti parametri di configurazione per abilitare SSL, quindi seleziona la versione di SSL e TLS da utilizzare, alla fine del file.

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

4. Successivamente, aggiungi le opzioni rsa_cert_file e rsa_private_key_file per specificare rispettivamente la posizione del certificato SSL e del file di chiave.

rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/ssl/vsftpd/vsftpd.pem

5. Ora aggiungi questi parametri per disabilitare le connessioni anonime dall'utilizzo di SSL e forzare tutte le connessioni non anonime su SSL.

allow_anon_ssl=NO			# disable anonymous users from using SSL
force_local_data_ssl=YES		# force all non-anonymous logins to use a secure SSL connection for data transfer
force_local_logins_ssl=YES		# force all non-anonymous logins  to send the password over SSL

6. Successivamente, aggiungi queste opzioni per disabilitare tutto il riutilizzo delle connessioni dati SSL e imposta le cifre SSL ALTA per consentire connessioni SSL crittografate.

require_ssl_reuse=NO
ssl_ciphers=HIGH

7. Devi anche specificare l'intervallo di porte (porta minima e massima) delle porte passive che verranno utilizzate da vsftpd per connessioni sicure, utilizzando pasv_min_port e pasv_max_port parametri rispettivamente. Inoltre, puoi facoltativamente abilitare il debug SSL per scopi di risoluzione dei problemi, utilizzando l'opzione debug_ssl.

pasv_min_port=40000
pasv_max_port=50000
debug_ssl=YES

8. Infine, salva il file e riavvia il servizio vsftpd affinché le modifiche di cui sopra abbiano effetto.

systemctl restart vsftpd

9. Un'altra attività fondamentale da eseguire prima di poter accedere in modo sicuro al server FTP è aprire le porte 990 e 40000-50000 nel sistema firewall. Ciò consentirà le connessioni TLS al servizio vsftpd e aprirà l'intervallo di porte passive definite rispettivamente nel file di configurazione VSFTPD, come segue.

firewall-cmd --zone=public --permanent –add-port=990/tcp
firewall-cmd --zone=public --permanent –add-port=40000-50000/tcp
firewall-cmd --reload

Passaggio 3: installa FileZilla per connetterti in modo sicuro al server FTP

10. Per connettersi in modo sicuro al server FTP, è necessario un client FTP che supporti connessioni SSL/TLS come FileZilla – è un open source , client FTP, SFTP e FTPS multipiattaforma ampiamente utilizzato che supporta le connessioni SSL/TLS per impostazione predefinita.

Installa FileZilla in Linux utilizzando il gestore pacchetti predefinito come segue:

sudo apt-get install filezilla   		#Debian/Ubuntu
yum install epel-release filezilla		#On CentOS/RHEL
dnf install filezilla			        #Fedora 22+
sudo zypper install filezilla			#openSUSE

11. Dopo aver installato il pacchetto Filezilla, cercalo nel menu di sistema e aprilo. Per connettere rapidamente il server FTP remoto, dall'interfaccia principale, fornire l'indirizzo IP dell'host, il nome utente e la password dell'utente. Quindi fai clic su Connessione rapida.

12. Quindi l'applicazione ti chiederà di consentire una connessione sicura utilizzando il certificato sconosciuto e autofirmato. Fai clic su OK per procedere.

Se la configurazione sul server va bene, la connessione dovrebbe avere esito positivo, come mostrato nello screenshot seguente.

13. Infine, verifica lo stato della connessione sicura FTP provando a caricare file dal tuo computer al server come mostrato nello screenshot successivo.

È tutto! In questo articolo, abbiamo mostrato come proteggere un server FTP utilizzando SSL/TLS per il trasferimento sicuro di file in RHEL 8. Questa è la seconda parte della nostra guida completa per installare, configurare e proteggere un server FTP in RHEL 8. Per condividere qualsiasi domanda o pensiero, utilizza il modulo di feedback qui sotto.