En esta entrada voy a describir los pasos básicos para poder instalar en nuestra máquina Linux con Ubuntu 12.04 un servidor FTP. Para ello voy ha utilizar VSFTPD, estas siglas vienen de «Very Secure FTP Daemon», que viene a ser demonio FTP muy seguro. Se encuentra bajo licencia GNU y soporta IPv6 y SSL.
Instalación
La instalación la hacemos desde un terminal, aunque se puede utilizar Synaptic o cualquier otro gestor de paquetes, pero a mi me resulta más fácil desde comandos.
$ sudo apt-get install vsftpd
Configuración
La configuración del servicio se encuentra en un mismo fichero en /etc/vsftpd.conf
, editamos este fichero y modificamos algunas de las opciones.
$ sudo gedit /etc/vsftpd.conf
A continuación detallo las que suelo modificar, evidentemente no están todas las opciones de configuración que ofrece VSFTPD. Como ocurre en otros servicios, la almohadilla (#) marca un comentario.
#Permitir o no el acceso a los usuarios anónimos anonymous_enable=NO #Permitir el acceso de usuarios locales a sus respectivas cuentas local_enable=YES #Activar el modo escritura write_enable=YES #Mensaje de bienvenida ftpd_banner=Bienvenidos... #Encerrar a los usuarios dentro de su propio directorio persona, aumenta la seguridad chroot_local_user=YES #Para que los usuarios puedan ver sus carpetas FTP y no el resto del sistema chroot_list_enable=YES #Lista de usuarios con acceso permitido al FTP chroot_list_file=/etc/vsftpd.chroot_list #Opciones de transferencia #Establece el ancho de banda por cada usuario anónimo anon_max_rate=5100 #Establece el ancho de banda por cada usuario local local_max_rate=5100 #Número máximo de clientes simultáneos max_clients=5 #Máximo número de conexiones por IP max_per_ip=2
Usuarios para utilizar el servicio FTP
Generalmente, cuando instalas el servicio se crea automáticamente el grupo ftp y el directorio /home/ftp, pero si no ocurre esto lo tendremos que crear a mano.
- Creamos el directorio para el usuario dentro de /home/ftp, el directorios será el punto en el que se encuentren todos los directorios para cada usuario del FTP. En este caso, nuestro usuario se llamará copias.
$ sudo mkdir /home/ftp/copias
- Creamos el grupo ftp, puede que ya exista.
$ sudo groupadd ftp
- Ahora creamos el usuario para el FTP, añadiéndolo al grupo ftp y asignándole su directorio.
$ sudo useradd -g ftp -d /home/ftp/copias -c "Copias" copias
- Y ahora se crea la contraseña para el usuario creado.
$ sudo passwd copias
Ahora viene la parte interesante para los usuarios, vamos a crear un shell fantasma, de esta forma el usuario no podrá iniciar sesión en el sistema y esta cuenta únicamente servirá para el FTP.
- Creamos el directorio para el shell.
$ sudo mkdir /bin/ftp
- Añadimos la línea /bin/ftp al fichero /etc/shells.
$ sudo gedit /etc/shells
- Editamos el fichero /etc/passwd
$ sudo gedit /etc/passwd
Buscamos una línea parecida a la siguiente:
copias:1001:1001:Copias:/home/ftp/copias:/bin/sh
Y la modificamos de la siguiente forma:
copias:1001:1001:Copias:/home/ftp/copias:/bin/ftp
Ahora le damos permiso al usuario para que pueda acceder mediante FTP, para ello añadimos el usuario al fichero vsftpd.chroot_list.
$ sudo gedit /etc/vsftpd.chroot_list
Su contenido tiene que ser algo parecido a esto:
#Usuarios permitidos copias
Reiniciar el servicio
Ya sólo nos queda reiniciar el servicio y probarlo.
$ sudo /etc/init.d/vsftpd restart
o con esta otra
$ sudo service vsftpd restart
Espero que os haya servido.
10 respuestas a “VSFTPD en Ubuntu 12.04”
cómo lo probamos?
Hola, para hacer pruebas suelo utilizar Filezilla, conectando a la IP del servidor.
oye y como se si esta bien la instalación y la configuración?
como lo puedo probar de manera local, para saber que esta listo.
Hola Juan Antonio, perdona por la tardanza, una forma fácil de probarlo es desde el mismo equipo, puedes utilizar Filezilla por ejemplo, y te conectas por ftp a tu dirección IP.
Muchas gracias por este tuto, me ha sido de mucha ayuda.
Gracias por tu tiempo 😉
Perdon parece facil pero no entiendo como hacerlo… uso ubuntu hace una semana y solo veo que me tomo ipv4 pero esta super mega lento, se que ipv6 permite mas liberacion pero trate de seguir los pasos señalados y en algun lado diste algo por sobre entendido y me perdi podes enviarme por mail los pasos uno a uno aunque parezcan lo mas pavos que se te ocurran, por ejemplo como encontrar esa carpeta… desde ya gracias y perdon, la ignorancia tiene un precio.
Hola Carlos, el tipo de IP no debe influir en el servicio, ya que éste funciona sobre la interfaz (eth0, eth1…). En cuanto a los pasos, dime exactamente donde te has perdido y lo compruebo.
Un saludo.
Existe alguna forma configurar los datos en alguna consola visual ?
Hola, pues no sabría decirte, creo con webmin puedes, pero tienes que instalarlo.
Hola, funciona perfecto, lo que necesito es que el usuario copie y modifique archivos en /var/www/html donde tengo publicado el sitio, es de desarrollo, cree un usuario john y todo lo que subo va a su carpeta en /home/john/. Estoy migrando de windows, estoy harto con los virus, troyanos etc…
instale lubuntu que anda super, apache2 php, mysqlserver y phpmysql, todo bien, solo falta modificar y actualizar los datos.
He leido por la web el crear otro usuario y agregar al grupo www-data,no tengo mucha experiencia en linux.
espero tu ayuda gracias.