Configuració d'un servidor FTP segur mitjançant SSL/TLS a Ubuntu


En aquest tutorial, descriurem com protegir un servidor FTP (VSFTPD significa \Very Secure FTP Daemon) mitjançant SSL/TLS a Ubuntu 16.04/16.10.

Si voleu configurar un servidor FTP segur per a distribucions basades en CentOS, podeu llegir: Assegureu un servidor FTP mitjançant SSL/TLS a CentOS

Després de seguir els diferents passos d'aquesta guia, haurem après que és crucial habilitar els serveis de xifratge en un servidor FTP per a transferències de dades segures.

  1. Heu d'instal·lar i configurar un servidor FTP a Ubuntu

Abans d'avançar, assegureu-vos que totes les ordres d'aquest article s'executen com a compte amb privilegis root o sudo.

Pas 1: generació de certificat SSL/TLS per a FTP a Ubuntu

1. Començarem creant un subdirectori a: /etc/ssl/ per emmagatzemar el certificat SSL/TLS i els fitxers de clau si no existeix:

$ sudo mkdir /etc/ssl/private

2. Ara generem el certificat i la clau en un sol fitxer, executant l'ordre següent.

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

L'ordre anterior us demanarà que respongueu a les preguntes següents, no us oblideu d'introduir els valors aplicables al vostre escenari.

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 

Pas 2: Configuració de VSFTPD per utilitzar SSL/TLS a Ubuntu

3. Abans de realitzar qualsevol configuració VSFTPD, per a aquells que tinguin el tallafoc UFW habilitat, heu d'obrir els ports 990 i 40000-50000 per permetre que les connexions TLS i l'interval de ports dels ports passius s'estableixin al fitxer de configuració VSFTPD respectivament:

$ sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
$ sudo ufw status

4. Ara, obriu el fitxer de configuració VSFTPD i definiu-hi els detalls SSL:

$ sudo vi /etc/vsftpd/vsftpd.conf
OR
$ sudo nano /etc/vsftpd/vsftpd.conf

A continuació, afegiu o localitzeu l'opció ssl_enable i configureu-ne el valor a YES per activar l'ús de SSL, de nou, com que TLS és més segur que SSL, restringirem VSFTPD perquè utilitzi TLS, habilitant el Opció ssl_tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. A continuació, comenta les línies següents utilitzant el caràcter # de la manera següent:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Després, afegiu les línies següents per definir la ubicació del certificat SSL i del fitxer de claus:

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

6. Ara, també hem d'evitar que els usuaris anònims utilitzin SSL i, a continuació, obligar a tots els inicis de sessió no anònims a utilitzar una connexió SSL segura per a la transferència de dades i a enviar la contrasenya durant l'inici de sessió:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. A més, podem utilitzar les opcions següents per afegir més funcions de seguretat al servidor FTP. Amb l'opció require_ssl_reuse=YES, totes les connexions de dades SSL són necessàries per mostrar la reutilització de la sessió SSL; demostrant que coneixen el mateix secret mestre que el canal de control. Per tant, hauríem de desactivar-lo.

require_ssl_reuse=NO

A més, podem definir quins xifrats SSL permetrà VSFTPD per a connexions SSL xifrades amb l'opció ssl_ciphers. Això ajudarà a frustrar qualsevol esforç dels atacants que intenten forçar un xifrat específic en el qual possiblement han descobert vulnerabilitats en:

ssl_ciphers=HIGH

8. A continuació, definim l'interval de ports (port mín i màxim) dels ports passius.

pasv_min_port=40000
pasv_max_port=50000

9. Per habilitar la depuració SSL, és a dir, els diagnòstics de connexió d'openSSL s'enregistren al fitxer de registre VSFTPD, podem utilitzar l'opció debug_ssl:

debug_ssl=YES

Finalment deseu el fitxer i tanqueu-lo. A continuació, reinicieu el servei VSFTPD:

$ systemctl restart vsftpd

Pas 3: verifiqueu FTP amb connexions SSL/TLS a Ubuntu

10. Després de realitzar totes les configuracions anteriors, comproveu si ara VSFTPD està utilitzant connexions SSL/TLS provant d'utilitzar FTP des de la línia d'ordres com es mostra a continuació.

A la sortida següent, hi ha un missatge d'error que ens indica que VSFTPD només pot permetre que els usuaris (no anònims) iniciïn sessió des de clients segurs que admeten serveis de xifratge.

$ ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

La línia d'ordres no admet serveis de xifratge, donant lloc a l'error anterior. Per tant, per connectar-nos de manera segura a un servidor FTP amb els serveis de xifratge activats, necessitem un client FTP que admeti connexions SSL/TLS de manera predeterminada, com ara FileZilla.

Pas 4: instal·leu FileZilla als clients per connectar FTP de manera segura

FileZilla és un client FTP multiplataforma potent i àmpliament utilitzat que admet FTP sobre SSL/TLS i molt més. Per instal·lar FileZilla en una màquina client Linux, utilitzeu l'ordre següent.

--------- On Debian/Ubuntu ---------
$ sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
# yum install epel-release filezilla

--------- On Fedora 22+ --------- 
$ sudo dnf install filezilla

12. Un cop finalitzada la instal·lació, obriu-la i aneu a Fitxer=>Gestor de llocs o (premeu Ctrl+S) per obtenir la interfície Gestor de llocs a continuació.

13. Ara, definiu el nom de l'amfitrió/lloc, afegiu l'adreça IP, definiu el protocol a utilitzar, el xifratge i el tipus d'inici de sessió com a la captura de pantalla següent (utilitza els valors que s'apliquen al vostre escenari):

Feu clic al botó Lloc nou per configurar una connexió nou lloc/amfitrió.

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. A continuació, feu clic a Connecta des de la interfície anterior per introduir la contrasenya i, a continuació, verifiqueu el certificat que s'utilitza per a la connexió SSL/TLS i feu clic a D'acord una vegada més per connectar-vos al servidor FTP:

15. Ara, hauríeu d'haver iniciat sessió correctament al servidor FTP mitjançant una connexió TLS, comproveu la secció d'estat de la connexió per obtenir més informació a la interfície següent.

16. Finalment, transferim fitxers de la màquina local al servidor FTP a la carpeta de fitxers, mireu l'extrem inferior de la interfície FileZilla per veure els informes sobre les transferències de fitxers.

Això és tot! Recordeu sempre que instal·lar un servidor FTP sense habilitar els serveis de xifratge té certes implicacions de seguretat. Com hem explicat en aquest tutorial, podeu configurar un servidor FTP per utilitzar connexions SSL/TLS per implementar la seguretat a Ubuntu 16.04/16.10.

Si teniu problemes per configurar SSL/TLS al servidor FTP, utilitzeu el formulari de comentaris a continuació per compartir els vostres problemes o pensaments sobre aquest tutorial/tema.