Configurar un servidor FTP en Linux con VSFTPD

Un servicio FTP es uno de los soportes básicos de otros servicios que puedas ofrecer en un servidor para posibilitar el acceso a los ficheros presentes en el mismo. Una de las soluciones más conocidas en Linux es VSFTPD (Very Secure FTP Daemon, demonio de FTP muy seguro), de hecho es la elegida por distribuciones como Ubuntu para ofrecer ese servicio por defecto.

Veamos brevemente cómo ponerlo en marcha.

Instalación

Deberemos instalar el paquete: vsftpd en nuestro equipo. Si utilizamos:

  • Debian, Ubuntu y otras derivadas: apt-get install vsftpd
  • Red Hat, Cent OS, Fedora y derivadas: yum install vsftpd

En caso de no encontrarlo, buscad en vuestros repositorios (apt-cache search vsftpfd o yum search vsftpd) y mirad qué paquete debéis instalar. Si aún así no lo encontráis, agregad más paquetes a vuestro sistema de gestión de paquetes.

Configuración

Ahora que tenemos instalado el servicio deberemos asignar usuarios y enjaularlos para que sólo puedan acceder a los espacios que determinemos. El fichero de configuración, al igual que todo este tipo de servicios, está en el directorio /etc, es el siguiente: /etc/vsftpd.conf.

El fichero es bastante autoexplicativo pero aún así vamos a comentar las líneas de mayor interés:

  • Acceso a usuarios anónimos: anonymous_enable
  • Mensaje de bienvenida: ftpd_banner
  • Permitir escritura en el servidor (lo más frecuente será activarla): write_enable
  • Enjaular a los usuarios (necesario para asegurar la confidencialidad de los datos). Tres ficheros:
    • chroot_local_user=YES
    • chroot_list_enable=YES
    • chroot_list_file=/etc/vsftpd/chroot_list

Con esto terminamos de configurar las opciones básicas. Lo que tenemos que hacer ahora es crear el fichero chroot_list que contendrá una lista de los usuarios a enjaular de la siguiente forma:

usuario1

usuario2

Y así todos. Sólo tendremos que crear tantas líneas con usuarios del sistema que vayan a tener acceso al FTP como queramos.

Expliquemos este punto. Los usuarios del servicio FTP serán los usuarios del sistema. Se pueden usar los llamados “usuarios fantasmas”, pero en este manual no nos centraremos en este punto. Veamos cómo crear y gestinar los usuarios.

Crear usuarios

Ya que tenemos el servicio configurado en sus opciones básicas pasemos a crear los usuarios que accederán al sistema. Los usuarios serán por defecto los del sistema pero podemos crear usuarios que no tengan shell asignada para dedicarlos ex professo al uso del FTP.

Crearemos un usuario y lo asignaremos a /home2/codecti1/public_html/linuxhispano.net que es donde se encuentran los datos web, el usuario se llamará “prueba” y tendrá de contraseña “probando”.

$ sudo adduser –home /home2/codecti1/public_html/linuxhispano.net –no-create-home –shell /bin/bash prueba

Ahora nos pedirá la contraseña y paso seguido debemos añadir el usuario al grupo del FTP:

$ sudo addgroup prueba ftp

Repetiremos los mismos pasos, sin olvidarnos de darlos de alta en el fichero para enjaularlos. Con esto ya tendremos listos los usuarios.

Inicio del servicio

Lo siguiente será iniciar el servicio:

/etc/init.d/vsftpd start

En caso de querer reiniciarlo:

/etc/init.d/vsftpd restart

El cómo configurar que el servicio arranque en cada inicio del equipo lo explicaremos otro día en una entrada dedicada sólo a ese tema, configurar los servicios y procesos al inicio del sistema.