Este artículo explica cómo configurar PureFTPd para aceptar sesiones TLS en un servidor CentOS 7. Plain FTP es un protocolo inseguro porque todas las contraseñas y todos los datos se transfieren en texto claro. Mediante el uso de TLS, toda la comunicación se puede cifrar, lo que hace que el FTP sea mucho más seguro.
1 nota preliminar
Debería tener una configuración de PureFTPd en funcionamiento en su servidor CentOS 7, p. como se muestra en este tutorial:alojamiento virtual con PureFTPd y MySQL (incluida la gestión de cuotas y ancho de banda) en CentOS 7.
2 Instalación de OpenSSL
TLS necesita OpenSSL; para instalar OpenSSL, simplemente ejecutamos:
yum install openssl
3 Configuración de PureFTPd
Abra /etc/pure-ftpd/pure-ftpd.conf...
nano /etc/pure-ftpd/pure-ftpd.conf
Si desea permitir FTP y Sesiones TLS, establezca TLS en 1:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 1 [...]
Si desea aceptar solo sesiones TLS (sin FTP), establezca TLS en 2:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 2 [...]
Para no permitir TLS en absoluto (solo FTP), establezca TLS en 0:
[...] # This option can accept three values : # 0 : disable SSL/TLS encryption layer (default). # 1 : accept both traditional and encrypted sessions. # 2 : refuse connections that don't use SSL/TLS security mechanisms, # including anonymous sessions. # Do _not_ uncomment this blindly. Be sure that : # 1) Your server has been compiled with SSL/TLS support (--with-tls), # 2) A valid certificate is in place, # 3) Only compatible clients will log in. TLS 0 [...]
Luego elimine el # delante de las siguientes 2 líneas:
TLSCipherSuite HIGH
CertFile /etc/ssl/private/pure-ftpd.pem
y guarde el archivo de configuración modificado.
4 Creando el certificado SSL para TLS
Para usar TLS, debemos crear un certificado SSL. Lo creo en /etc/ssl/private/, por lo tanto, primero creo ese directorio:
mkdir -p /etc/ssl/private/
Posteriormente, podemos generar el certificado SSL de la siguiente manera:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Nombre del país (código de 2 letras) [XX]:<-- Ingrese el nombre de su país (por ejemplo, "DE").
Nombre del estado o provincia (nombre completo) []:<-- Ingrese el nombre de su estado o provincia .
Nombre de la localidad (p. ej., ciudad) [Ciudad predeterminada]:<-- Ingrese su ciudad.
Nombre de la organización (p. ej., empresa) [Empresa predeterminada Ltd]:<-- Ingrese el nombre de su organización (p. ej., , el nombre de su empresa).
Nombre de la unidad organizativa (p. ej., sección) []:<-- Ingrese el nombre de su unidad organizativa (p. ej., "Departamento de TI").
Nombre común (p. ej., su nombre o el nombre de host de su servidor) []:<-- Ingrese el nombre de dominio completo del sistema (por ejemplo, "server1.example.com").
Dirección de correo electrónico []:<-- Ingrese su dirección de correo electrónico.
Cambiar los permisos del certificado SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Finalmente, reinicie PureFTPd:
systemctl restart pure-ftpd.service
Eso es todo. Ahora puede intentar conectarse usando su cliente FTP; sin embargo, debe configurar su cliente FTP para usar TLS; consulte el siguiente capítulo sobre cómo hacerlo con FileZilla.
5 Configuración de FileZilla para TLS
Para usar FTP con TLS, necesita un cliente FTP que admita TLS, como FileZilla o el complemento FireFTP en Firefox.
En FileZilla, abra el Administrador del sitio:
Seleccione el servidor que usa PureFTPd con TLS; en el menú desplegable Tipo de servidor, seleccione Requerir FTP explícito sobre TLS en lugar de FTP normal:
Ahora puede conectarse al servidor. Si hace esto por primera vez, debe aceptar el nuevo certificado SSL del servidor:
Si todo va bien, ahora debería iniciar sesión en el servidor:
6 Enlaces
- FTP puro:http://www.pureftpd.org/
- FileZilla:http://filezilla-project.org/
- CentOS:http://www.centos.org/