Pure-FTPd: un exelente servidor FTP con interfaz gráfica

Enviado por Neo el 14 Abril, 2010 - 06:00.

Yo pensaba que vsftpd era lo único y lo mejor que existía en Linux para transferencia de archivos por la red (FTP). vsftpd no es un mal servidor, de hecho es uno de los más completo, estable y sencillo que conozco, sin embargo para los que tenemos que hacer cambios constantes en nuestro FTP llega el momento que trabajar con vsftpd resulta un poco incómodo, el mero hecho de añadir un nuevo usuario resulta un problema pues aunque después de hacerlo nos sentimos satisfechos no obstante el proceso es tedioso. Hace unos días le instalé un servidor FTP a un amigo en su centro de trabajo con el vsftpd, como resultado cada vez que quería hacer un cambio en su FTP necesitaba llamarme por teléfono a la casa para que yo fuera a su trabajo pues para él era muy difícil trabajar con el vsftpd. Pensé que con algo más sencillo como el Filezilla resolvería su problema, pero vi que no existe un Filezilla server para linux, así que decidí intalar el Pure-FTPd con el PureAdmin como una alternativa al Filezilla server pues dispone de un interfaz gráfica y demás. Pero luego de instalarlo, para mi sorpresa, vi que el pure-FTPd es mucho más que un sencillo servidor FTP con un interfaz gráfica. Tiene características exelentes que le hacen único, entre ellas puedo mencionar:

1. El manejo de los usuarios se lleva a cabo independientemente de los archivos del sistema /etc/passwd y /etc/shadow. A diferencia del vsftpd que siempre crea usuarios en el /etc/passwd, y ya sea virtuales o no siempre los pone en el login del inicio de sesión (esto es una cosa que nunca me gustó). El pure-FTPd maneja los usuarios en un archivo independiente, normalmente /etc/pure-ftpd/pureftpd.passwd.
2. Para crear un nuevo usuario sólo es cuestion de una linea en el prompt o dos clicks en su interfaz de configuración.
3. No sólo el manejo de los usuarios se hace fácil sino también la forma de establecer las políticas y los permisos. Esto se lleva a cabo mediante archivos independientes que tienen como contenido la política a establecer, o sea, el pure-FTPd no depende de un archivo de configuración único como el vsftpd.conf, proftpd.conf, etc.
4. Como ya dije dispone de un interfaz gráfica bastante completa, mucho mejor que la del Filezilla server de Windows.
5. Cuenta con un exelente sistema de monitoreo, ya sea desde la consola o desde su interfaz gráfica.

Bueno, acerca de las ventajas que les puede ofrecer el pure-FTPd sobre otros servidores FTP no les seguiré hablando, dejaré que lo prueben ustedes mismos y se den cuenta de que hay incluso mucho más de lo que les digo.
Les explicaré brevemente el proceso de instalación y configuración básica para un servidor FTP totalmente funcional, cómodo, sencillo y robusto, con su interfaz gráfica.
Pues bien, empezemos de una vez:

Instalación:
Desde consola ejecutar:

# apt-get install pureadmin

Con la instalación del pureadmin ya se instala automáticamente el servidor pure-ftpd, el pureadmin es el interfaz gráfica.

Configuración:
1. Creación de un usuario y grupo para el FTP
(En nuestro caso lo haremos desde consola, no obstante para la creación del usuario FTP y el grupo sólo hay que abrir el pureadmin y el mismo lo hará en ese momento)
Como root ejecutar desde consola:

# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /etc ftpuser

2. Creación de un directorio para el FTP

# mkdir /home/ftp

3. Creación de un usuario FTP

# pure-pw useradd usuario -u ftpuser -d /home/ftp

4. Creación de base de datos del usuario

# pure-pw mkdb

5. Hacemos un link al archivo PureDB

# ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB

6. Denegamos acceso a anonymous

# echo yes > /etc/pure-ftpd/conf/NoAnonymous

7. Denegamos autenticación PAM

# echo no > /etc/pure-ftpd/conf/PAMAuthentication

Algunas configuraciones adicionales serían:
8. Limitar el número de usuarios

# echo 10 > /etc/pure-ftpd/conf/MaxClientsNumber

9. No permitir mostrar los ficheros ocultos

# echo no > /etc/pure-ftpd/conf/DisplayDotFiles

10. Denegar lectura y escritura de ficheros ocultos

# echo yes > /etc/pure-ftpd/conf/ProhibitDotFilesRead
# echo yes > /etc/pure-ftpd/conf/ProhibitDotFilesWrite

11. Prohibimos ejecución de chmod

# echo yes > /etc/pure-ftpd/conf/NoChmod

12. Reiniciamos el servicio

# invoke-rc.d pure-ftpd restart

11. Verificamos que la configuración concuerde con la que hicimos

# pure-pw show usuario

Y ya podemos disfrutar de nuestro FTP!

El monitoreo, como dije, puede ser desde consola o desde el interfaz gráfica:
1. Desde consola, ejecutar como root:

# pure-ftpwho

2. Desde el interfaz:

Abrirla y mirar :D

Las demás opciones de configuración quedan por ustedes y el interfaz gráfica está de lo más buena.

Ahh, si se utiliza un firewall como el shorewall se deben abrir los puertos 20 y 21 por tcp (FTP-DATA y FTP):

ACCEPT net $FW tcp 20,21

