Categorías: Tutoriales

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.

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • Excelente guía! Ya la he guardado en mi disco duro local, y también una copia en la nube. En algún momento haré la prueba de instalación vsftpd. Gracias por la información.

  • @John Ortiz: Me alegro que sea de utilidad. Otro día trataré el tema de los usuarios virtuales y la configuración de servicios al arranque (en derivadas de Debian y en derivadas de Red Hat), que son temas que seguro que interesan.

  • Explicación muy sencilla. Os dejo un mini howto que redacté hace tiempo, para no olvidar como configurar VSFTPD con autenticación local y con directorio activo de Microsoft.
    vsftpd+AD
    Espero os resulte de interés.

  • @lotor: Genial, la tecnología PAM y la posible unión de la autenticación VSFTPD a distintos servicios como el directorio activo es uno de los puntos más interesantes a la hora de montar sistemas de cierta envergadura.

  • Muy buen tutorial. Yo ya lo he tenido instalado pero no había profundizado en estas opciones, gracias por los tips de configuración!

  • Hermano, muchas gracias por la info... de inmensa utilidad!!!!
    Como puede ver en mi blog, estaba realizando un trabajo para la U y andaba un poco embalado con esto.

    Saludos desde Colombia.

    Jorge Esteban Pulgarin Medina.

  • @Jorge: Me alegro que te haya servido. Si necesitas más información sobre VSFTP dínoslo e intentaremos hacer una entrada al respecto.

  • En una instalacion de Red Hat, cuando escribo el comando FTP + IP me sale de un solo la pantalla de bienvenida del servidor FTP, el sitio tiene user y pasword definido, en que fichero se define eso, para que no pida el user and passwd?

    Gracias.

  • @Mario: Creo que lo que quieres es un servidor FTP con acceso anónimo habilitado. Mira en el fichero vsftpd.conf y establece los siguientes parámetros:

    anonymous_enable=YES
    write_enable=NO
    anon_root=/var/ftp
    anon_max_rate=2048000

    Creo que escribiré una entrada al respecto para explicar todo con más claridad.

  • Gracias por tu ayuda carazo, lo que queria era saber que fichero tocar para entrar a un sitio FTP sin que me pidiera login y passwd, encontre un fichero en el linux .netrc y alli me fije que tenia metidas las machines a las cuales se conectaba sin pedir user and password, lo edite para poner el servidor nuevo que pusieron de FTP y listo, ya funciona. ojo este fichero existe en el home de cada usuario del linux, en mi caso solo era cambiar el de ROOT.

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace