Este documento describe cómo instalar y configurar ProFTPD en CentOS 7.0 Server. ProFTPD es un demonio FTP para sistemas operativos Unix y similares a Unix. ProFTPD se desarrolla, publica y distribuye bajo la Licencia Pública GNU (GPL), que básicamente lo establece como software libre, lo que significa que se puede vender, licenciar y manipular de cualquier otra forma que se desee, siempre que el código fuente completo y completo acompañe a cualquier ProFTPD empaqueta o está disponible en todos y cada uno de los sitios que distribuyen archivos binarios precompilados. El software puede ser modificado por cualquier persona en cualquier momento, siempre que todos los trabajos derivados también tengan la licencia pública GNU.
1 nota preliminar
Este tutorial se basa en el servidor CentOS 7.0, por lo que debe configurar una instalación básica del servidor CentOS 7.0 antes de continuar con este tutorial. El sistema debe tener una dirección IP estática. Uso 192.168.0.100 como mi dirección IP en este tutorial y server1.example.com como nombre de host.
2 Instalar ProFTPD
2.1 Instalación:
Para esto habilite EPEL de la siguiente manera:
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
Primero instalaremos ProFTPD y OpenSSL de la siguiente manera:
yum install -y proftpd openssl proftpd-utils
Necesitamos iniciar los servicios
systemctl start proftpd.service
systemctl enable proftpd.service
Además en CentOS 7.0 necesitamos configurar Firewall-cmd para el servicio ftp de la siguiente manera:
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.5
[[correo electrónico protegido] ~]#
2.2 Creación de usuarios de ProFTPD
Para ello crearé un grupo ftpgroup y el usuario srijan para ProFTPD. Restringiré el usuario srijan con el directorio de inicio como /ftpshare
groupadd ftpgroup
A continuación agregaré el usuario srijan en ftpgroup:
useradd -G ftpgroup srijan -s /sbin/nologin -d /ftpshare
passwd srijan
[[email protected] ~]# passwd srijan
Changing password for user srijan.
New password: <--ftppassword
Retype new password: <--ftppassword
passwd: all authentication tokens updated successfully.
[[email protected] ~]#
A continuación, debemos hacer que el directorio esté protegido contra la eliminación y el cambio de nombre de su contenido por parte de cualquier usuario, por lo que cambiaremos los permisos del directorio de la siguiente manera:
chmod -R 1777 /ftpshare/
Ahora estamos listos para la conexión ProFTPD
Ahora podemos iniciar sesión con el usuario srijan y la contraseña en ftp://192.168.0.100
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 como se muestra a continuación:
cp /etc/proftpd.conf /etc/proftpd.conf.bak
nano /etc/proftpd.conf
Dar las entradas como se muestra
[...]
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]:<-- ISPConfig
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 motivos 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 el cliente para conectarse al servidor. Abra Filezilla y proporcione los detalles de la siguiente manera:
Los detalles serán
Host =192.168.0.100
Protocolo =FTP
Usuario =srijan
Puerto =puede estar en blanco si no ha personalizado 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
Pedirá confiar en los certificados presione OK
Estará conectado al directorio compartido FTP con TLS conexión.
4 Acceso ftp anónimo en ProFTPD
Podemos crear una cuenta ftp anónima en ProFTPD, simplemente agregue estas entradas en el archivo de configuración de ProFTPD:
nano /etc/proftpd.conf
Y agregue estas entradas 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 los servicios:
systemctl restart proftpd.service
Ahora conéctelo a través de Filezilla 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
Presione Conectar:
Le pedirá que confíe en los certificados presione OK
Nos hemos conectado con éxito al servidor con un usuario anónimo.
¡Felicidades! Ahora hemos configurado con éxito el entorno del servidor ProFTPD en CentOS 7.0 :)
5 Enlaces
- CentOS:http://www.centos.org/
- ProFTPD:http://www.proftpd.org/