Cómo instalar y configurar el servidor FTP en Ubuntu

Cómo instalar y configurar el servidor FTP en Ubuntu

FTP. ( Protocolo de transferencia de archivos. es un protocolo de red estándar relativamente antiguo y más utilizado que se utiliza para cargar/descargar archivos entre dos computadoras a través de una red. Sin embargo, FTP. por su original inseguro, porque transmite datos junto con las credenciales de usuario (nombre de usuario y contraseña) sin cifrado.

Advertencia. si planea utilizar FTP. considere la posibilidad de configurar la conexión FTP con SSL/TLS. (se tratará en el próximo artículo). De lo contrario, siempre es mejor utilizar FTP seguro, como SFTP.

Lectura sugerida: Cómo instalar y proteger el servidor FTP en CentOS 7

En este tutorial, mostraremos cómo instalar, configurar y proteger un servidor FTP. ( VSFTPD. en su totalidad “ Very Secure FTP Daemon. ) en Ubuntu. para tener una potente seguridad contra Vulnerabilidades de FTP.

Paso 1: Instalar el servidor VsFTP en Ubuntu

1.. Primero, necesitamos actualizar la lista de fuentes del paquete del sistema y luego instalar VSFTPD. paquete binario de la siguiente manera:

$ sudo apt-get update $ sudo apt-get install vsftpd

2.. Una vez que se complete la instalación, el servicio se desactivará inicialmente, por lo tanto, debemos iniciarlo manualmente durante el tiempo medio y también habilitarlo para que se inicie automáticamente desde el siguiente arranque del sistema:

————-En SystemD————- # systemctl start vsftpd # systemctl enable vsftpd ————-En SysVInit————- # service vsftpd start # chkconfig–level 35 vsftpd on freestar.config.enabled_slots.push

3.. A continuación, Si tiene un firewall UFW habilitado (no está habilitado de manera predeterminada) en el servidor, debe abrir los puertos 21. y 20. donde los demonios FTP están escuchando, para permitir acceda a los servicios FTP desde máquinas remotas, luego agregue las nuevas reglas de firewall de la siguiente manera:

$ sudo ufw allow 20/tcp $ sudo ufw allow 21/tcp $ sudo ufw status

Paso 2: Configuración y protección del servidor VsFTP en Ubuntu

4.. Ahora realicemos algunas configuraciones para configurar y asegurar nuestro servidor FTP, primero crearemos una copia de seguridad del original archivo de configuración /etc/vsftpd/vsftpd.conf. así:

$ sudo cp/etc/vsftpd.conf/etc/vsftpd.conf.orig

A continuación, abramos el vsftpd. archivo de configuración.

$ sudo vi/etc/vsftpd.conf O $ sudo nano/etc/vsftpd.conf

Agregue/modifique las siguientes opciones con estos valores:

anonymous_enable = NO # deshabilitar inicio de sesión anónimo local_enable = YES # permitir inicios de sesión locales write_enable = YES # habilitar comandos FTP que cambian el sistema de archivos local_umask = 022 # valor de umask para la creación de archivos para usuarios locales dirmessage_enable = YES # habilitar la visualización de mensajes cuando los usuarios ingresan por primera vez un nuevo directorio xferlog_enable = YES # se mantendrá un archivo de registro detallando las cargas y descargas connect_from_port_20 = YES # use el puerto 20 (ftp-data) en la máquina del servidor para conexiones de estilo PORT xferlog_std_format = YES # mantenga el formato de archivo de registro estándar listen = NO # evitar que vsftpd se ejecute en modo independiente listen_ipv6 = YES # v sftpd escuchará en un socket IPv6 en lugar de uno IPv4 pam_service_name = vsftpd # nombre del servicio PAM vsftpd usará userlist_enable = YES # habilitar vsftpd para cargar una lista de nombres de usuario tcp_wrappers = YES # activar envoltorios tcp

5.. Ahora, configure VSFTPD. para permitir/denegar el acceso FTP a los usuarios según el archivo de lista de usuarios /etc/vsftpd.userlist.

Tenga en cuenta que, de forma predeterminada, a los usuarios enumerados en userlist_file =/etc/vsftpd.userlist. se les niega el acceso de inicio de sesión con la opción userlist_deny = YES si userlist_enable = YES.

Pero, la opción userlist_deny = NO distorsiona el significado de la configuración predeterminada, por lo que solo los usuarios cuyo nombre de usuario se enumere explícitamente en userlist_file =/etc/vsftpd.userlist. podrán iniciar sesión en el servidor FTP.

userlist_enable = YES # vsftpd cargará una lista de nombres de usuario, desde el nombre de archivo dado por userlist_file userlist_file =/etc/vsftpd.userlist # almacena usuario nombres. userlist_deny = NO

Importante. Cuando los usuarios inician sesión en el servidor FTP, se colocan en una cárcel chrooted, este es el directorio raíz local que actuará como su directorio de inicio solo para la sesión FTP.

A continuación, veremos dos posibles escenarios de cómo configurar el directorio de jail (raíz local) chrooted, como se explica a continuación.

6.. En este punto, agreguemos/modifiquemos/descomentemos estas dos opciones siguientes para restringir a los usuarios de FTP a sus directorios de inicio.

chroot_local_user = YES allow_writeable_chroot = YES

La opción chroot_local_user = YES significa que los usuarios locales serán colocados en una cárcel chroot, su directorio de inicio por defecto después de iniciar sesión.

Y también debemos entender que VSFTPD no permite que el directorio de la cárcel chroot ser escribible, por defecto por razones de seguridad, sin embargo, podemos usar la opción allow_writeable_chroot = YES. para deshabilitar esta configuración.

Guarde el archivo y ciérrelo. Luego tenemos que reiniciar los servicios VSFTPD para que los cambios anteriores surtan efecto:

————-En SystemD————- # systemctl restart vsftpd ————-En SysVInit————- # service vsftpd restart

Paso 3: Probar el servidor VsFTP en Ubuntu

7.. Ahora probaremos el servidor FTP creando un FTP usuario con el comando useradd de la siguiente manera:

$ sudo useradd-m-c “Aaron Kili, colaborador”-s/bin/bash aaronkilik $ sudo passwd aaronkilik

Luego, tenemos que listar explícitamente el usuario aaronkilik. en el archivo /etc/vsftpd.userlist. con el comando echo y el comando tee. como se muestra a continuación:

$ echo “aaronkilik” | sudo tee-a/etc/vsftpd.userlist $ cat/etc/vsftpd.userlist

8.. Ahora es el momento de probar que nuestras configuraciones anteriores funcionan como se requiere. Comenzaremos probando los inicios de sesión anónimos; Podemos ver claramente en el resultado a continuación que no se permiten inicios de sesión anónimos en el servidor FTP:

# ftp 192.168.56.102. Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido al servicio FTP de TecMint.com. Nombre (192.168.56.102:aaronkilik): anónimo 530 Permiso denegado. Error de inicio de sesion. ftp> adiós 221 Adiós.

9.. A continuación, probemos si un usuario que no figura en el archivo /etc/vsftpd.userlist. tendrá permiso para iniciar sesión, lo cual no es cierto en el salida que sigue:

# ftp 192.168.56.102. Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido al servicio FTP de TecMint.com. Nombre (192.168.56.10:root): usuario1 530 Permiso denegado. Error de inicio de sesion. ftp> adiós 221 Adiós.

10.. Ahora realizaremos una prueba final para determinar si un usuario listado en el archivo /etc/vsftpd.userlist. está realmente ubicado en su directorio de inicio después de iniciar sesión. Y esto es cierto a partir del siguiente resultado:

# ftp 192.168.56.102. Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido al servicio FTP de TecMint.com. Nombre (192.168.56.102:aaronkilik): aaronkilik 331 Por favor, especifique la contraseña. Contraseña:. 230 Inicio de sesión exitoso. El tipo de sistema remoto es UNIX. Usando el modo binario para transferir archivos. ftp> ls. Verificar inicio de sesión FTP en Ubuntu  Verificar inicio de sesión FTP en Ubuntu Verificar inicio de sesión FTP en Ubuntu

Advertencia. configurar la opción allow_writeable_chroot = YES puede ser muy peligroso, tiene posibles implicaciones de seguridad, especialmente si los usuarios tienen permiso de carga, o más, acceso de shell . Úselo solo si sabe exactamente lo que está haciendo.

Debemos tener en cuenta que estas implicaciones de seguridad no son específicas de VSFTPD, también pueden afectar a todos los demás demonios FTP que ofrecen poner usuarios locales en jaulas chroot.

Por esta razón, en la sección siguiente, explicaremos un método más seguro para configurar un directorio raíz local no modificable diferente para un usuario.

Paso 4: Configurar FTP Directorios de inicio de usuario en Ubuntu

11.. Ahora, abra el archivo de configuración VSFTPD una vez más.

$ sudo vi/etc/vsftpd.conf O $ sudo nano/etc/vsftpd.conf

y comente la opción no segura usando el carácter # como se muestra a continuación:

# allow_writeable_chroot = YES

A continuación, cree el directorio raíz local alternativo para el usuario ( aaronkilik. el tuyo posiblemente no sea el mismo) y establece los permisos requeridos deshabilitando los permisos de escritura para todos los demás usuarios en este directorio:

$ sudo mkdir/home/aaronkilik/ftp $ sudo chown nadie: n ogroup/home/aaronkilik/ftp $ sudo chmod a-w/home/aaronkilik/ftp

12.. Luego, cree un directorio bajo la raíz local con los permisos apropiados donde el usuario almacenará sus archivos:

$ sudo mkdir/home/aaronkilik/ftp/files $ sudo chown-R aaronkilk: aaronkilik/home/aaronkilik/ftp/files $ sudo chmod-R 0770/home/aaronkilik/ftp/files/

Posteriormente, agregue/modifique las siguientes opciones en el archivo de configuración VSFTPD con sus valores correspondientes:

user_sub_token = $ USER # inserta el nombre de usuario en el directorio raíz local local_root =/home/$ USER/ftp # define el directorio raíz local de cualquier usuario

Guarde el archivo y ciérrelo. Y reinicie los servicios VSFTPD con la configuración reciente:

————-En SystemD————- # systemctl restart vsftpd ————-En SysVInit————- # service vsftpd restart

13.. Ahora, realicemos una verificación final y asegurémonos de que el directorio raíz local del usuario es el directorio FTP que creamos en su directorio de inicio.

# ftp 192.168.56.102. Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido al servicio FTP de TecMint.com. Nombre (192.168.56.10:aaronkilik): aaronkilik 331 Por favor, especifique la contraseña. Contraseña:. 230 Inicio de sesión exitoso. El tipo de sistema remoto es UNIX. Usando el modo binario para transferir archivos. ftp> ls. Inicio de sesión de directorio de inicio de usuario FTP  Inicio de sesión en el directorio de inicio de usuario de FTP Inicio de sesión en el directorio de inicio de usuario de FTP

¡Eso es! Recuerde compartir su opinión sobre esta guía a través del formulario de comentarios a continuación o posiblemente proporcionarnos cualquier información importante sobre el tema.

Por último, pero no menos importante, no se pierda nuestro próximo artículo, donde describiremos cómo proteger un servidor FTP usando conexiones SSL/TLS en Ubuntu 16.04/16.10, hasta entonces, siempre esté atento a TecMint.