Cómo instalar ProFTPD con TLS en Ubuntu 18.04 LTS
ProFTPD es un servidor FTP gratuito, de código abierto y el más popular para sistemas operativos tipo Unix. ProFTPD te permite crear una conexión FTP entre tu ordenador local y el servidor remoto. Es un servidor FTP versátil que soporta TLS (SSL) para conexiones seguras.
Características
- Admite IPv4 e IPv6.
- Admite .ftpaccess para asegurar por directorio.
- Permite configurar múltiples servidores FTP virtuales y servicios FTP anónimos.
- Ofrece soporte para la contraseña sombra, utmp/wtmp, encriptación SSL/TLS y RADIUS.
- Puede ejecutarse como servidor independiente o desde inetd/xinetd.
En este tutorial, aprenderemos a instalar ProFTPD y asegurarlo con TLS en un servidor Ubuntu 18.04
Requisitos
- Un servidor con Ubuntu 18.04.
- Una dirección IP estática 192.168.0.101 configurada en el servidor.
- Una contraseña de root configurada en tu servidor.
Cómo empezar
Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez que tu servidor esté actualizado, reinicia tu servidor para aplicar los cambios.
Instalar ProFTPD
Por defecto, ProFTPD está disponible en el repositorio por defecto de Ubuntu 18.04. Puedes instalarlo simplemente ejecutando el siguiente comando:
apt-get install proftpd -y
Después de instalar ProFTPD, inicia el servicio ProFTPD y habilítalo para que se inicie en el arranque con el siguiente comando:
systemctl start proftpd
systemctl enable proftpd
Puedes comprobar el estado del servicio ProFTPD con el siguiente comando:
systemctl status proftpd
Deberías ver la siguiente salida:
? proftpd.service - LSB: Starts ProFTPD daemon Loaded: loaded (/etc/init.d/proftpd; generated) Active: active (running) since Sat 2019-05-25 09:18:19 UTC; 31s ago Docs: man:systemd-sysv-generator(8) Tasks: 1 (limit: 1114) CGroup: /system.slice/proftpd.service ??1927 proftpd: (accepting connections) May 25 09:18:19 ubuntu1804 systemd[1]: Starting LSB: Starts ProFTPD daemon... May 25 09:18:19 ubuntu1804 proftpd[1906]: * Starting ftp server proftpd May 25 09:18:19 ubuntu1804 proftpd[1906]: ...done. May 25 09:18:19 ubuntu1804 systemd[1]: Started LSB: Starts ProFTPD daemon.
Los archivos de configuración por defecto de ProFTPD se encuentran en /etc/proftpd/proftpd.conf. Puedes verlo con el siguiente comando:
cat /etc/proftpd/proftpd.conf
Deberías ver la siguiente salida:
# # /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes, reload proftpd after modifications, if # it runs in daemon mode. It is not required in inetd/xinetd mode. # # Includes DSO modules Include /etc/proftpd/modules.conf # Set off to disable IPv6 support which is annoying on IPv4 only boxes. UseIPv6 on # If set on you can experience a longer connection delay in many cases. IdentLookups off ServerName "Debian" # Set to inetd only if you would run proftpd by inetd/xinetd. # Read README.Debian for more information on proper configuration. ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayChdir .message true ListOptions "-l" DenyFilter \*.*/ # Use this to jail all users in their homes # DefaultRoot ~ # Port 21 is the standard FTP port. Port 21 MaxInstances 30 # Set the user and group that the server normally runs at. User proftpd Group nogroup # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 022 # Normally, we want files to be overwriteable. AllowOverwrite on TransferLog /var/log/proftpd/xferlog SystemLog /var/log/proftpd/proftpd.log
Puedes cambiar la configuración anterior según tus necesidades, como se muestra a continuación:
- NombreServidor: Puedes cambiarlo como tu nombre de servidor por defecto.
- UseIPV6: Puedes desactivarlo cambiándolo a off.
- DefaultRoot: Puedes descomentar esta línea para restringir a los usuarios con sus carpetas de inicio.
- Puerto: Puedes definir tu propio puerto cambiándolo.
- SystemLog: La ubicación por defecto del archivo de registro. Puedes cambiarlo según tus necesidades.
Una vez hecho esto, puedes pasar al siguiente paso.
Asegurar ProFTPD con TLS
ProFTPD ya está instalado. Ahora, tendrás que configurar ProFTPD con TLS para las conexiones FTP seguras.
Antes de empezar, tendrás que instalar OpenSSL en tu servidor. Puedes instalarlo simplemente ejecutando el siguiente comando:
apt-get install openssl -y
Una vez completada la instalación, genera los certificados SSL para ProFTPd con el siguiente comando:
openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Responde a todas las preguntas como se muestra a continuación:
Generating a 1024 bit RSA private key .++++++ .......................++++++ writing new private key to '/etc/ssl/private/proftpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:IN State or Province Name (full name) [Some-State]:GUJ Locality Name (eg, city) []:Junagadh Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT Organizational Unit Name (eg, section) []:IT Common Name (e.g. server FQDN or YOUR name) []:HITESH Email Address []:[email protected]
El comando anterior generará dos archivos /etc/ssl/private/proftpd.key y /etc/ssl/certs/proftpd.crt.
A continuación, proporciona los permisos adecuados a los archivos generados con el siguiente comando:
chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt
Una vez hecho esto, puedes pasar al siguiente paso.
Configurar ProFTPD para usar SSL
A continuación, tendrás que configurar ProFTPD para que utilice certificados SSL. Puedes hacerlo editando el archivo /etc/proftpd/proftpd.conf:
nano /etc/proftpd/proftpd.conf
Descomenta la siguiente línea:
Include /etc/proftpd/tls.conf
Guarda y cierra el archivo, cuando hayas terminado. A continuación, abre el archivo /etc/proftpd/tls.conf:
nano /etc/proftpd/tls.conf
Cambia las siguientes líneas:
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRequired on TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired TLSVerifyClient off
Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio ProFTPD con el siguiente comando:
systemctl restart proftpd
Una vez hecho esto, puedes pasar al siguiente paso.
Crear un usuario para ProFTPD
A continuación, tendrás que crear un usuario de ProFTPD para acceder al servidor. Puedes hacerlo con el siguiente comando:
adduser ftp1
Responde a todas las preguntas que se muestran a continuación:
Adding user `ftp1' ... Adding new group `ftp1' (1006) ... Adding new user `ftp1' (1002) with group `ftp1' ... Creating home directory `/home/ftp1' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for ftp1 Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
Una vez que lo hayas hecho, puedes pasar al siguiente paso.
Acceder al servidor ProFTPD con FileZilla
Ahora que ProFTPD está instalado y configurado, es el momento de acceder a ProFTPD a través de FileZilla desde el sistema Cliente.
En primer lugar, tendrás que instalar FileZilla en tu sistema Cliente. Puedes instalarlo simplemente ejecutando el siguiente comando:
apt-get install filezilla -y
Una vez completada la instalación, puedes abrir el FileZilla desde el dash de Unity como se muestra a continuación:
Ahora, haz clic en el Administrador de Sitios en el panel lateral izquierdo y crea un nuevo sitio. Deberías ver la siguiente página:
Ahora, proporciona la dirección IP de tu servidor FTP, selecciona el protocolo, selecciona la encriptación, selecciona el tipo de inicio de sesión, proporciona el nombre de usuario y la contraseña. A continuación, haz clic en el botón Conectar. Deberías ver la siguiente página:
Ahora, acepta el certificado, marca «Confiar siempre en el certificado en futuras sesiones» y haz clic en el botón Aceptar. Después de conectarte con éxito, deberías ver la siguiente página:
Ahora puedes transferir archivos de forma segura a través de SSL/TLS.
Enhorabuena! has instalado y configurado con éxito el servidor ProFTPD y lo has asegurado con el cifrado SSL/TLS. Ahora puedes transferir tu archivo desde tu ordenador local al servidor FTP fácilmente con una encriptación segura. No dudes en preguntarme si tienes alguna duda.