Para empezar, una breve descripción de lo que dice wikipedia sobre TLS.
Secure Sockets Layer (SSL; en español «capa de conexión segura») y su sucesor Transport Layer Security (TLS; en español «seguridad de la capa de transporte») son protocolos criptográficos que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Ahora realizaremos la segunda practica, en la que nos conectaremos a nuestro servidor FTP de forma segura. Para ello os pondré un nuevo archivo de configuración, esta vez preparado para utilizar certificados y TLS. VSFTPD puede ser configurado fácilmente para utilizar los protocolos SSL ( Nivel de Zócalo Seguro), y TLS (Seguridad para Nivel de Transporte) a través de un certificado RSA.
Borramos el contenido de nuestro archivo vsftpd.conf y lo sustituimos por el siguiente.
sudo nano /etc/vsftpd.conf
vsftpd.conf
# Ponemos el servicio en el arranque des sistema, funcionando sobre ipv4
listen=YES
# Habilitamos o deshabilitamos los accesos anónimos al servidor FTP
anonymous_enable=YES
# Habilitamos o deshabilitamos la conexión de los usuarios de la maquina local, a nuestro servidor FTP
local_enable=YES
# Habilitando esta opción, permitimos a los usuarios no anónimos subir ficheros, modificarlos, borrarlos o crearlos.
write_enable=YES
# Activa los logs de las subidas y las descargas del servidor FTP.
xferlog_enable=YES
# Cuando está activada, vsftpd se ejecuta con privilegios suficientes para abrir el puerto 20 en el servidor durante las transferencias de datos en modo activo.
connect_from_port_20=YES
#Especifica el archivo de registro compatible con wsftpd
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
# Especifica la cantidad máxima de tiempo entre comandos desde un cliente remoto.
idle_session_timeout=300
# Especifica la cantidad máxima de tiempo que las conexiones se pueden aplazar en segundos.
data_connection_timeout=300
# Banner de bienvenida
ftpd_banner= FTP syconet.wordpress.com
# Si está activada, a los usuarios locales se les cambia el directorio raíz (se hace un chroot) a su directorio principal luego de la conexión.
chroot_local_user=YES
# Especificar cualquier rango arbitrario, y estrecho, de puertos para
# conexiones pasivas.
pasv_min_port=30300
pasv_max_port=30309
# Habilita el soporte de TLS/SSL
ssl_enable=YES
# Deshabilita o habilita utilizar TLS/SSL con usuarios anónimos
allow_anon_ssl=NO
# Obliga a utilizar TLS/SSL para todas las operaciones, es decir,
# transferencia de datos, y autenticación de usuarios locales.
# Establecer el valor NO, hace que sea opcional utilizar TLS/SSL.
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO
# Se prefiere TLSv1 sobre SSLv2, y SSLv3
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# Rutas del certificado, y firma digital
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
Guardamos y salimos del editor de texto.
Acceda al directorio /etc/ssl
cd /etc/ssl/
El certificado se puede generar fácilmente utilizando el siguiente comando, donde se generará un certificado con estructura X.509, algoritmo de cifrado RSA de 1024 Kb, sin Triple DES, el cual permita iniciar normalmente, sin interacción alguna, al servicio vsftpd, con una validez por 365 días (un años) en el archivo /etc/ssl/certs/vsftpd.crt.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout private/vsftpd.key -out certs/vsftpd.crt
Reiniciamos el servicio ftp con:
sudo service vsftpd restart
o
sudo /etc/init.d/vsftpd restart
Ahora probaremos a conectarnos a nuestro servidor FTPS, para ello utilizaremos un cliente que lo soporte, en mi caso he elegido Filezilla FTP.
Lo instalaremos y configuraremos nuestro cliente de la siguiente manera.
La configuración que os he puesto, sirve para que los usuarios locales se conecten de forma segura, utilizando los certificados y conectándose vía FTPS, por otro lado los usuarios anonymous podrán conectarse al servidor de forma normal, utilizando el protocolo FTP.
FUENTES:
http://es.wikipedia.org/wiki/Transport_Layer_Security
syconet.wordpress.com is licensed under a Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License.