Ricerca nel sito web

Connessioni ProFTPD sicure utilizzando il protocollo TLS/SSL su RHEL/CentOS 7


Per sua natura, il protocollo FTP è stato progettato come un protocollo non sicuro e tutti i dati e le password vengono trasferiti in testo semplice, rendendo molto semplice il lavoro di terzi nell'intercettare tutte le transazioni client-server FTP, in particolare nomi utente e password utilizzate nel processo di autenticazione.

Requisiti

  1. Installazione del server ProFTPD su RHEL/CentOS 7
  2. Abilita l'account anonimo per Proftpd Server in RHEL/CentOS 7

Questo tutorial ti guiderà su come proteggere e crittografare la comunicazione FTP sul server ProFTPd in CentOS/RHEL 7 , utilizzando TLS (Transport Layer Security) con estensione FTPS esplicita (pensa a FTPS come a ciò che HTTPS è per il protocollo HTTP).

Passaggio 1: creare il file di configurazione del modulo Proftpd TLS

1. Come discusso nel precedente tutorial di Proftpd riguardante l'account anonimo, questa guida utilizzerà lo stesso approccio anche per gestire i futuri file di configurazione di Proftpd come moduli, con l'aiuto di enabled_mod e < b>disabled_mod, che ospiteranno tutte le funzionalità estese del server.

Quindi, crea un nuovo file con il tuo editor di testo preferito chiamato tls.conf nel percorso Proftpd disabled_mod e aggiungi le seguenti direttive.

nano /etc/proftpd/disabled_mod/tls.conf

Aggiungi il seguente estratto di configurazione del file TLS.

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

2. Se utilizzi browser o client FTP che non supportano le connessioni TLS, commenta la riga TLSRequired on per consentire connessioni TLS e non TLS contemporaneamente e evitare il messaggio di errore come nello screenshot qui sotto.

Passaggio 2: crea file di certificato SSL per TLS

3. Dopo aver creato il file di configurazione del modulo TLS. che abiliterà FTP su TLS su Proftpd, è necessario generare il certificato e la chiave SSL per utilizzare la comunicazione sicura sul server ProFTPD con l'aiuto del pacchetto OpenSSL.

yum install openssl

Puoi utilizzare un singolo comando lungo per generare coppie di certificati e chiavi SSL, ma per semplificare le cose puoi creare un semplice script bash che genererà coppie SSL con il nome desiderato e assegnerà le autorizzazioni corrette per il file chiave.

Crea un file bash denominato proftpd_gen_ssl su /usr/local/bin/ o su qualsiasi altro percorso di sistema eseguibile (definito dalla variabile ` PATH ).

nano /usr/local/bin/proftpd_gen_ssl

Aggiungi il seguente contenuto ad esso.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. Dopo aver creato il file sopra, assegnagli i permessi di esecuzione, assicurati che la directory /etc/ssl/private esista ed esegui lo script per creare il certificato e la chiave SSL coppie.

chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl

Fornisci al certificato SSL le informazioni richieste richieste che sono autoesplicative, ma presta attenzione al Nome comune in modo che corrisponda al Nome di dominio completamente qualificato del tuo host – FQDN.

Passaggio 3: abilitare TLS sul server ProFTPD

5. Poiché il file di configurazione TLS creato in precedenza punta già al certificato SSL e al file chiave corretti, l'unica cosa che rimane è attivare il modulo TLS creando un collegamento simbolico di tls.conf nella directory enabled-mod e riavvia il demone ProFTPD per applicare le modifiche.

ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
systemctl restart proftpd

6. Per disabilitare il modulo TLS è sufficiente rimuovere il collegamento simbolico tls.conf dalla directory enabled_mod e riavviare il server ProFTPD per applicare le modifiche.

rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd

Passaggio 4: aprire il firewall per consentire la comunicazione FTP su TLS

7. Affinché i client possano accedere a ProFTPD e trasferire in modo sicuro i file in Modalità passiva è necessario aprire l'intero intervallo di porte compreso tra 1024 e 65534 sul firewall RHEL/CentOS, utilizzando i seguenti comandi.

firewall-cmd --add-port=1024-65534/tcp  
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload

Questo è tutto. Ora il tuo sistema è pronto per accettare la comunicazione FTP su TLS da un lato client.

Passaggio 5: accedi a ProFTPD su TLS dai client

8. I browser Web in genere non dispongono di supporto integrato per FTP su protocollo TLS, pertanto tutte le transazioni vengono effettuate tramite FTP non crittografato. Uno dei client FTP più eccellenti è FileZilla, che è interamente Open Source e può essere eseguito su quasi tutti i principali sistemi operativi.

Per accedere a FTP su TLS da FileZilla apri Gestione siti, scegli FTP su Protocollo e Richiedi FTP esplicito su TLS su Dal menu a discesa Crittografia, seleziona Tipo di accesso come Normale, inserisci le tue credenziali FTP e premi Connetti per comunicare con il server.

9. Se è la prima volta che ti connetti al server ProFTPD, dovrebbe apparire un popup con il nuovo certificato, seleziona la casella che dice Considera sempre attendibile il certificato per il futuro sessioni e premi OK per accettare il certificato e autenticarti sul server ProFTPD.

Se prevedi di utilizzare client diversi da FileZilla per accedere in modo sicuro alle risorse FTP, assicurati che supportino il protocollo FTP su TLS. Alcuni buoni esempi di client FTP che possono parlare FTPS sono WinSCP per piattaforme Windows e gFTP o LFTP (riga di comando) per NIX.