Configuración de un servidor FTP Pure-ftpd con usuarios virtuales
Pure-ftpd es un país libre (BSD), con calidad de producción segura y servidor FTP estándar conforme.
Esta guía proporciona instrucciones para utilizar el sistema de usuario virtual para gestionar y controlar a los usuarios. Mediante el uso de usuarios virtuales, cuentas FTP se pueden administrar sin afectar las cuentas del sistema.
Iniciar la instalación de Pure-ftpd:
# portsnap
# cd /usr/ports/ftp/pure-ftpd
# make config-recursive
Un menú emergente contiene opciones de compilación de Pure-ftpd. Es posible incluir y excluir opciones. En mi caso, he optado por dejar estas opciones en sus valores por defecto.
# ee /var/db/ports/pure-ftpd/options
WITH_UTF8=true
WITH_LARGEFILE=true
# make install clean distclean
# rehash
Al finalizar el proceso de instalación empezaremos copiando el archivo
de configuración de ejemplo y establecer los permisos adecuados:
# cd /usr/local/etc
# cp pure-ftpd.conf.sample pure-ftpd.conf
# chmod 444 pure-ftpd.conf
Ajustar valores net.inet.ip.portrange.{first,last} en /etc/sysctl.conf
Fase de configuración:
# ee pure-ftpd.conf
# Rango de puertos para conexiones de respuestas pasivas. - Para los
# cortafuegos.
PassivePortRange 30000 30900
# Dirección IP/puerto para escuchar (default = todas IP y puerto 21).
# Bind 127.0.0.1,21
# Si desea registrar todos los comandos del cliente, ajústelo a "sí".
# Esta directiva puede ser duplicado para también registrar
# las respuestas del servidor.
VerboseLog yes
# PureDB base de datos de usuario (see README.Virtual-Users)
PureDB /usr/local/etc/pureftpd.pdb
# Crear un archivo de registro adicional con transferencias
# registradas en el estándar W3C Formato # (compatible con
# la mayoría de los analizadores de registros comerciales)
AltLog w3c:/var/log/pureftpd.log
# Creación automática de los directorios de inicio si se han perdido
CreateHomeDir yes
# No permitir conexiones anónimas. Sólo permitirá a los usuarios autenticados.
NoAnonymous yes
# No permitir a los usuarios anónimos para subir nuevos archivos
# (no = se permite cargar)
AnonymousCantUpload yes
# Número máximo de clientes sim con la misma dirección IP
MaxClientsPerIP 5
# Máximo numero de usuarios simultaneos
MaxClientsNumber 50
# Máscara de creación de archivos.
: .
# 177:077 si se siente paranoico.
Umask 022:022
# UID mínimo para un usuario autenticado que entrar
MinUID 100
La opción CreateHomeDir permite añadir usuarios virtuales más fácil mediante la creación del directorio principal de un usuario al iniciar sesión por primera vez.
Existe la posibilidad de importar usuarios con cuentas en el sistema (definidos en /etc/master.passwd) a la vez o crear nuevos usuarios de forma manual. Para importar los usuarios que ya existen en el sistema a usuarios virtuales FTP con la herramienta pure-pwconvert:
# pure-pwconvert >> /usr/local/etc/pureftpd.passwd
# chmod 600 /usr/local/etc/pureftpd.passwd
# pure-pw mkdb
No olvidemos que la pure-pwconvert sólo importa las cuentas que tienen
acceso a una consola. Las cuentas con la shell establecida a nologin
se tienen que añadir de forma manual.
Para agregar usuarios a la base de datos de usuarios virtual Pure-FTPd
manualmente, tenemos que crear una cuenta a nivel de sistema que se
asociará con los usuarios virtuales. Crear un nuevo usuario llamado ftp:
Crear una cuenta a nivel de sistema:
# pw useradd -n ftp -s /sbin/nologin -w no -d /home/ftp -c "FTP user" -m
Nota: Al instalar pureftp, se crea un grupo de ftp, pero ningún usuario ftp, lo que da como resultado el error "mail pure-ftpd:(?:?) [ERROR] Unable to find the 'ftp' account". So we need to manually create the ftp user.
Llegados a esta punto, ahora podemos agregar usuarios a la base de datos de usuarios virtuales utilizando los siguientes comandos:
Agregar usuarios a la base de datos de usuarios virtuales:
# pure-pw useradd ftpuser1 -u ftp -g ftp -d /home/ftp/ftpuser1
# pure-pw mkdb
# pure-pw useradd ftpuser2 -u ftp -g ftp -d /home/ftp/ftpuser2
# pure-pw mkdb
Permitir direcciones IP de clientes:
# pure-pw usermod remote_user -r 95.21.88.35
# pure-pw mkdb
Restablecer la contraseña del usuario ftpuser2:
# pure-pw passwd fptuser2
# pure-pw mkdb
Ver información acerca del usuario ftpuser1
# pure-pw show fptuser1
Para ver una lista de los usuarios:
# pure-pw list
Eliminar el usuario ftpuser2
# pure-pw userdel fptuser2
# pure-pw mkdb
Iniciar Pure-FTPd:
# /usr/local/etc/rc.d/pure-ftpd onestart
Determinar si pure-ftpd se está ejecutando:
Probando el servidor FTP:
Para que Pure-FTPd se inicie durante el arranque:
# echo 'pureftpd_enable="YES"' >> /etc/rc.conf
Reiniciar pure-ftpd
# /usr/local/etc/rc.d/pure-ftpd restart
Rotar archivo de registro pure-ftpd:
# vim /etc/newsyslog.conf
/var/log/pureftpd.log 600 7 100000 * JC /var/run/pure-ftpd.pid
# /etc/rc.d/newsyslog restart
Pure-ftpd proporciona características útiles para los usuarios personales, así como los proveedores de alojamiento. Esta es solo una configuración básica, para más opciones de configuración visite la página web del proyecto.
Fuente:
http://download.pureftpd.org/pub/pure-ftpd/doc/FAQ
http://www.pureftpd.org/project/pure-ftpd/doc
http://forums.freebsd.org/showthread.php?t=591
Unix es genial!.