Configuración de vsftp en Centos 7

Para la configuración del servidor vsftpd en Centos 7 modifiqué el archivo de configuración:

sudo vim /etc/vsftpd/vsftpd.conf

para que quedara así:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
allow_ftpd_full_access
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
ftpd_banner=Welcome to XXXXXXXXX FTP service.
chroot_local_user=YES
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=10090
pasv_max_port=10100
port_enable=YES

Posteriormente hay que abrir los puertos en el firewall a través de los siguientes comandos:

sudo firewall-cmd --permanent --zone=public --add-port=21/tcp
sudo firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
sudo firewall-cmd --reload

Cada uno de estos comandos deberá devolver el mensaje success.

También hay que reiniciar los servicios de vsftpd:

sudo systemctl restart vsftpd

Con esto el servidor FTP debería funcionar, tanto en modo activo como en modo pasivo.

Agregar usuarios:

Necesitamos ahora agregar usuarios que no tengan acceso al shell pero sí se cree su carpeta /home. Para esto necesitamos los ejecutar los siguientes comandos:

sudo useradd nombre_usuario
sudo passwd nombre_usuario

Aquí nos pedirá ingresar la contraseña del usuario y finalmente debemos ejecutar:

sudo usermod -s /sbin/nologin nombre_usuario