La conexión FTP (File Transfer Protocol) ha sido usada hace mucho tiempo para la transferencia de archivos entre equipos de forma segura (relativamente) y completa, pero para nadie es un secreto que estamos en un mundo en línea donde la seguridad cada día es un tema más delicado y que toda la información que viaja en la red esta vulnerable a ser atacada o afectada por algún tipo de amenaza. Esto es algo delicado ya que FTP es muchas veces inseguro porque transmite datos junto con credenciales de usuario sin ningún tipo de cifrado.
Si somos usuarios frecuentes de FTP; Solvetic trae una solución integral para añadir mejores niveles de seguridad en todo el proceso de transferencia de archivos usando este protocolo y es VSFTPD.
- Permite realizar configuraciones de IP virtual
- Podemos crear usuarios virtuales
- Operación autónoma o inetd
- Amplia configurabilidad por parte del usuario
- Gestiona de forma centralizada el ancho de banda
- Configuración de dirección IP por recurso o Per-source-IP
- Establece límites por fuente de IP
- Soporta IPv6
- Soporte de encriptación a través de la integración SSL
- ftp.redhat.com
- ftp.suse.com
- ftp.debian.org
- ftp.freebsd.org
- ftp.gnu.org
- ftp.gnome.org
- ftp.kde.org
- ftp.kernel.org
- rpmfind.net
- ftp.linux.org.uk
VSFTPD emplea un diseño seguro para que todas las transmisiones siempre estén protegidas y así tengamos la seguridad de que no estarán expuestas a atacantes, para ello VSFTPD implementa y ejecuta:
- Todo el análisis y la gestión en datos de red remotos que son considerados potencialmente maliciosos se llevan a cabo en un proceso que se ejecuta como un usuario sin privilegios y este proceso se ejecuta en una chroot (), con el fin de garantizar que solo se pueda acceder al área de archivos ftp.
- Todas las operaciones con privilegios son controladas en un proceso primario privilegiado, el código para este proceso principal privilegiado es lo más pequeño posible por seguridad.
- VSFTPD-2.0.0 introduce soporte para SSL/TLS usando OpenSSL, así, todo el análisis de protocolo se realiza en un chroot (), ejecutándose en un entorno no privilegiado de usuario, con ello, tanto el protocolo OpenSSL preautenticado como el posterior a la autenticación estarán seguros.
Ahora veremos como instalar VSFTPD en Ubuntu 18.
1. Cómo instalar VSFTPD en Ubuntu 18
Por defecto, VSFTPD está disponible en el repositorio de Ubuntu 18.04, de modo que para su instalación ejecutaremos lo siguiente:
sudo apt-get install vsftpd -y
Una vez que VSTFPD haya sido instalado, vamos a iniciar el servicio Vsftpd y habilitarlo en el arranque de Ubuntu 18:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
2. Creación de la estructura de directorio de VSFTPD en Ubuntu 18
En primer lugar, vamos a crear el usuario para acceder a través de FTP, para ello ejecutamos lo siguiente:
sudo adduser vsftpdSerá necesario completar la información, si aplica, desplegada:
Ahora, vamos a crear el directorio ftp y establecer la propiedad con el siguiente comando:
sudo mkdir /home/vsftpd/ftp sudo chown nobody:nogroup /home/vsftpd/ftp sudo chmod a-w /home/vsftpd/ftp
El siguiente paso consiste en crear un directorio para cargar los archivos y se debe brindar propiedad al usuario de vsftp así:
sudo mkdir /home/vsftpd/ftp/test sudo chown vsftpd:vsftpd /home/vsftpd/ftp/test
3. Cómo configurar VSFTPD en Ubuntu 18
Ahora, vamos a llevar a cabo algunas configuraciones para el servidor FTP, en primer lugar, crearemos una copia de seguridad del archivo de configuración original en caso de que algo salga mal y así contar con la integridad del archivo original, para ello ejecutamos lo siguiente:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Accederemos al archivo de configuración usando el editor deseado:
sudo nano /etc/vsftpd.confEste será el archivo de configuración:
Allí añadiremos las siguientes líneas al final de este archivo:
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd pasv_enable=Yes pasv_min_port=10000 pasv_max_port=11000 user_sub_token=$USER local_root=/home/$USER/ftp userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Guardamos los cambios usando la combinación de teclas Ctrl + O y salimos del editor usando Ctrl + X. Ahora, vamos a agregar el usuario de vsftp al archivo /etc/vsftpd.userlist para permitir el acceso FTP:
sudo nano /etc/vsftpd.userlistAllí añadimos el usuario creado para FTP:
Guardamos los cambios usando las teclas Ctrl + O y salimos usando Ctrl + X. Reiniciamos el servicio de VSFTPD para aplicar los cambios:
sudo systemctl restart vsftpd
4. Cómo acceder a VSFTPD en Ubuntu 18
Para acceder a VSFTPD iremos a algún navegador y usaremos la siguiente sintaxis:
ftp://Direccion_IPAl acceder al navegador ingresaremos el usuario y contraseña asignados:
Pulsamos en Aceptar y tendremos acceso a el servidor a través de FTP:
De este modo accedemos con los valores básicos de seguridad de FTP.
5. Cómo asegurar la conexión VSFTPD usando SSL/TLS
Para una mejor seguridad a la hora de transferir información, vamos a habilitar SSL / TLS con el fin de cifrar los datos transferidos a través de FTP.
Para eso, se debe crear un certificado usando OpenSSL con el siguiente comando:
sudo mkdir /etc/cert sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem
En este caso, cuando se crea el certificado se solicitan detalles como:
- Nombre
- Ciudad
- Pais
- Correo, etc.
sudo nano /etc/vsftpd.conf
Allí agregaremos las siguientes líneas al final del archivo:
rsa_cert_file=/etc/cert/vsftpd.pem rsa_private_key_file=/etc/cert/vsftpd.pem ssl_enable=YES 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
Guardamos los cambios usando las teclas Ctrl + O y salimos del editor usando las teclas Ctrl + X.
6. Cómo acceder a FTP usando SSL/TLS en Ubuntu 18
No será posible acceder al servidor FTP a través de SSL/TLS desde un navegador, para ello será necesario instalar el cliente FTP de FileZilla con el fin de acceder al servidor FTP ya que este admite FTP sobre SSL/TLS, para instalar este cliente vamos a ejecutar lo siguiente:
sudo apt-get install filezilla -yUna vez instalado, en este caso vamos a acceder desde Ubuntu 18.04 Desktop, accedemos a la aplicación donde veremos lo siguiente:
Allí vamos al menú Archivo / Gestor de sitios y en la nueva ventana pulsamos en el botón Nuevo sitio y lo configuramos de la siguiente manera:
- Asignamos un nombre al sitio FTP
- En el campo Servidor ingresamos la IP del servidor a conectar
- En el campo Protocolo seleccionamos FTP – Protocolo de Transferencia de Archivos
- En la sección Cifrado definimos Requiere FTP explícito sobre TLS
- En el campo Modo de acceso establecemos Preguntar la contraseña e ingresamos el nombre del usuario creado en VSFTPD
Pulsamos en el botón Conectar y se desplegará el siguiente mensaje. Allí definimos si deseamos guardar o no las contraseñas.
Pulsamos en Aceptar e ingresaremos la contraseña del usuario seleccionado:
Pulsamos en Aceptar y ahora veremos el certificado que se ha añadido con los detalles que hemos configurado:
Pulsamos en Aceptar y ahora se tendrá acceso al servidor FTP protegido con SSL/TLS:
Hemos visto como usar VSFTPD para crear conexiones seguras, completas y dinámicas en Linux.