• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Blog Gabriel de Bonis

Web Developer, Qlik, Freelancer, IOS & Android Developer

  • Servidores
  • Programación Web
  • Tecnología
  • SharePoint
  • Podcast Bonistir
  • Tecno Arcade

Como instalar un servidor FTP en Ubuntu Server usando VSFTPD

12/11/2013 by Gabriel Deja un comentario

VSFTPD se distingue principalmente porque sus valores predeterminados son muy seguros y por su sencillez en la configuración. Actualmente se presume que vsftpd podría ser quizá el servidor FTP más seguro del mundo.

En este post voy a explicar como instalar VSFTPD en Ubuntu Server.

Empezamos con este comando para realizar su instalación:

sudo apt-get update
sudo apt-get install vsftpd

Una vez instalado editamos su fichero de configuración para afinar mas su seguridad:

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

Nos aseguramos que tenemos habilitados estos parámetros:

anonymous_enable=NO
local_enable=YES
write_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
connect_from_port_20=YES
pasv_min_port=40110
pasv_max_port=40210

Aqui pongo una breve explicación de estos parametros:

Parámetro anonymous_enable, desactivar acceso a usuarios anónimos, para mayor seguridad.

anonymous_enable=NO

Parámetro local_enable, permitir a los usuarios autenticados tener sus propias carpetas locales.

local_enable=YES

Parámetro write_enable, perrmitir el modo de escritura en su carpeta.

write_enable=YES

También debemos abrir los puertos 20 y 21 para FTP, el puerto 990 para cuando habilitemos a posterior TLS y el rango de puertos 40000-50000 como puertos pasivos. Os remito a mi post de como configurar un firewall en linux usando iptables

Ahora reiniciamos el servidor para que se tengan en cuenta estos cambios:

sudo /etc/init.d/vsftpd restart

El siguiente paso es crear nuestros usuarios FTP para enjaularlos en su propio directorio FTP:

sudo adduser tu_usuario_ftp

Añadir grupo al usuario.

Ahora agregamos el usuario al grupo ftp y en mi caso también al grupo de apache para que pueda escribir en una carpeta de una aplicacion web concreta:

sudo usermod -a -G www-data tu_usuario_ftp
sudo usermod -a -G ftp tu_usuario_ftp

Añadir direcotrio por defecto del usuario.

En mi caso quiero que cada usuario ftp acceda a una carpeta de cada aplicacion web alojada en apache

sudo usermod -d /var/www/tu_aplicacion_web tu_usuario_ftp

Ahora reiniciamos el servidor para que se tengan en cuenta estos cambios:

sudo /etc/init.d/vsftpd restart

Ahora ya podriamos entrar por ftp con este usuario a la carpeta home del usuario creado que la hemos cambiado a una carpeta de una de las aplicaciones web que tengamos alojada en apache.

Ahora tocaría configurar VFTP para que las conexiones siempre vayan cifradas.

Lo primero que tenemos que hacer es generarnos un certificado, os remito a mi post que explica muy bien los certificados ssl

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Una vez generado el certificado nos toca de nuevo editar el fichero de confiuracion para añadir las siguientes lineas:

sudo nano /etc/vsftpd.conf

Comentamos las siguientes las lineas del fichero:

# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Y añadimos las siguientes:

ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Por último nos queda reiniciar el servicio para aplicar los cambios

sudo systemctl restart vsftpd

Ya sólo queda acceder por FTP usando vuestro cliente ftp favorito. Os recomiendo usar Filezilla y cuando configures las conexion marcar la opcion de modo pasivo y aceptar el certificado autofirmado.

Comparte esto:

  • Haz clic para compartir en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic para compartir en X (Se abre en una ventana nueva) X
  • Haz clic para compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Haz clic para compartir en Tumblr (Se abre en una ventana nueva) Tumblr
  • Haz clic para compartir en WhatsApp (Se abre en una ventana nueva) WhatsApp
  • Haz clic para compartir en Telegram (Se abre en una ventana nueva) Telegram

Me gusta esto:

Me gusta Cargando...

Publicado en: Servidores

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Tecno Arcade

Tecno Arcade

Tecno Arcade

Archivos

Feed RSS RSS: Entradas

Feed RSS RSS: Comentarios

Paginas

  • Política de Privacidad

Copyright © 2025 · Genesis Sample Theme on Genesis Framework · WordPress · Acceder

%d