viernes, 24 de febrero de 2012

Linux.Servidor FTPS con VSFTPD


Utilizando Debian y el servidor FTP vsftpd, voy a configurar un servidor FTPS (FTP/SSL). La idea es disponer de un servidor FTP donde las transferencias sean seguras.
Lo voy a configurar para no aceptar conexiones anonimas, y unicamente permita las conexiones de tipo FTPS.
1º) Instalación
# apt-get install vsftpd openssl
2º) Crear certificado
# cd /etc/ssl/certs
# openssl req -x509 -nodes -days 730 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
3º) Configurar VSFTPD
La configuración se centraliza toda en el fichero /etc/vsftpd.conf.
#
# Configuración General
#
listen=YES
# No se permite acceso anonimo
anonymous_enable=NO
local_enable=YES
local_umask=022
ftpd_banner=Bienvenido al Servidor FTPS
# Se enjaulan los usuarios en su home
chroot_local_user=YES
# Configuracion PASV
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=6100
pasv_address=ip_publica_servidor
#
# Configuracion SSL
#
# Habilita el soporte de TLS/SSL
ssl_enable=YES
# Permite utilizar TLS/SSL a usuarios anónimos
allow_anon_ssl=YES
# Obliga a utilizar TLS/SSL para todas las operaciones
force_local_data_ssl=YES
force_local_logins_ssl=YES
# Se prefiere TLSv1 sobre SSLv2 y SSLv3
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# Ruta del certificado
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
4º) Alta Usuarios
Los usuarios utilizados por vsftp serán los del sistema. Si tenemos que dar de alta usuarios exclusivamente para el ftp, lo adecuado es darlos de alta sin shell de la siguiente forma:
# echo "/bin/false" >> /etc/shells
# adduser usuario --shell /bin/false
5º) Abriendo Puertos
No hay que pasar por alto que en nuestro firewall tenemos que abril los puertos 20 (ftp-data) y 21 (ftp). Además al tratarse de una configuración con soporte al modo pasivo tenemos que abrir un rango de puertos, por ejemplo del 6000 al 6100.
6º) Cliente
Para probar el funcionamiento necesitamos utilizar un cliente FTP que soporte: FTPES - FTP sobre TLS/SSL explícito.
Cuando estemos configurando el servidor, recomiendo el cliente de terminal ftp-ssl. Y ya como cliente en modo gráfico, recomiendo utilizar FileZilla, que además de ser software libre es multiplaforma.
Para Debian lo instalamos desde los repositorios de paquetes
# apt-get install filezilla

No hay comentarios:

Publicar un comentario