Mi Blog
👉 Cómo configurar cuotas de disco en ProFTPD

Cómo configurar cuotas de disco en ProFTPD

 
(5 votos)

Limitar el espacio y la cantidad de ficheros en ProFTPD es bastante sencillo de configurar. Controlar tanto el tamaño que pueden ocupar los ficheros de los usuarios, como la cantidad de ficheros almacenados en el FTP, es algo casi imprescindible a la hora de configurar e instalar un servidor FTP robusto. De esta forma, podremos controlar a todos los usuarios y gestionar bien los recursos disponibles en el servidor FTP.

Seguid leyendo y aprenderéis como activar y configurar las Quotas en ProFTPD de forma fácil y sencilla...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ SON LAS CUOTAS?

Existen dos tipos básicos de las cuotas de disco.

  • La primera, conocida como cuota de uso o cuota de bloques, limita la cantidad de espacio en disco que puede ser utilizado.
  • La segunda, conocida como cuota de archivo o de inodo, limita el número de archivos y directorios que se pueden crear.

Además, los administradores suelen definir un nivel de advertencia, o cuota blanda, en la que se informa al usuario que se están acercando a su límite, que es menor que el límite efectivo, o cuota dura. También puede haber un intervalo de gracia pequeño, lo que permite a los usuarios violar temporalmente sus cuotas en ciertas cantidades, si es necesario. Cuando una cuota blanda es sobrepasada, el sistema envía normalmente al usuario (y en ocasiones al administrador también) algún tipo de mensaje.

 

 

Con las "Quotas" podremos limitar el espacio y el total de ficheros transferidos por FTP.

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un equipo con GNU/Linux y ProFTPD instalado y configurado
  • Conexión a Internet (por si necesitamos instalar algún programa)
  • Cliente FTP

 

 

2.- CONFIGURACIÓN INICIAL

Para la configuración inicial del servidor FTP, partiremos de la configuración del anterior tutorial donde se explicaba Cómo crear usuarios virtuales en ProFTPD. Si es necesario, editad o borrad los campos que no sea necesarios en vuestro caso:

Include /etc/proftpd/modules.conf

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

DefaultRoot ~
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>

 

 

Es necesario realizar las operaciones con usuario root o con sudo.

 

 

3.- ACTIVAR SOPORTE DE CUOTAS

Para activar el uso de las cuotas en ProFTPD, es necesario añadir las líneas siguientes, donde le indicamos que arranque el motor de cuotas y en qué ficheros estarán definidas las configuraciones de las cuotas. También es útil indicarle un fichero de log donde podemos ver si todo funciona correctamente ó si por el contrario, existe algún error.

<IfModule mod_quotatab.c>
QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
<IfModule mod_quotatab_file.c>
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
</IfModule>
</IfModule>

 

 

No debe olvidarse añadir la línea de Include para poder usar los módulos de ProFTPD de mod_quotatab y mod_quotatab_file:

Include /etc/proftpd/modules.conf

 

 

Para que los cambios sean efectivos, hay que reiniciar ProFTPD con uno de estos 2 comandos:

raul@ns1:~$ sudo /etc/init.d/proftpd restart
raul@ns1:~$ sudo service proftpd restart

 

 

4.- CREACIÓN DE CUOTAS

El siguiente paso es crear las cuotas, pero primeramente explicaré los diferentes tipos de cuotas que podemos crear.

Las cuotas de tipo Limit sirven para fijar unos máximos, bien de descarga de contenido, subida de contenido, ratios etc... y las cuotas de tipo Tally nos permiten llevar la cuenta de la cantidad de ficheros subidos o descargados hasta ese momento. 

El primer paso es crear los ficheros (tablas) donde se guardarán las cuotas, tanto la Limit como la Tally. Para ello ejecutaremos los siguientes comandos:

raul@ns1:~$ sudo ftpquota --create-table --type=limit --table-path=/etc/proftpd/ftpquota.limittab
raul@ns1:~$ sudo ftpquota --create-table --type=tally --table-path=/etc/proftpd/ftpquota.tallytab

 

 

