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-portsConfiguració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-portsConfigure 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 unEncryption
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:
ComoLogon 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>