Páginas

martes, 4 de febrero de 2014

pure-ftpd FreeBSD

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!.

No hay comentarios:

Publicar un comentario