Home > General > Instalar servidor FTP en debian y derivados

En esta ocasion mostrare como configurar un servidor FTP en linux especifiamente en debian y sus derivados el proceso de instalacion puede variar en otros pero la configuracion es igual

Lo primero que tenemos que hacer es instalar los paquetes de vsftpd para ello abrimos una terminal y ejecutamos el siguiente comando:

sudo apt-get install vsftpd
Después de que este proceso halla terminado el servidor aun no esta listo para funcionar de manera segura, y ademas no tiene usuarios configurados, entonces hay que realizar los siguientes pasos.

Como estamos configurando la instancia instalada de vsftpd, tenemos que detener el servicio para poder lograrlo. Esto lo logramos ejecutando el siguiente comando:

service vsftpd stop
Entonces buscamos el archivo de configuración que usualmente en una distribución debian se localiza en /etc/vsftpd.conf. Este es un archivo que contiene los parámetros del comportamiento de nuestro servidor ftp.

Para que este sea realmente seguro debemos ajustar algunos de estos parámetros:

No queremos que los usuarios inicien una sesión ftp de manera anónima.

anonymous_enable=NO
Solo usuarios locales  podrán utilizar el servicio de ftp. entonces habilitamos los usuarios locales:

local_enable=YES
Los usuarios del ftp tendrían que ser capaces de escribir datos al servidor, asi que habilitamos la escritura.

write_enable=YES
El puerto default de cualquier servidor ftp es el 21, pero en ocasiones se escucha el puerto 20, esto no es necesario y podría representar una brecha de seguridad, así que lo cerramos

connect_from_port_20=NO
El siguiente se puede poner en YES o NO según se presente la necesidad. Si se desea que el usuario navegue por todo el sistema de archivos se pone YES, pero si se desea que el usuario navegue únicamente dentro de un directorio establecido se pone NO, para mi ejemplo lo dejare en YES.

chroot_local_user=YES
Finalmente ponemos el umask en 022 para asegurarse que todos los archivos tengan set de permisos (644) y los directorios (755)

local_umask=022
Ahora bien, vamos a hacer que el directorio que el usuario encontrara al iniciar sesión sea uno en especifico, digamos /var/www/MiAsombrosoSitio hipoteticamente hablando, entonces agregamos un usuario a ese directorio asi:

sudo useradd -d <em>/var/www/MiAsombrosoSitio </em> -s /usr/sbin/nologin elusuario
luego creamos una contraseña para dicho usuario asi:

 

sudo passwd elusuario
sudo chown -R ftpuser /var/www/MiAsombrosoSitio
sudo chmod 775 /var/www/MiAsombrosoSitio
Ahora lo que tenemos que hacer es crear una lista de usuarios que podran ingresar al servicio ftp, para ello hay que crear (si aun no existe) y editar un archivo llamado vsftpd.userlist

touch /etc/vsftpd.userlist
nano /etc/vsftpd.userlist
en este archivo agregamos el nombre de usuario en este caso “elusuario” y guardar dicho archivo.

Ahora debemos abrir el archivo vsftpd.conf de nuevo y agregar las siguientes lineas al final del mismo:

# la lista de usuarios a las que se les da acceso
userlist_file=/etc/vsftpd.userlist

# esta lista esta habilitada
userlist_enable=YES

# no es una lista a la que se deniega el acceso.
userlist_deny=NO
En este punto estamos casi listos para utilizarlo, pero debemos agregar un nologin a los shells del sistema, entonces ejecutamos el siguiente comando:

nano /etc/shells
y agregamos esto al final del archivo:

/usr/sbin/nologin
Luego creamos un grupo de usuarios y agregamos al usuario ftp a el:

sudo addgroup ftpusers
sudo usermod -Gftpusers elusuario
Y finalmente volvemos a iniciar el servicio vsftpd asi:

service vsftpd start
Y ahora ya estamos listisimos para utilizar nuestro servidor ftp, talvez por medio de un cliente FTP como FileZilla