Instalar servidor FTP en CentOS 7

Si tienes un servidor dedicado o VPS con CentOS 7 y necesitas instalar un servidor FTP, en esta guía os contamos paso a paso cómo hacerlo.

Lo primero de todo, si acabas de instalar el sistema operativo, lo ideal sería que lo actualizaras para tener los paquetes en la última versión. Sin embargo, si el servidor está en producción, tienes que valorar si la actualización te podría causar problemas.

Si decides actualizar CentOS, puedes hacerlo usando el siguiente comando:

yum -y update

El siguiente paso es instalar el servidor FTP. En esta entrada vamos a utilizar el FTP vsftpd. Para instalarlo utiliza el gestor de paquetes yum:

yum install vsftpd
Instalación vsftpd

Instalación vsftpd

Una vez instalado, configura el servicio para que se arranque automáticamente al iniciar el sistema operativo.

systemctl enable vsftpd.service
Activar FTP

Activar FTP

Ahora cambia la configuración del servicio FTP para que funcione mejor y aportarle más seguridad. El fichero de configuración se encuentra en la siguiente ruta:

/etc/vsftpd/vsftpd.conf

Recuerda que, si delante de una línea está el carácter "#", dicha opción está deshabilitada por lo que no funcionará. Para que funcione hay que eliminar dicho carácter.

Por defecto, las opciones "local_enable" y "write_enable" están descomentadas y con valor YES. Si no los tienes así, tienes que descomentarlas quitando el carácter "#" y poner el valor YES.

Configuración

Configuración

Lo más normal es que quieras que los usuarios accedan al FTP con un usuario y contraseña, por lo que  tienes que desactivar la conexión anónima al servidor FTP. Para hacerlo cambia el valor YES por NO.

Por último, si quieres restringir que cada usuario tenga su carpeta personal y no pueda acceder a todo el servidor, busca la línea "chroot_local_user", comprueba que está descomentada y que tenga el valor YES.

Tras aplicar los cambios y guardar el fichero de configuración, arranca (o reinicia) el servicio vsftpd para que se apliquen los cambios.

Para reiniciar el servicio ejecuta el comando:

systemctl restart vsftpd.service

Para arrancarlo utiliza el comando:

systemctl start vsftpd.service

Si tienes CentOS 7, es muy probable que tengas iptables activado, por lo que tienes que añadir una regla que permita la conexión entrante al FTP desde el exterior. Para permitir las conexiones utiliza el siguiente comando:

iptables -I INPUT 5 -p tcp --dport 21 -m state --state NEW -j ACCEPT

A parte de esto, comprueba que tienes cargado el módulo "ip_conntrack_ftp" para iptables. Para comprobarlo accede al fichero de configuración de iptables
que se encuentra en el archivo:

/etc/sysconfig/iptables-config

Busca la opción en el archivo de configuración y déjalo de la siguiente manera:

IPTABLES_MODULES="ip_conntrack_ftp"

Es posible que en esta opción tengas más contenido. De ser así, tienes que añadir el valor "ip_conntrack_ftp" separado por espacios.

IPTABLES_MODULES="modulo1 modulo2 ip_conntrack_ftp"
Iptables

Iptables

Tras hacer los cambios, reinicia iptables:

systemctl restart iptables.service

Tras estos pasos ya tendrías un servidor FTP instalado en tu servidor con CentOS 7.

1 Respuesta

  1. Héctor

    No deberías incluir la parte de iptables, sólamente refiere a esta página que está en español: https://wiki.centos.org/es/HowTos/Network/IPTables

Responder a Héctor