Questo articolo spiega come configurare PureFTPd per accettare sessioni TLS su un server CentOS 7.2. L'FTP semplice è un protocollo non sicuro perché tutte le password e i dati vengono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così l'FTP molto più sicuro.
1 Nota preliminare
Dovresti avere una configurazione PureFTPd funzionante sul tuo server CentOS 7.2, ad es. come mostrato in questo tutorial: server FTP con PureFTPd, MariaDB e utenti virtuali (incl. Quota e gestione della larghezza di banda) su CentOS 7.2
2 Installazione di OpenSSL
OpenSSL è necessario per TLS; per installare OpenSSL, eseguiamo semplicemente:
yum -y install openssl
3 Configurazione di PureFTPd
Apri /etc/pure-ftpd/pure-ftpd.conf...
nano /etc/pure-ftpd/pure-ftpd.conf
Se vuoi consentire FTP e Sessioni TLS, imposta TLS su 1:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 1 [...]
Se desideri accettare solo sessioni TLS (senza FTP), imposta TLS su 2:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 2 [...]
Per non consentire affatto TLS (solo FTP), imposta TLS su 0:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 0 [...]
Quindi rimuovi il # davanti alle seguenti 2 righe:
TLSCipherSuite HIGH
CertFile /etc/ssl/private/pure-ftpd.pem
e salva il file di configurazione modificato.
4 Creazione del certificato SSL per TLS
Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creo in /etc/ssl/private/, quindi creo prima quella directory:
mkdir -p /etc/ssl/private/
Successivamente, possiamo generare il certificato SSL come segue:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Nome del Paese (codice di 2 lettere) [XX]:<-- Inserisci il nome del tuo Paese (ad es. "DE").
Nome Stato o Provincia (nome completo) []:<-- Inserisci il nome del tuo Stato o Provincia .
Nome località (es. città) [Città predefinita]:<-- Inserisci la tua città.
Nome organizzazione (es. azienda) [Default Company Ltd]:<-- Inserisci il nome della tua organizzazione (es. , il nome della tua azienda).
Nome dell'unità organizzativa (ad es. sezione) []:<-- Inserisci il nome dell'unità organizzativa (ad es. "Dipartimento IT").
Nome comune (ad es. il tuo nome o il nome host del tuo server) []:<-- Inserisci il nome di dominio completo del sistema (ad es. "server1.example.com").
Indirizzo e-mail []:<-- Inserisci il tuo indirizzo e-mail.
Modifica le autorizzazioni del certificato SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Infine, riavvia PureFTPd:
systemctl restart pure-ftpd.service
Questo è tutto. Ora puoi provare a connetterti usando il tuo client FTP; tuttavia, dovresti configurare il tuo client FTP per utilizzare TLS - vedi il prossimo capitolo come farlo con FileZilla.
5 Configurazione di FileZilla per TLS
Per utilizzare FTP con TLS, è necessario un client FTP che supporti TLS, come FileZilla o il plug-in FireFTP di Firefox.
In FileZilla, apri Site Manager:
Seleziona il server che utilizza PureFTPd con TLS; nel menu a discesa Tipo di server, seleziona Richiedi FTP esplicito su TLS invece del normale FTP:
Ora puoi connetterti al server. Se lo fai per la prima volta, devi accettare il nuovo certificato SSL del server poiché stiamo utilizzando un certificato SSL autofirmato qui:
Se tutto va bene, ora dovresti essere loggato sul server:
6 link
- PureFTPd:http://www.pureftpd.org/
- FileZilla:http://filezilla-project.org/
- CentOS:http://www.centos.org/