¿Cómo configurar vsftpd en CentOS 6?

Actualizado el 27 de Julio, 2016. Por BlueHosting.

vsftpd o demonio FTP muy seguro (por sus siglas en inglés: very secure FTP daemon), es un servidor FTP para sistemas basados en Unix, incluido Linux. Es seguro, muy rápido y estable. El programa fue creado para tener una protección muy robusta contra las posibles vulnerabilidades de FTP y soporta IPv6 y SSL.

Nota:

FTP es inherentemente inseguro. Si usted debe usar FTP, considere asegurar su conexión FTP con SSL/TLS. De lo contrario, es preferible usar SFTP, una alternativa segura de FTP.

Primer paso: Instalar vsftpd

Puede instalar vsftpd de forma rápida en su VPS ingresando lo siguiente en la línea de comandos:

sudo yum install vsftpd

También es necesario instalar el cliente FTP, para que podamos conectarnos a un servidor FTP:

sudo yum install ftp

Una vez que los archivos hayan terminado de descargarse, tendrá vsftpd en su VPS. De forma general, su servidor virtual privado ya debería estar configurado con una cantidad razonable de características de seguridad. Sin embargo, aún provee acceso a usuarios anónimos.

Paso dos: Configurar VSFTP

Una vez que VSFTP está instalado, puede ajustar la configuración.

Abra el siguiente archivo de configuración:

sudo vi /etc/vsftpd/vsftpd.conf

Un cambio importante que debe hacer es cambiar el parámetro Anonymous_enable a no:

anonymous_enable=NO

Antes de este cambio, vsftpd permitía que usuarios no identificados y anónimos accedieran a los archivos en su VPS. Esto es útil si usted está buscando distribuir su información ampliamente, pero puede ser considerado un problema serio de seguridad en la mayoría de los casos. Después de esto, quite el signo que comenta la opción local_enable, y cámbiela a yes. Después de hacerlo, debe verse así:

local_enable=YES

Termine quitando el signo de comentario en el comando chroot_local_user. Cuando esta línea se coloca en YES, todos los usuarios locales estarán encerrados dentro de su propio chroot y se les negará el acceso a cualquier otra parte del servidor.

chroot_local_user=YES

Culmine reiniciando vsftpd:

sudo service vsftpd restart

Con el fin de asegurarse de que vsftpd se ejecuta al encender el servidor, use chkconfig:

sudo chkconfig vsftpd on

Paso tres: Apertura de puertos FTP y otras consideraciones

Para que el servidor pueda transferir datos necesita un canal. El puerto 21 sirve para el establecimiento y control de la conexión FTP. El puerto 20 es el encargado propiamente de la transferencia de datos. Para habilitar la transferencia de datos en su herramienta favorita (software de su preferencia, línea de comandos o navegador), debe abrir dichos puertos y cargar un par de módulos para que las conexiones FTP no sean rechazadas. Siga los siguientes pasos sugeridos.

Cargue los siguientes módulos:

modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

De forma muy general, el primer módulo modifica los paquetes para los computadores detrás de un firewall que ejecuta NAT y el segundo módulo permite que el firewall identifique los paquetes relacionados con ftp.

El siguiente paso es habilitar las conexiones entrantes y salientes en el puerto 21:

iptables -A INPUT  -p tcp -m tcp --dport 21 -m conntrack --ctstate ESTABLISHED,NEW -j ACCEPT -m comment --comment "Permitir conexiones ftp en el puerto 21"
iptables -A OUTPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "Permitir conexiones ftp en el puerto 21"

Luego permita las conexiones entrantes y salientes en el puerto 20:

iptables -A INPUT  -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Permitir conexiones ftp en el puerto 20"
iptables -A OUTPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Permitir conexiones ftp en el puerto 20"

Finalmente permita el tráfico de entrada pasiva FTP

iptables -A INPUT  -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Permitir conexiones entrantes pasivas"
iptables -A OUTPUT -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Permitir conexiones entrantes pasivas"

Los pasos anteriores son sugerencias generales, sin embargo, hay otras maneras de lograr el mismo objetivo. Lo exhortamos a investigar acerca de la configuración de reglas a través de iptables.

Paso cuatro: Ingrese a su servidor FTP

Una vez que haya instalado y configurado a su gusto el servidor FTP, ahora puede acceder a éste.

Puede llegar a su servidor FTP en su navegador escribiendo el nombre de dominio en la barra de direcciones e ingresando con el ID adecuado. Recuerde que solo podrá acceder al directorio home del usuario.

ftp://ejemplo.com

A continuación puede observar un ejemplo de la interfaz utilizando el navegador Mozilla FireFox, note que se lista un único archivo en el directorio home del usuario.
Anexo 1 Interfaz ftp firefox

De manera alternativa, puede llegar al servidor FTP a través de la línea de comandos ejecutando:

ftp ejemplo.com

Luego, puede usar la palabra exit o quit para salir del shell FTP.

Recursos adicionales

Puede consultar los siguientes recursos en busca de información adicional con respecto a este tema. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos dar fe de la actualidad o precisión de los contenidos externos.

¿QUÉ DESEAS SABER?

Intentaremos leer tu mente...