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 utilizado para cargar/descargar archivos entre dos computadoras a través de una red. Sin embargo, Ftp por su insegura original, porque transmite datos junto con credenciales de usuario (nombre de usuario y contraseña) sin cifrado.

Advertencia: Si planeas usar Ftp, Considere configurar la conexión FTP con SSL/TLS (cubrirá en el próximo artículo). De lo contrario, siempre es mejor usar FTP seguro como SFTP.

Leer sugerido: Cómo instalar y asegurar el servidor FTP en CentOS 7

En este tutorial, mostraremos cómo instalar, configurar y asegurar un Ftp servidor (VSFTPD en su totalidad "Demonio ftp muy seguro") en Ubuntu tener una poderosa seguridad contra las vulnerabilidades de FTP.

Paso 1: Instalación del 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 actualización $ sudo apt-get install vsftpd 

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

------------- En Systemd ------------- # SystemCTL Start VSFTPD # SystemCTL Enable VSFTPD ------------- Sysvinit ------------- # Servicio VSFTPD Inicio # CHKCONFIG --LEVEL 35 VSFTPD ON 

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

$ sudo UFW Permitir 20/TCP $ sudo UFW Permitir 21/TCP $ sudo UFW Estado 

Paso 2: Configuración y obtenció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 archivo de configuración original /etc/vsftpd/vsftpd.confusión al igual que:

$ sudo cp /etc /vsftpd.conf /etc /vsftpd.confusión.oriente 

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

$ sudo vi /etc /vsftpd.conf o $ sudo nano /etc /vsftpd.confusión 

Agregar/modificar las siguientes opciones con estos valores:

anónimo_enable = no # deshabilitar el inicio de sesión anónimo local_enable = sí # Permit los inicios de sesión locales write_enable = sí # habilitar los comandos ftp que cambian el sistema de archivos local_umask = 022 # valor de upmask para la creación de archivos para usuarios locales dirmessage_enable = sí # enable mostrar los mensajes cuando ingresan por primera vez por primera vez Un nuevo directorio xferlog_enable = sí # un archivo de registro se mantendrá detallando cargas y descarga Connect_from_port_20 = sí # use puerto 20 (data ftp) en la máquina del servidor para conexiones de estilo de puerto xferlog_std_format = sí # Formato de archivo de registro estándar escuchar = no # no # no # no evitar que VSFTPD se ejecute en modo independiente escuchar_IPV6 = sí # vsftpd escuchará en un socket IPv6 en lugar de un ipv4 one pam_service_name = vsftpd # nombre del pam de pam vsftpd usará userList_enable = sí # enable vsftpd para cargar una lista de usernames tcp_wrappers = sí # Encender los envoltorios TCP 

5. Ahora, configure VSFTPD Para permitir/negar el acceso FTP a los usuarios en función del archivo de la lista de usuarios /etc/vsftpd.Lista de usuarios.

Tenga en cuenta que de forma predeterminada, los usuarios enumerados en userlist_file =/etc/vsftpd.Lista de usuarios se les niega el acceso de inicio de sesión con userlist_deny = sí opción si userList_enable = sí.

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

userList_enable = sí # vsftpd cargará una lista de nombres de usuario, desde el nombre de archivo dado por userlist_file userList_file =/etc/vsftpd.UserList # almacena nombres de usuario. userlist_deny = no 

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

A continuación, analizaremos dos posibles escenarios de cómo establecer el directorio de cárcel (raíz local) de chrooted, como se explica a continuación.

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

chroot_local_user = sí 

La opción chroot_local_user = sí Es importante destacar que los usuarios locales se colocarán en una cárcel de chroot, su directorio de inicio de forma predeterminada después de iniciar sesión.

Y también debemos entender que VSFTPD no permite que el directorio de la cárcel de Chroot sea escribida, por defecto por razones de seguridad, sin embargo, podemos usar la opción tOmod_writable_chroot = sí para deshabilitar esta configuración.

