Instalar servidor FTP

Como instalar un servidor FTP en Ubuntu

FTP es un protocolo de red creado enviar archivos entre sistemas conectados a una red TCP (Transmission Control Protocol) y basado en la arquitectura cliente-servidor.

Para instalar el servidor FTP en concreto vsftpd desde los repositorios de Ubuntu lo primero que tendremos que hacer es actualizarlos, a si que, vamos al directamente ¡¡manos a la obra!!.

Para actualizar los repositorios de Linux Ubuntu ejecutaremos los siguientes comandos desde el terminal.

sudo apt update
sudo apt -y upgrade

Instalar el servidor vsftpd en Linux Ubuntu

Una vez tengamos actualizados los repositorios en nuestro sistema. El siguiente movimiento es instalar el servidor FTP.

Seguimos en nuestro terminal Linux y escribimos el siguiente comando que instalara el servidor en nuestra maquina:

sudo apt install vsftpd

Listo ya tenemos instalado el servidor.
Ahora es el momento de realizar una configuración básica, esto dependerá de las necesidades y como queremos que se comporte nuestro servidor. Por ejemplo podemos decirle cual es el puerto por el que escucha (por defecto utiliza el puerto 21 para conectarse al servidor y el puerto 20, para la transferencia de archivos). Esto lo hacemos editando el archivo vsftpd.conf.

Configuración del servidor vsftpd

Desde nuestro terminal ejecutamos el comando:

sudo nano /etc/vsftpd.conf

En este caso estoy usando el editor nano para abrir el archivo, pero se puede usar cualquier editor de texto que tengamos disponible, como por ejemplo el editor vi.
A continuación se muestran algunas de las directivas que podemos configurar en el servidor vsftpd.

# Ejecuta el servidor al inicio del sistema. Es posible que este ajuste provoque un error “Connection refused”, si es el caso dejarlo a NO
listen=NO

# Habilitar o deshabilitar el inicio de sesión de usuarios anónimos.
anonymous_enable=NO

# Habilita el acceso a usuarios locales (nosotros).
local_enable=YES

# Permite editar los archivos del sistema a traves de comandos.
write_enable=YES

# Muestra un mensaje cuando un usuario modifica un directorio.
dirmessage_enable=YES

#Hora del servidor (por defecto).
use_localtime=YES

# Registro de acceso para subir y descargar archivos
xferlog_enable=YES

# Puerto de escucha FTP, lo dejamos por defecto (el 20).
connect_from_port_20=YES

# Mensaje de bienvenida cuando accedemos al servidor
ftpd_banner= Bienvenido al servidor FTP de Mas QueWeb
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Para tener un usuario encerrado en su /home/ y otro de administrador:

# chroot_local_user=YES solo permite a los usuarios locales el acceso a su directorio /home/. La opción NO permite el acceso a todos los archivos y carpetas.
chroot_local_user=YES
chroot_list_enable=YES

# Archivo con la lista de los usuarios administradores
chroot_list_file=/etc/vsftpd.chroot_list

Guardamos la configuración y si el archivo vsftpd.chroot_list no existe lo creamos ejecutando el comando:

sudo nano /etc/vsftpd.chroot_list

Dentro de este archivo ponemos el nombre del usuario administrador (usuario por línea). De manera que los usuarios que no estén en la lista, quedarán encerrados en su directorio /home/
Reiniciamos el servidor FPT para que se apliquen los cambios.

systemctl restart vsftpd

Tambien podremos detener o iniciar el servicio con los comandos:

systemctl stop vsftpd
systemctl start vsftpd

Otras directrices muy utilies que podemos agregar a la configuración son:
listen_port — Especifica el puerto en el cual vsftpd escucha por conexiones de red. (valor predeterminado = 21)
accept_timeout — Especifica la cantidad de tiempo para un cliente usando el modo pasivo para establecer una conexión. (valor por defecto = 60)
connect_timeout — Especifica la cantidad máxima de tiempo que un cliente usando el modo activo tiene para responder a una conexión de datos, en segundos. (valor por defecto = 60)
max_login_fails — Limita el número de intentos de conexión. (valor por defecto = 3)

Nota: Podremos consultar las opciones de configuración disponibles en: https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-ftp-vsftpd-conf.html

Conexión con el servidor FTP

Por último solo falta conectar con el servidor FTP para comprobar que todo funciona correctamente.

ftp [ip / host] // por ejemplo ftp 192.168.1.200

o escribimos en la barra de direcciones de nuestro navegador web:

ftp://[ip / host] // por ejemplo ftp://192.168.1.200

Un posible error dependiendo de la configuración de nuestro servidor vsftpd es que cuando intentar realizar la conexión aparece el error “500 OOPS: vsftpd: refusing to run with writable root inside chroot()”. Esto es debido a que tenemos configurada la directriz chroot_local_user=YES que impide que directorio home de este usuario tenga permisos de escritura.
Podemos solucionarlo de dos formas distintas según nuestros instereses, una es quitarle los permisos de escritura a el directorio o permitir que puedan escribir en el.
Para retirar los permisos de escritura de el directorio suponiendo que el usuario se llama test y su directorio es /home/test, tenemos que ejecutar el siguiente comando:

chmod a-w /home/test

Si por el contrario queremos que los usuarios puedan escribir en su directorio home, la solución es editar el archivo vsftpd.conf y agregar la siguiente directriz.
allow_writeable_chroot=YES

Comentarios y opiniones

Puede que tarde en responder, se paciente.

*
*