pure-ftpd

  • 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

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

  • 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>

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 o openssl 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 o echo 1 > /etc/pure-ftpd/conf/TLS
  • reiniciar el servidor para que se apliquen los cambios:/etc/init.d/pure-ftpd restart

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.

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

  • linux/paquetes/pureftpd.txt
  • Darrera modificació: 24/10/2018 02:09
  • per mate