Guarde el archivo y cierre. Luego tenemos que reiniciar los servicios VSFTPD para los cambios anteriores para entrar en vigencia:

------------- En Systemd ------------- # SystemCTL reiniciar VSFTPD ------------- Sysvinit ------------- # Servicio VSFTPD reiniciar 

Paso 3: Prueba del servidor VSFTP en Ubuntu

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

$ sudo useradd -m -c "aaron kili, contribuyente" -s /bin /bash aaronkilik $ sudo passwd aaronkilik 

Luego, tenemos que enumerar explícitamente al usuario aaronkilik en el archivo /etc/vsftpd.Lista de usuarios con el comando echo y comando de tee como a continuación:

$ Echo "Aaronkilik" | sudo tee -a /etc /vsftpd.UserList $ Cat /Etc /VSFTPD.Lista de usuarios 

8. Ahora es hora de probar nuestras configuraciones anteriores que funcionan según sea necesario. Comenzaremos probando inicios de sesión anónimos; Podemos ver claramente en la salida a continuación que los inicios de sesión anónimos no están permitidos en el servidor FTP:

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido a TecMint.Servicio COM FTP. 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.Lista de usuarios Se le otorgará permiso para iniciar sesión, lo cual no es cierto de la salida que sigue:

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido a TecMint.Servicio COM FTP. Nombre (192.168.56.10: raíz): usuario 1 530 permiso denegado. error de inicio de sesion. ftp> adiós 221 adiós. 

10. Ahora llevaremos a cabo una prueba final para determinar si un usuario enumerado en el archivo /etc/vsftpd.Lista de usuarios, en realidad se coloca en su directorio de casa después de iniciar sesión. Y esto es cierto a partir de la siguiente salida:

# ftp 192.168.56.102 Conectado a 192.168.56.102 (192.168.56.102). 220 Bienvenido a TecMint.Servicio COM FTP. Nombre (192.168.56.102: Aaronkilik): Aaronkilik 331 Especifique la contraseña. Contraseña: 230 Iniciar sesión exitoso. El tipo de sistema remoto es unix. Usando el modo binario para transferir archivos. FTP> LS 
Verificar FTP Iniciar sesión en Ubuntu

Advertencia: Configurar la opción tOmod_writable_chroot = sí puede ser tan 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 a los usuarios locales en las cárceles de Chroot.

Debido a esta razón, en la sección a continuación, explicaremos un método más seguro para establecer un directorio de raíz local no escritable diferente para un usuario.

Paso 4: Configurar los directorios de inicio del usuario de FTP en Ubuntu

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

$ sudo vi /etc /vsftpd.conf o $ sudo nano /etc /vsftpd.confusión 

y comente la opción no segura utilizando el # personaje como se muestra a continuación:

#DESHING_WRITABLE_CHROOT = SÍ 

A continuación, cree el directorio root local alternativo para el usuario (aaronkilik, El suyo posiblemente no sea lo mismo) y establezca los permisos requeridos al deshabilitar los permisos de escritura a todos los demás usuarios a este directorio:

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

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

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

Posteriormente, agregue/modifique las opciones a continuación 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 a cualquier usuario directorio raíz local 

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

------------- En Systemd ------------- # SystemCTL reiniciar VSFTPD ------------- Sysvinit ------------- # Servicio VSFTPD reiniciar 

13. Ahora, realicemos una verificación final y nos aseguremos de que el directorio raíz local del usuario sea 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 a TecMint.Servicio COM FTP. Nombre (192.168.56.10: Aaronkilik): Aaronkilik 331 Especifique la contraseña. Contraseña: 230 Iniciar 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 del usuario de FTP

Eso es todo! 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 asegurar un servidor FTP utilizando conexiones SSL/TLS en Ubuntu 16.16/04.10, hasta entonces, siempre estén atentos a Tecmint.