Ahora es momento de añadir las configuraciones de las cuotas. Para este tutorial, vamos a configurar las cuotas para el usuario "raul_quota" y aplicarle los siguientes límites de cuotas de FTP:

Cuotas:

  • Límite Subida: 200MB
  • Límite Descarga: 400MB
  • Límite Nº Total ficheros Subidos: 25
  • Límite Nº Total ficheros Descargados: 100

 

Creamos las cuotas Limit:

raul@ns1:/etc/proftpd$ sudo ftpquota --add-record --type=limit --name=raul_quota --quota-type=user --bytes-upload=200 --bytes-download=400 --units=Mb --files-upload=15 --files-download=50 --table-path=/etc/proftpd/ftpquota.limittab

 

 

Creamos las cuotas Tally:

raul@ns1:/etc/proftpd$ sudo ftpquota --add-record --type=tally --name=raul_quota --quota-type=user

 

 

5.- OPERACIONES SOBRE LAS QUOTAS

A continuación muestro algunas de las principales operaciones que se pueden realizar sobre las cuotas ya creadas:

Actualizar cuota ( 50 de subida y +150 de download ):

raul@ns1:~$ sudo ftpquota --update-record --type=tally --name=raul_quota --quota-type=user --files-uploads=50 --files-download=150 --table-path=/etc/proftpd/ftpquota.quotatab

 

 

Borrar cuota:

raul@ns1:~$ sudo ftpquota --delete-record --type=tally --name=raul_quota --quota-type=user

 

 

Mostrar estado de los límites de cuota (Limit y Tally):

raul@ns1:/etc/proftpd$ sudo ftpquota --show-records --type=limit
-------------------------------------------
Name: raul_quota
Quota Type: User
Per Session: False
Limit Type: Hard
Uploaded bytes: 209715200.00
Downloaded bytes: 419430400.00
Transferred bytes: unlimited
Uploaded files: 25
Downloaded files: 100
Transferred files: unlimited
raul@ns1:/etc/proftpd$ sudo ftpquota --show-records --type=tally
-------------------------------------------
Name: raul_quota
Quota Type: User
  Uploaded bytes: unlimited
Downloaded bytes: unlimited
Transferred bytes: unlimited
Uploaded files: 0
Downloaded files: 0
Transferred files: 0

 

 

6.- PROBANDO LAS QUOTAS

Ahora llega el momento clave...¡probar si todo funciona bien! Hay que probar las 4 cuotas que hemos creado: 2 limit (upload&download) y 2 tally (upload&download) y usaremos un usuario de sistema para probarlo, en este caso usuario: "raul". Lo mas sencillo es utilizar un cliente FTP gráfico, en este caso utilizaré Fillezilla Client.

Una forma de ver si todo está funcionando, es visualizar el log de quota.log para ver si al hacer Login con el usuario, ProFTPD sabe que hay que aplicarle cuotas:

raul@ns1:/etc/proftpd$ sudo tail -f /var/log/proftpd/quota.log 
2020-01-09 21:01:43,306 mod_quotatab/1.3.1[1155]: found limit entry for user 'raul_quota'
2020-01-09 21:01:43,306 mod_quotatab/1.3.1[1155]: found tally entry for user 'raul_quota'
2020-01-09 21:01:43,306 mod_quotatab/1.3.1[1155]: quotatab fs registered

 

 

Probamos a subir >200MB

Cuotas ProFTPDLímite por tamaño de subida

 

 

Probamos a descargar >400MB

Cuotas ProFTPDLímite por descarga

 

 

Probamos a subir > 25 ficheros

Cuotas ProFTPDLímite por ficheros subidos

 

 

Probamos a descargar > 100 ficheros

Cuotas ProFTPDLímite por ficheros descargados

 

 

7.- CONFIGURACIÓN FINAL

A continuación se detalla el fichero de configuración completo /etc/proftpd/proftpd.conf utilizado en este tutorial, incluyendo la nueva configuración de cuotas de disco en ProFTPD:

Include /etc/proftpd/modules.conf

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

DefaultRoot ~
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

<IfModule mod_quotatab.c>
QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
<IfModule mod_quotatab_file.c>
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
</IfModule>
</IfModule>

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
Cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.