GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configuración segura del servidor ProFTPD en CentOS 7 con TLS

Objetivo

El objetivo es configurar primero un servidor ProFTPD básico en CentOS 7. Una vez que tengamos una configuración básica del servidor FTP, agregaremos el modo pasivo de FTP y aumentaremos la seguridad agregando Transport Layer Security (TLS).

Por último, agregamos una configuración anónima opcional para permitir que el usuario anónimo inicie sesión en el servidor FTP sin nombre de usuario y contraseña.

Sistema operativo y versiones de software

  • Sistema operativo: – Versión de CentOS Linux 7.5.1804
  • Software: – ProFTPD Versión 1.3.5e

Requisitos

Acceso privilegiado a su sistema Ubuntu como root o a través de sudo se requiere comando.

Dificultad

MEDIO

Convenios

  • # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
  • $ – comandos de Linux dados para ser ejecutados como un usuario regular sin privilegios

Instrucciones

Configuración básica de FTP

Comencemos por la instalación y configuración básica del servidor ProFTP. Esto incluye instalación, definición de reglas de firewall y pruebas de clientes.

Configuración del servidor

El servidor FTP ProFTPD es parte de un repositorio EPEL. Por lo tanto, el primer paso es habilitar el repositorio EPEL y luego instalar el servidor ProFTPD:

# yum install epel-release
# yum install proftpd

A continuación, inicie el servidor ProFTPD y confirme su inicio correcto comprobando si hay un puerto abierto 21

# service proftpd start
# ss -nlt

A continuación, debemos insertar un todo en el firewall del servidor para permitir el tráfico entrante en el puerto 21

# firewall-cmd --add-port=21/tcp --permanent
# firewall-cmd --reload 

Para confirmar un puerto entrante abierto 21 ejecutar:

# firewall-cmd --list-ports

Configuración del servidor FTP de Basig usando ProFTPD en CentOS 7

En esta etapa, cualquier usuario del sistema existente puede iniciar sesión por FTP en el servidor ProFTPD recién configurado. Opcionalmente podemos crear un nuevo usuario, p. lubos con acceso al directorio /var/ftp-share :

# useradd lubos -s /sbin/nologin -d /var/ftp-share
# passwd lubos
# chmod -R 750 /var/ftp-share
# setsebool -P allow_ftpd_full_access=1

Conexión de cliente

En este punto, deberíamos poder realizar una conexión FTP desde una computadora cliente remota. La prueba más fácil es usar el ftp comando.

Dado que nuestro servidor ProFTPD se puede resolver a través de ftp.linuxconfig.org nombre de host y usuario lubos existe ejecutar:

$ ftp ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
230 User lubos logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
NOTA: ¡Tenga en cuenta que en este momento solo podemos hacer "conexiones FTP activas"! Cualquier intento de crear una "conexión FTP pasiva" fallará.

Configuración de FTP en modo pasivo

Configuración del servidor

Para permitir que nuestro servidor FTP acepte también una conexión FTP pasiva, ejecute los siguientes comandos para habilitar conexiones pasivas en el rango de puertos efímeros registrados en IANA:

echo "PassivePorts 49152 65534" >> /etc/proftpd.conf

Reinicie el servidor ProFTPD:

# service proftpd restart

Abrir cortafuegos para puertos en el rango 49152-65534 :

# firewall-cmd --add-port=49152-65534/tcp --permanent
# firewall-cmd --reload

Confirme que los puertos se han abierto correctamente:

# firewall-cmd --list-ports

Configure el servidor ProFTPD para recibir conexiones FTP pasivas.

Conexión de cliente FTP

Como antes, ahora podemos probar la conexión pasiva de FTP usando el ftp dominio. Asegúrate de que esta vez usas -p opción como se muestra a continuación:

$ ftp -p ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
230 User lubos logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,1,111,209,252).
150 Opening ASCII mode data connection for file list
226 Transfer complete
ftp> 

¡Todo está funcionando como se esperaba!

Servidor FTP seguro con TLS

Configuración del servidor

En caso de que planee usar su servidor FTP fuera de su red de área local, se recomienda usar algún tipo de encriptación. Afortunadamente, configurar ProFTPD con TLS es extremadamente fácil. Primero, si aún no está disponible, instale openssl paquete:

# yum install openssl

A continuación, cree un certificado con el siguiente comando. El único valor obligatorio es Common Name cuál es el nombre de host de su servidor FTP:

# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generating a 1024 bit RSA private key
...++++++
.......++++++
writing new private key to '/etc/pki/tls/certs/proftpd.pem'
-----
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) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:ftp.linuxconfig.org
Email Address []:

A continuación, como usuario raíz, abra /etc/sysconfig/proftpd usando su editor de texto favorito y cambie:

FROM:
PROFTPD_OPTIONS=""
TO:
PROFTPD_OPTIONS="-DTLS"

Una vez que esté listo, reinicie el servidor ProFTPD:

# service proftpd restart

Conexión de cliente

Esta vez usamos FileZilla como nuestro cliente de prueba de FTP:

Cree una nueva conexión FTP. Para probar TLS, asegúrese de seleccionar un Encryption correcto y Logon Type .

El cliente FTP le advertirá sobre el Unknown Certificate . Marca Always Trust y presiona OK .

Conexión encriptada TLS exitosa.

Configurar usuario FTP anónimo

Configuración del servidor

Para permitir que un usuario anónimo inicie sesión en el servidor FTP, abra /etc/sysconfig/proftpd usando su editor de texto favorito y cambie:

FROM:
PROFTPD_OPTIONS="-DTLS"
TO:
PROFTPD_OPTIONS="-DTLS -DANONYMOUS_FTP"

Arriba asumimos que ya ha habilitado TLS previamente. Cuando esté listo, reinicie el servidor FTP:

# service proftpd restart

Conexión de cliente

Usando FileZilla como nuestro cliente de pruebas FTP:

Como Logon Type selecciona Anonymous

Conexión FTP anónima exitosa.

Apéndice

Bloquear/Rechazar el acceso FTP del usuario

En caso de que necesite bloquear/rechazar el acceso al servidor FTP de cualquier usuario del sistema, agregue su nombre de usuario en /etc/ftpusers . Un nombre de usuario por línea. Si lo hace, cualquier intento de usuario de iniciar sesión fallará con 530 error de inicio de sesión:

$ ftp ftp.linuxconfig.org
Connected to ftp.linuxconfig.org.
220 FTP Server ready.
Name (ftp.linuxconfig.org:lubos): lubos
331 Password required for lubos
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Cent OS
  1. Cómo instalar un servidor FTP en CentOS 7 con VSFTPD

  2. Cómo configurar un servidor FTP con VSFTPD en Ubuntu 20.04

  3. Servidor ProFTPD

  4. Configurar el servidor VPN IPSec con Libreswan en CentOS 8

  5. Cómo instalar un servidor FTP en CentOS 7

Cómo instalar el servidor FTP vsftpd con SSL/TLS en CentOS 8

Cómo instalar ProFTPD con TLS en CentOS 7.2

Cómo proteger el servidor CentOS 7 con ModSecurity

Cómo configurar un servidor de respaldo centralizado con Amanda en CentOS 7

Cómo instalar y configurar el servidor FTP en CentOS

Cómo configurar un servidor FTP con ProFTPD en Ubuntu 18.04