FTP e’ un protocollo nato agli albori di internet per il trasferimento dei files. Non e’ un protocollo sicuro, login, password e dati viaggiano in chiaro sulla rete rendendo possibile un attacco di tipo sniffing.
Per ovviare a questo problema potremmo usare SFTP, che pero’ si appoggia a SSH e rendendo difficoltosa la gestione degli utenti, oppure possiamo aggiungere al server vsFTPd uno strato di cifratura con SSL.
Installazione, start e abiliazione all’avvio
Prima di tutto installiamo ed abilitiamo all’avvio vsftpd.
yum install -y vsftpd mod_ssl service vsftpd start chkconfig vsftpd on |
Configurazione ssl
Editiamo il file /etc/vsftpd/vsftpd.conf per abilitare ssl
ssl_enable=YES ssl_tlsv1=YES rsa_cert_file=/etc/pki/tls/certs/localhost.crt rsa_private_key_file=/etc/pki/tls/private/localhost.key |
Il cert file puo’ essere quello generato in locale sulla macchina, oppure potra’ essere quello fornito da una certification authority, in modo da proteggerci da un possibile attacco “man in the middle”.
Riavviamo il servizio per abilitare le modifiche.
service vsftpd restart |
Testing
Per collegarci al server e testare la configurazione possiamo utilizzare Filezilla.
Troubleshooting
Con filezilla potremmo ricevere l’errore “GnuTLS error -12: A TLS fatal alert has been received”. Ci propone la soluzione il bugtracker di filezilla, aggiungendo questa configurazione
ssl_cipher=HIGH |
SELinux ha di default disabilitato il boolean ftp_home_dir, questo impedisce al server ftp di utilizzare le directory home. Diamo il seguente comando per abilitare in modo permanente il boolean.
setsebool -P ftp_home_dirs on |