Mostrando entradas con la etiqueta vsftpd. Mostrar todas las entradas
Mostrando entradas con la etiqueta vsftpd. Mostrar todas las entradas

sábado, 29 de septiembre de 2018

Administración de un servidor VSFTPD en Ubuntu

Arranques y paradas del servidor VSFTPD

Xinetd (eXtended InterNET daemon) es un servicio o demonio presente en la mayoría de los sistemas Linux. Este demonio controla varios subservicios de red como puede ser el control de accesos, o la gestión de recursos o protocolos FTP  o TELNET.
Los servicios se arrancarán o detendrán desde la interfaz de comandos. Los scripts  o lanzadores del servicio FTP se encuentran en el el directorio /etc/init.d
Iniciar un servicio VSFTPD.
Para iniciar un servicio VSFTPD ejecutaremos los siguientes comandos:

sudo /etc/init.d/vsftpd start


Arranques y paradas del servidor VSFTPD

sábado, 22 de septiembre de 2018

Cómo instalar vsftpd en Linux Ubuntu 16.04 y configurarlo correctamente

Instalar vsftpd en Ubuntu


Para instalar vsftpd en Ubuntu 16.04 empleamos el comando:

sudo apt-get install vsftpd

Para iniciar, detener y reiniciar el demonio de vsftpd los comandos para iniciar, detener y reiniciar vsftpd son:

sudo systemctl restart vsftpd
sudo systemctl start vsftpd
sudo systemctl stop vsftpd

Configurar vsftpd en Ubuntu


Para añadir un usuario ejecutamos el comando:

sudo adduser miusuario 

Nos solicitará que introduzcamos una contraseña. Usaremos este usuario para acceder al servidor FTP.  En nuestro caso el chroot sería /home/miusuario. Además, se deben cumplir dos condiciones:

El dueño de la carpeta chroot y el usuario que se conecta por FTP no pueden ser el mismo.

La carpeta chroot no puede tener permisos de escritura.

Así que debemos cambiar el dueño de esta carpeta con el siguiente comando:

sudo chown root:root /home/miusuario

Si queremos que el usuario pueda subir archivos al servidor FTP,  necesitamos crear una carpeta:

sudo mkdir /home/miusuario/ftp_subidas

sudo chown miusuario:miusuario /home/miusuario/ftp_subidas

Es importante quitar el acceso al intérprete de comandos (shell) del usuario miusuario que agregamos, puede suponer un grave riesgo de seguridad. El problema está en que al quitar acceso a la shell, vsftpd no dejará acceder al servidor FTP porque el usuario no tiene una shell válida asignada. Para solucionar esto creamos una shell personalizada, que añadimos a la lista de shells válidas y finalmente asignamos esta shell a nuestro usuario.

sudo nano /bin/ftponly

Añadimos las siguientes líneas y guardamos el archivo:

#!/bin/sh
echo "Esta cuenta solo dispone de acceso por FTP."

Damos permisos de ejecución a la shell ftponly con el comando:

sudo chmod a+x /bin/ftponly

Editamos la lista de shells válidas con el comando:

sudo nano /etc/shells

Añadimos /bin/ftponly al final de la lista:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/ftponly

Asignamos la shell ftponly a nuestro usuario:

sudo usermod miusuario -s /bin/ftponly

No debemos usar shell nologin  o estaremos creando un problema de seguridad grave.

Ya tenemos nuestro usuario listo. Ahora editamos el archivo de configuración de vsftpd con el comando:

sudo nano /etc/vsftpd.conf 

Hay que modificar el archivo eliminando el carácter # en las partes correspondientes y haciendo las modificaciones tal y como se muestra a continuación:

# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
...
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES
#

Reiniciamos vsftpd con:

sudo systemctl restart vsftpd

Y probamos que todo funcione correctamente.

Cómo enviar un archivo por FTP

Hacemos un ifconfig para obtener la IP del servidor Ubuntu.

Cómo enviar un archivo por FTP