Pure-FTPd es un servidor FTP gratuito, seguro, listo para entornos operativos y que se apega a estándares. Pure-FTPd no es un servicio cargado de características inútiles ni con un millón de protocolos soportados que nadie usa, por el contrario se enfoca en la eficiencia y la facilidad de uso y aquí te digo cómo instalar Pure-FTPd en Centos 7 y Centos 6.
Como instalar Pure-FTPd en Centos
Tener un FTP que funcione y lo haga de forma segura puede ser un dolor de cabeza, te lo digo por experiencia, pero Pure-FTPd simplemente funciona y lo hace sin complicados scripts, configuraciones ni archivos extraños. Pero que además lo pueda hacer de forma segura cuando sea necesario pues el protocolo FTP es inseguro al enviar los datos de autentificación en texto plano por lo que alguien que capture tráfico puede ver tu usuario y contraseña con muy poco esfuerzo, para evitar esto puedes configurar Pure-FTPd para que utilice un cifrado TLS en la comunicación y aquí vamos a ver como configurar de forma segura un servidor FTP en Centos.
Instalar Pure-FTPd en Centos 6 y Centos 7
Para instalarlo en cualquiera de las 2 versiones de Centos abre una terminal y teclea el comando siguiente:
yum install pure-ftpd
El siguiente paso es configurar que el servicio arranque de forma automática cuando inicia el servidor.
Centos 6
chkconfig --levels 235 pure-ftpd on
Centos 7
systemctl enable pure-ftpd
Para configurar que Pure-FTPd funcione de forma segura vamos a utilizar TLS para cifrar la comunicación, esto requiere que edites el archivo /etc/pure-ftpd/pure-ftpd.conf y des comentar la linea que se muestra adelante.
nano /etc/pure-ftpd/pure-ftpd.conf
# 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
Es necesario crear un certificado con el que se pueda autenticar esa comunicación y lo puedes hacer así:
mkdir -p /etc/ssl/private/ openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Al momento de crear el certificado debes proporciona algunos datos, aquí te muestro un ejemplo de lo que puedes ingresar.
Country Name (2 letter code) [XX]:MX State or Province Name (full name) []: Nuevo Leon Locality Name (eg, city) [Default City]: Monterrey Organization Name (eg, company) [Default Company Ltd]: ComoInstalarLinux.com Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:comoinstalarlinux.com Email Address []:webmaster@comoinstalarlinux.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Una vez que tengas el archivo .pem ahora debes modificar los permisos de ese archivo y reiniciar el servicio
Centos 6
chmod 600 /etc/ssl/private/pure-ftpd.pem /etc/init.d/pure-ftpd restart
Centos 7
chmod 600 /etc/ssl/private/pure-ftpd.pem systemctl restart pure-ftpd
Para permitir que algunos usuarios accedan al servidor debes crearlos y luego agregarlos a la lista de usuarios de Pure-FTPd, aquí te muestro como se crearía el usuario «soporte».
useradd soporte passwd soporte
Una vez que tengas creado el usuario en Centos debes conocer si UID y su GID , puedes verlo con los siguientes comandos
id -u soporte id -G soporte
Y te mostrará el ID del usuario y el ID del grupo respectivamente, estos datos te servirán para crear el usuario de Pure-FTPd
pure-pw useradd soporte -u 501 -g 501 -d /home/soporte pure-pw mkdb
Aquí debes remplazar soporte por el nombre de usuario que desees crear, luego reemplaza el primer valor 501 por el UID que te arrojó el comando id -u, y luego reemplaza el segundo 501 por el GID que te dio el comando id -G.
Si estás detrás de un firewall o en servicios como AWS necesitarás indicar ciertos puertos para la transferencia de datos en modo pasivo para hacerlo edita de nuevo el archivo de configuración y cambia los valores en la línea de parecida a esta:
# Port range for passive connections replies. - for firewalling. PassivePortRange 39599 39699
Estos valores deben coincidir con los puertos habilitados en tu firewall o en el Security Group Inbound en Amazon Web Services si es que utilizas alguno de estos servicios.
En caso de que tengas problemas para autenticarte puedes activar la opción para utilizar las configuración de centos.
# If you want simple Unix (/etc/passwd) authentication, uncomment this UnixAuthentication yes
Solo resta que pruebes el servicio conectado a tu servidor con un cliente FTP que soporte FTP explícito sobre TLS como puede ser Filezilla.
Pure-FTPd es un servidor FTP seguro y versátil que puedes instalar en un servidor Linux en poco tiempo, espero que te sea de gran utilidad.
Tu Servidor y Amigo
Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM
By DAVID LEON MELGOZA 07/02/2015 - 1:55 pm
Muy buen aporte para los inquietos que quieren aprender LINUX desgraciadamente no se tiene toda la información para tdas las versiones que cambian constantemente. Me interesa la version 6 de CENTOS pero no la encuentro de donde la puedo descargar?
By Luis Armando Medina 07/03/2015 - 10:59 am
Puedes ayudarte de los mirros de Centos, en estos puedes encontrar todas las versiones. Para acceder a estos debes ir a la página centos.org y da click en el botón «Get Centos Now» luego en la parte de abajo hay un enlace que dice «list of current mirrors» ahí encontrarás la lista de los sitios donde podrás descargar la versión que necesites de centos. Saludos
By Roberto Ramirez 04/01/2016 - 11:10 pm
Buen post y como complemento dejo como abrir el puerto 21 en centos 7
$ firewall-cmd –permanent –add-port=21/tcp
$ firewall-cmd –reload