Instalación y Configuración de un Servidor FTP Seguro

Este artículo va dirigido a todo aquel que este pensando en instalar un Servidor FTP con algo de seguridad por medio. En nuestro caso explicaré como se configura el vsftpd ya que está considerado uno de los más seguros, así como algún cliente ftp que permita conexiones por TLS.

Lo primero que debemos hacer es descargar el programa, para ello podemos hacer uso de apt-get en caso de Debian o de YUM para los que usen RedHat. Si optamos por apt es tan sencillo como teclear en consola:

apt-get install vsftpd

Y en el caso de RedHat:

yum install vsftpd

Una vez realizado este paso nos dispondremos a configurarlo para nuestras necesidades. Por defecto viene sin el soporte TLS para encriptación y sin acceso al mismo.

Bien, nos situamos en /etc/ y localizamos una carpeta denominada vsftpd. Ahora editamos el fichero de configuración que se encuentra dentro (vsftpd.conf) añadiendo o modificando las siguientes líneas:

------------------------------------------------------------------

# Acceso Para Usuarios Locales
local_enable=YES

# Permitir Escritura
write_enable=YES

# Valor Genérico para casi todos los FTP...
local_umask=022

# Logueo
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

# Mensaje de Bienvenida
ftpd_banner=Bienvenid@ a ... FTP Service.

# Activando Lista de Acceso
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

# Valores por Defecto...
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES

# Fijamos unos puertos Pasivos...
pasv_min_port=40100
pasv_max_port=40150

# Activando Encriptación
ssl_enable=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem

------------------------------------------------------------------

Datos importantes:

Debeis abrir si estais por medio de un cortafuegos los puertos 20, 21 y el rango 40100-40150. Por otro lado os recomiendo crear un usuario sin acceso de "shell" para aumentar la seguridad de la máquina. Lo podeis hacer desde vuestro administrador de Usuarios y Grupos, sólo hay que fijar la shell a /bin/false o /bin/nologin. Intentad siempre crear claves para estos usuarios con letras, números y símbolos a ser posible.

Hay que crear la lista de usuarios que van a tener acceso al FTP, para ello editais el fichero /etc/vsftpd.chroot_list, añadiendo cada usuario uno debajo del otro.

ej:

pedro
luis
juan

Una última cosa, si observais la última línea hace referencia a un certificado que no está creado, para crearlo tecleais en consola lo siguiente:

openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem

Sobra decir que para ejecutar este comando previamente debe estar instalado el paquete openssl.

Bueno, ya tenemos todo configurado ahora sólo nos queda cruzar los dedos y probarlo. En el caso de RedHat y estando siempre como root escribimos: /sbin/services vsftpd start y en Debian podemos poner /etc/init.d/vsftpd start.

Para aquellos que conecten desde Windows pueden usar el CuteFTP especificando en el tipo de conexión que van a usar TLS y en Linux dado que el famoso gFTP no trae de serie el soporte para SSL lo más fácil es instalar el cliente Kasablanca, y a la hora de conectar escoger el Nivel de Encriptación 2.

Un saludo.


Chat module by BoWoB Chat for Drupal