Aclaro que hice toda la configuración desde consola pues por interfaz gráfica no se requiere de explicación alguna, sin embargo para la consola sí, pero todo lo hecho con respecto al manejo y configuración de los usuarios se puede hacer directamente y perfectamente desde el pureadmin (el interfaz gráfica).

Imagen de kamikaze
Enviado por kamikaze el 14 Abril, 2010 - 08:43.

Ains!!! Pure-Ftpd el gran olvidado por algunos ;) . Llevo mucho tiempo usandolo y cada vez me gusta mas ^_^ , por cierto si lo acompañas de Fail2Ban, se hace mas divertido.

Aunque animo mas,a que se use la linea de comandos para configurarlo que la parte grafica.

Un Saludo

Imagen de cnicolas
Enviado por cnicolas el 14 Abril, 2010 - 09:41.

Gracias por la guia Neo, la opción de hacer algo por consola es la que prefiero en casi todos los casos.

Imagen de Neo
Enviado por Neo el 14 Abril, 2010 - 12:32.
cnicolas escribió:

Gracias por la guia Neo, la opción de hacer algo por consola es la que prefiero en casi todos los casos.

Si, yo igual, soy alérgico a las X, no obstante esta mini-guía la pensé para los usuarios a los que se les hace difícil trabajar con la consola, y no lo digo solamente porque el pureFTPd tenga un interfaz gráfica, sino porque aún desde consola es bastante fácil trabajar con él.

Imagen de Lince
Enviado por Lince el 15 Abril, 2010 - 11:53.

Hola estoy probando el servidor PureAdmin en Ubuntu y me da error con esto:

echo "100:20" > /etc/pure-ftpd/conf/Quota

Me dice que no encuentra dos cifras o algo asi cuando inicio el demonio desde comando, a alguien mas le ha pasado?

Un saludo e interesante servidor

Imagen de toniusco
Enviado por toniusco el 15 Abril, 2010 - 12:50.

Una de las cosas que mas me gusta es que los usuarios los puedes tener en una base de datos, por lo que además de ser virtuales, puedes crear una aplicación web para gestionarlos.

Un saludo.

Imagen de Pato Silva
Enviado por Pato Silva el 15 Abril, 2010 - 13:55.
Lince escribió:

Hola estoy probando el servidor PureAdmin en Ubuntu y me da error con esto:

echo "100:20" > /etc/pure-ftpd/conf/Quota

Me dice que no encuentra dos cifras o algo asi cuando inicio el demonio desde comando, a alguien mas le ha pasado?

Un saludo e interesante servidor

La preguntas en el foro por favor.

Imagen de Neo
Enviado por Neo el 16 Abril, 2010 - 00:46.
Lince escribió:

Hola estoy probando el servidor PureAdmin en Ubuntu...

El servidor no se llama PureAdmin sino pure-FTPd, PureAdmin es sólo un interfaz gráfica del mismo.

Lince escribió:

...me da error con esto:

echo "100:20" > /etc/pure-ftpd/conf/Quota

Me dice que no encuentra dos cifras o algo asi cuando inicio el demonio desde comando, a alguien mas le ha pasado?

Un saludo e interesante servidor

Sí. Yo no suelo poner quotas a los usuarios, así que no había trabajado en eso, pero ahora que leo lo que me dices hice la prueba y ciertamente parece que no funciona de esa manera, aunque así es como viene en el manual. Bueno pues nada, para evitar confusión borro esa línea y te pongo aquí la solución (la encontré en /usr/share/doc/pure-ftpd-common/README.Virtual-Users.gz):

# pure-pw usermod usuarioftp -n 100 -N 20

Explicación:
1. El comando "pure-pw usermod" trabaja parecido a "pure-pw useradd", execpto que el primero (usermod) modifica una cuenta envéz de crearla.
2. usuario = el usuario FTP al que se le establecerá un sistema de quotas.
3. -n = máximo número de archivos permitidos
4. -N = tamaño máximo de archivos expresado en Mb

En este caso hemos modificado la cuenta de usuarioftp añadiéndole una quota. Este usuario será limitado a 100 archivos y 20 Mb.

Para verificar que todo ha sido hecho correctamente, ejecutar como root:

# pure-pw show usuarioftp

donde usuarioftp es el usuario al que le ha establecido quotas.

PD: ejecutar pure+TABULACION en consola y ver todos los comandos, ir al man de cada uno de ellos pues está bastante completo. También hay documentación y ejemplos en /usr/share/doc/pure-ftpd-common.

Imagen de arctica
Enviado por arctica el 16 Abril, 2010 - 00:48.
Pato Silva escribió:

La preguntas en el foro por favor.

...

De nuevo, ahora yo. En los blogs no se hacen ni se responden preguntas

Imagen de Neo
Enviado por Neo el 16 Abril, 2010 - 00:52.
arctica escribió:
Pato Silva escribió:

La preguntas en el foro por favor.

...

En los blogs no se hacen ni se responden preguntas

Cierto, mis disculpas. Es que ya que decidí borrar la línea referente a las quotas pensé que no vendría mal una justificación, pues no sería prudente borrar una línea así por así sin dar explicación alguna.
Mis disculpas nuevamente y saludos.

Imagen de diavlo
Enviado por diavlo el 16 Abril, 2010 - 01:36.

Ah parece interesante, lo probare, suena bien para instalares a usuarios acostumbrados a interfaces gráficas(windows??).

Y claro excelente guía.