La F ile T transferir P rotocol (FTP) sigue siendo una tecnología ampliamente utilizada para mover archivos a través de una red informática. Es famoso por ser liviano, fácil de configurar y usar. FTP tiene una mala reputación como protocolo inseguro porque transmite contraseñas y datos en texto sin formato. Sin embargo, los servidores FTP modernos como ProFTPD admiten FTP sobre TLS, por lo que la conexión se cifra mediante TLS/SSL. En este tutorial, le mostraré cómo configurar ProFTPD para que la conexión se cifre mediante TLS.
ProFTPd es una aplicación de servidor FTP de código abierto que le permite configurar sus propios servidores FTP en máquinas Linux, más aún si son servidores dedicados o instancias en la nube. Vamos a instalar la última versión de ProFTPD en una máquina con Ubuntu 20.04 utilizando los repositorios de Focal Fossa, pero también debería funcionar bien en la mayoría de las distribuciones basadas en Debian. También configuramos TLS para proteger las conexiones FTP.
Requisitos
- Una instancia de servidor nueva, con Ubuntu 20.04 (Focal Fossa) instalado.
- Privilegios de Sudo/root para instalar/configurar aplicaciones.
Actualizando su sistema
Siempre es una buena idea actualizar su sistema antes de instalar cualquier paquete o software, especialmente cuando proviene de repositorios externos. Usaremos la utilidad "apt-get" para eso:
sudo apt-get update -y sudo apt-get upgrade -y
Reinicie su servidor si hay actualizaciones del kernel para aplicar los cambios
sudo reboot now
Instalación del servidor ProFTPD
Ahora que su sistema está actualizado, podemos continuar con la instalación de ProFTPD.
De forma predeterminada, ProFTPD está disponible en los repositorios de Focal Fossa, que puede instalar con el siguiente comando:
sudo apt-get install proftpd -y
Una vez que se completa la instalación, puede iniciar el servicio proftpd y permitir que se inicie automáticamente en el momento del arranque.
sudo systemctl start proftpd sudo systemctl enable proftpd
Ahora que el servicio se está ejecutando, podemos verificar su estado usando:
sudo systemctl status proftpd
Puede ver el activo (en ejecución) en verde para que sea seguro concluir que el demonio proftpd está funcionando como se esperaba.
Los archivos de configuración predeterminados de ProFTPD están disponibles en el directorio /etc/proftpd/proftpd.conf.
Puede ver el contenido del archivo de configuración ejecutando:
sudo nano /etc/proftpd/proftpd.conf
La configuración se divide en varias secciones de directivas. Echemos un vistazo a esas directivas.
La directiva DefaultRoot le dice al servidor FTP dónde servir los archivos de forma predeterminada. El valor de DefaultRoot puede ser una ruta absoluta o relativa. Cuando la directiva DefaultRoot se establece en ~ (el carácter de tilde), los usuarios estarán restringidos a sus directorios de inicio. Puede cambiar la ruta a otra carpeta, por ejemplo:
DefaultRoot /home/Linux/Docs
Puede usar varias directivas para configurar cada usuario en un directorio específico. Por ejemplo:
DefaultRoot /home/linux A
DefaultRoot / B
Esas líneas indican que el usuario A iniciará sesión en /home/linux El directorio y el usuario B iniciarán sesión en todo el sistema.
La directiva ServerName se utiliza para definir un nombre para el servidor FTP. Esta directiva se puede usar en registros y notificaciones, por lo que debe configurarla con un nombre descriptivo que sea significativo para usted.
ServerName "Vitux"
La directiva Port define el número de puerto en el que el servidor FTP escuchará las conexiones. El valor predeterminado de esta directiva es 21.
Creación de usuarios de ProFTPD
Por razones de seguridad, debe crear una cuenta de usuario ficticia, con permiso restringido, que solo tenga acceso a su directorio de inicio. Esta es una buena práctica a seguir cuando permite que los usuarios carguen o descarguen archivos en su servidor FTP.
La versión instalada de ProFTPD no viene con usuarios creados previamente ni opciones de configuración listas para usar. Tendremos que agregar un nuevo usuario para este propósito.
Vamos a crear un usuario FTP linuxways con la carpeta /home/linuxways como la carpeta de inicio.
sudo useradd -m linuxways
Cree una nueva contraseña para el nuevo usuario.
sudo passwd linuxways
Ahora puedes probar la conexión FTP usando el usuario “linuxways”. Abra su cliente FTP preferido (FileZilla, CoreFTP o cualquier otro), complete los detalles como dirección IP, nombre de usuario, contraseña y puerto y haga clic en Conexión rápida .
Como puede ver, ahora podemos acceder al FTP con el usuario recién creado. El servidor ProFTPd se está ejecutando y funciona como se esperaba.
En caso de que desee agregar más usuarios, simplemente créelos usando el comando useradd con su nombre de usuario deseado. También puede otorgar privilegios de raíz a un usuario de FTP si es necesario.
Configurar TLS para ProFTPD
Para asegurar la conexión FTP, puede usar TLS. En esta sección, configuraremos ProFTPD con un certificado TLS de Let's Encrypt (un proveedor de SSL gratuito) y activaremos el certificado recién creado dentro del archivo de configuración.
Primero, instale OpenSSL
sudo apt-get install openssl -y
Ahora que tenemos OpenSSL instalado, generemos un certificado SSL.
sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Echemos un vistazo rápido a lo que está sucediendo aquí. Estamos creando el directorio donde se crearán los certificados SSL (/etc/ssl), generando la solicitud de certificado y otorgándole una vigencia de un año (365 días). También estamos especificando el archivo de clave privada y el archivo de certificado. Tendrá que responder algunas preguntas sobre su organización como la siguiente. Simplemente escribe la respuesta y pulsa Intro
El comando anterior creará dos archivos:proftpd.key y proftpd.crt que necesitaremos para configurar ProFTPD.
Cambie el permiso de los archivos clave y a 600.
sudo chmod 600 /etc/ssl/private/proftpd.key sudo chmod 600 /etc/ssl/certs/proftpd.crt
Ahora necesitamos editar el archivo de configuración principal, ubicado en /etc/proftpd/proftpd.conf y agregue información sobre nuestros archivos de certificado recién creados.
sudo nano /etc/proftpd/proftpd.conf
Descomente la sección SSL y TLS eliminando el "#" al principio de la línea, para que pueda usar FTP sobre SSL.
Guarde y cierre el archivo. Ahora vamos a configurar el archivo tls.conf
sudo nano /etc/proftpd/tls.conf
Busque y descomente las siguientes líneas eliminando el "#" al principio de cada línea.
Guarde y cierre el archivo. No olvide reiniciar el servicio.
sudo systemctl restart proftpd
Si desea verificar si todo funciona como se espera, use un cliente FTP y conéctese a su servidor con SSL habilitado. Debería recibir una advertencia TLS de su cliente FTP
Es común recibir advertencias TLS de clientes FTP. Después de permitir o Aceptar la advertencia, se debe establecer la conexión SSL y puede continuar usando el cliente FTP como de costumbre.
Conclusión
En este tutorial, instalamos ProFTPD en nuestro servidor Ubuntu 20.04, creamos un usuario para la conexión FTP y probamos su funcionalidad. También hemos configurado TLS para proteger la conexión FTP de espionaje o manipulación de datos en tránsito. En caso de que necesite más información sobre las opciones de configuración de ProFTPD, asegúrese de consultar su documentación oficial.