# Descripcion de Nuestro Servidor
ServerName "ProFTPD Server"
# Tipo si es ejecutado como demonio o por el demonio inetd
ServerType standalone
# Atiende todas las peticiones
DefaultServer on
# Puerto que utilizara para las peticiones
Port 21
# Mascara para la creacion de Directorios y Archivos
Umask 007
# Ruta de nuestro archivo Scoreboard que mantiene informacion de las sessiones iniciadas
ScoreboardFile /var/run/proftpd.scoreboard
# Maximo numero de procesos hijos que se pueden expandir
MaxInstances 30
# Permitir sobreescribir
AllowOverwrite on
# Tiempos maximos de espera
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
# Limites
MaxLoginAttempts 3
MaxClientsPerUser 10
MaxClientsPerHost 2
MaxHostsPerUser 4
MaxClients 6
# Usuario y Grupo que ejecutara el demonio de Proftpd
User www-data
Group www-data
# Impedimos el acceso al servidor a algunos usuarios del sistema
DenyUser fitti
# Creara una especie de jaula para que los usuarios solo puedan moverse dentro de su directorio asigando
DefaultRoot ~
# Tipo de autentificacion usado con MySQL o PostgreSQL
SQLAuthTypes Plaintext
SQLAuthenticate users
# Ubicacion, usuario y contraseņa que tiene acceso a la tabla proftpd de nuestro MySQL o PostgreSQL
SQLConnectInfo users_ftp@localhost proftpd contrasena_usuario
# Seleccionamos la informacion que solicitaremos de la tabla proftpd_users
SQLUserInfo proftpd_users userid passwd uid gid homedir shell
# Usuario y Grupo por defecto para la creacion de carpetas y archivos
SQLDefaultGID 33
SQLDefaultUID 33
#SQLMinUserGID 100
#SQLMinUserUID 500
# Si los usuarios son nuevos automaticamente se creara su respetivo homedir en su primer ingreso al servidor
SQLHomedirOnDemand off
# Actualiza informacion de fecha de ingreso y numero de veces que se a ingresado al servidor por usuario
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" proftpd_users
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" proftpd_users
# No permite el ingreso de usuario root
RootLogin off
# No requiere un Valid Shell en el sistema
RequireValidShell off
# Archivos de log
SQLLogFile /var/log/proftpd/mysql.log
# Autentificaciones
LogFormat auth "%v [%P] %h %t \"%r\" %s"
ExtendedLog /var/log/proftpd/auth.log AUTH auth
# Accesos
LogFormat write "%h %l %u %t \"%r\" %s %b"
ExtendedLog /var/log/proftpd/access.log WRITE,READ write
# Deniega la utilizacion de chmod para el cambio de permisos
DenyAll