Este tutorial describe la instalación y configuración de ProFTPD en un servidor CentOS 7.2. ProFTPD es un demonio FTP para sistemas operativos Unix y Linux y se distribuye bajo la Licencia Pública GNU (GPL).
1 nota preliminar
Este tutorial se basa en un servidor CentOS, por lo que debe configurar una instalación básica del servidor CentOS 7.2 antes de continuar con este tutorial. El sistema debe tener una dirección IP estática. Uso 192.168.1.100 como mi dirección IP en este tutorial y server1.example.com como nombre de host.
2 Instalar y configurar ProFTPD
2.1 Instalación:
Requerimos Software del repositorio EPEL, habilítelo de la siguiente manera:
yum -y install epel-release
Luego importe la clave EPEL GPG:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
y actualice los paquetes:
yum -y update
Instalaremos ProFTPD y OpenSSL de la siguiente manera:
yum install -y proftpd openssl proftpd-utils
Necesitamos iniciar el servicio y permitir que se inicie en el arranque automáticamente.
systemctl start proftpd.service
systemctl enable proftpd.service
Si tiene firewalld instalado, configure el Firewall con firewall-cmd para abrir el puerto FTP:
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
Podemos comprobar la versión de ProFTPD de la siguiente manera:
proftpd -v[[correo electrónico protegido] ~]# proftpd -v
ProFTPD versión 1.3.5b
[[correo electrónico protegido] ~]#
2.2 Creación de usuarios de ProFTPD
Crearé un grupo ftpgroup y un usuario tom para ProFTPD. Configuraré /ftpshare como directorio de inicio para el usuario tom.
groupadd ftpgroup
A continuación agregaré el usuario srijan en ftpgroup:
useradd -G ftpgroup tom -s /sbin/nologin -d /ftpshare
passwd tom
[[email protected] ~]# passwd tom
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
Establezca los permisos para el directorio ftpshare:
chmod -R 1750 /ftpshare/
Ahora estamos listos para la conexión ProFTPD. Pero las conexiones aún no están encriptadas, lo resolveremos en el próximo capítulo.
3 Habilitación de TLS en ProFTPD
Para habilitar TLS en ProFTPD, abra /etc/proftpd/proftpd.conf. Antes de editar el archivo, es mejor hacer una copia de seguridad del archivo original y luego editar el archivo con nano.
cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf
Agregue y modifique las líneas como se muestra en rojo.
[...]
DefaultRoot ~ !adm PassivePorts 6000 6100
[...]
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
[...]
He agregado puertos 6000 y 6100 para permitir el modo pasivo de ftp, de manera similar permitiré el modo pasivo a través del servicio de firewall de CentOS de la siguiente manera:
firewall-cmd --add-port=6000-6100/tcp --permanent
firewall-cmd --reload
Podemos verificar el estado de los puertos de la siguiente manera:
firewall-cmd --list-ports
[[email protected] ~]# firewall-cmd --list-ports
6000-6100/tcp
[[email protected] ~]#
Además, debemos decirle a SELINUX que permita la lectura/escritura de los archivos.
setsebool -P allow_ftpd_full_access=1
Para usar TLS, debemos crear un certificado SSL. Lo crearé en /etc/pki/tls/certs, podemos generar el certificado SSL de la siguiente manera:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
[[email protected] certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Generación de una clave privada RSA de 1024 bits
...................................+++ +++
.........++++++
escribiendo una nueva clave privada en '/etc/pki/tls/certs/proftpd.pem'
- ----
Se le pedirá que ingrese información que se incorporará
en su solicitud de certificado.
Lo que está a punto de ingresar es lo que se denomina un Nombre Distinguido o un DN .
Hay bastantes campos pero puede dejar algunos en blanco
Para algunos campos habrá un valor predeterminado,
Si ingresa '.', el campo se dejará en blanco.
-----
Nombre del país (código de 2 letras) [XX]:<--DE
Nombre del estado o provincia (nombre completo) []:<-- Hamburgo
Nombre de la localidad (p. ej., ciudad) [Ciudad predeterminada]: <-- Lüneberg
Nombre de la organización (p. ej., empresa) [Default Company Ltd]:<-- Cómo forjar
Nombre de la unidad organizativa (p. ej., sección) []:<-- Desarrollo
Nombre común (p. ej., su nombre o el nombre de host de su servidor) []:<-- servidor1.ejemplo.com
Dirección de correo electrónico []:<-- [correo electrónico protegido]
[[correo electrónico protegido] certificados]#
Dé los valores anteriores en rojo según su elección, acabo de dar un ejemplo.
Ahora, por razones de seguridad, haré que los certificados solo sean legibles de la siguiente manera:
chmod 0440 /etc/pki/tls/certs/proftpd.pem
Finalmente reinicie el servicio ProFTPD de la siguiente manera:
systemctl restart proftpd.service
Podemos conectarnos al servidor ProFTPD con el software Filezilla, debe tener Filezilla instalado en la computadora cliente para conectarse al servidor. Abra Filezilla y proporcione los detalles de la siguiente manera:
Los detalles serán:
Host =192.168.1.100
Protocolo =FTP
Usuario = tom
Puerto =puede estar en blanco si no lo ha personalizado en otro puerto que no sea 21
Contraseña =ftppassword (recién creado arriba)
Nota:Dado que hemos encriptado nuestra conexión en el paso anterior, usaremos Encriptación con Requerir FTP explícito sobre TLS
Si no ha configurado TLS, puede usar Usar FTP simple
Te pedirá confiar en el certificado, presiona OK
Estará conectado al directorio compartido FTP con conexión TLS.
4 Acceso ftp anónimo en ProFTPD
Podemos crear una cuenta ftp anónima en ProFTPD, solo agregue estas líneas en el archivo de configuración de ProFTPD:
nano /etc/proftpd.conf
Y agregue estas líneas al final del archivo.
[...]
###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
Ahora necesitamos reiniciar el servicio FTP:
systemctl restart proftpd.service
Ahora conéctese a través de Filezilla a la cuenta anon de la siguiente manera:
Nota:Dado que hemos encriptado nuestra conexión en el paso anterior, usaremos Encriptación con Requerir FTP explícito sobre TLS
Si no ha configurado TLS, puede usar Usar FTP simple
Presiona Conectar.
Estamos conectados con éxito al servidor con un usuario anónimo.
¡Felicidades! Ahora hemos configurado con éxito el entorno del servidor ProFTPD en CentOS 7.2 :)
5 Enlaces
- CentOS:http://www.centos.org/
- ProFTPD:http://www.proftpd.org/