pure-ftpd
enlaces de interés
- comandos/opciones: http://edoceo.com/howto/pure-ftpd
- instalación + webui: http://www.debianhelp.co.uk/pureftp.htm
- otro webui: https://pure-ftpd-webui.org/
instalación
apt-get install pure-ftpd pure-ftp-common
- crear usuario/grupo:
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
- añadir verificación usando BDD «propia»
cd /etc/pure-ftpd/auth
ln -s ../conf/PureDB 50pure
echo «/etc/pure-ftpd/pureftpd.pdb» > /etc/pure-ftpd/conf/PureDB
- eliminar métodos alternativos de autentificación
echo no > /etc/pure-ftpd/conf/PAMAuthentication
echo no > /etc/pure-ftpd/conf/UnixAuthentication
configuración
básica
pure-ftpd no se basa en un fichero de configuración «puro», sino en parámetros por línea de comando que se van suministrando de diversas formas.
Una de ellas, es añadiendo los valores que queremos dar a los parámetros escribiendo ficheros en el directorio /etc/pure-ftpd/conf
ejemplos:
echo «2» > /etc/pure-ftpd/conf/TLS
echo «no» > /etc/pure-ftpd/conf/PAMAuthentication
saber quien hay conectado: pure-ftpwho
parámetros
- notruncate
- logpid <file>
- ipv4only
- ipv6only
- fscharset <charset>
- clientcharset <charset>
- trustedgid <gid>
- chrooteveryone
- brokenclientscompatibility
- daemonize
- maxclientsnumber <number>
- maxclientsperip <number>
- verboselog
- displaydotfiles
- anonymousonly
- noanonymous
- syslogfacility <facility>
- fortunesfile <file>
- pidfile <path to pid file>
- norename
- dontresolve
- anonymouscantupload
- maxidletime <time (min)>
- createhomedir
- maxdiskusagepct <percentage>
- keepallfiles
- login <auth> or <auth>:<config file>
- limitrecursion <number:number>
- maxload <load>
- anonymouscancreatedirs
- natmode
- uploadscript
- altlog <format>:<log file>
- passiveportrange <minport:maxport>
- forcepassiveip <ip address>
- anonymousratio <upload ratio>:<download ratio>
- userratio <upload ratio>:<download ratio>
- autorename
- nochmod
- antiwarez
- bind <ip address,port>
- anonymousbandwidth <bandwidth (KB/s)>
- userbandwidth <bandwidth (KB/s)> or [<up bw>]:[<down bw>]
- minuid <uid>
- umask <mask>
- bonjour <name>
- trustedip <ip address>
- allowuserfxp
- allowanonymousfxp
- prohibitdotfileswrite
- prohibitdotfilesread
- peruserlimits <per user max>:<max anonymous sessions>
- allowdotfiles
- customerproof
- tls < 0:no TLS 1:TLS+cleartext 2:enforce TLS 3: enforce encrypted data channel as well>
TLS
para activar TLS, hay que:
- tener instalado el paquetel OpenSSL:
apt-get install openssl
- crear certificado digital autofirmado:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
oopenssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
- cambiar los permisos del mismo
chmod 600 /etc/ssl/private/pure-ftpd.pem
- indicar que queremos forzar (2) o que existe la opción (1) de conectar mediante este método:
echo 2 > /etc/pure-ftpd/conf/TLS
oecho 1 > /etc/pure-ftpd/conf/TLS
- reiniciar el servidor para que se apliquen los cambios:
/etc/init.d/pure-ftpd restart
usuarios
autentificación
se pueden usar varios métodos de autentificación
- PAM
- Unix
- PureDB
- BBDD externas (MySQL, Posgress)
para activar un método de autentificación, hay que crear un enlace simbólico en el directorio /etc/pure-ftpd/auth
hacía los ficheros de configuración (ya sea para indicar su estado, como en los casos de PAM y Unix) o para indicar la ubicación de los ficheros de configuración (en el resto de casos).
esto quedaría:
- /etc/pure-ftpd/auth/50pure → ../conf/PureDB
- /etc/pure-ftpd/65unix → ../conf/UnixAuthentication
- /etc/pure-ftpd/70pam → ../conf/PAMAuthentication
y los ficheros destino del enlace simbólico tendrían este contenido, respectivamente:
- /etc/pure-ftpd/pureftpd.pdb
- no
- no
en el primer caso, indica el path donde se encuentra el fichero que configura la autentificación por BDD interna.
uso del pure-pw para la gestión de usuarios
para la gestión de usuarios con la BDD interna propia de pure-ftpd, hay que usar el comando pure-pw
.
- listar usuarios:
pure-pw list
- datos de un usuario:
pure-pw show <username>
- crear usuario:
pure-pw useradd <username> -u ftpuser -g ftpgroup -d <dir>
- resetear contraseña:
pure-pw passwd <username> -m
- borrar usuario:
pure-pw userdel <username> -m
- limitar ancho de banda:
pure-pw usermod <username> -t 10 -T 10 -m
(-t download, -T upload) - maximo MB upload:
pure-pw usermod <username> -N 10 -m
(10Mb) - bloquear IPs de conexión:
pure-pw usermod <username> -R 192.168.2.0/24 -m
- autorizar IPs:
pure-pw usermod <username> -r 192.168.2.0/24 -m
- intervalo de acceso:
pure-pw usermod <username> -z 0900-1600 -m
al acabar siempre hay que escribir los datos en la BDD: pure-pw mkdb