¿Cuotas en vsftpd?

¿Cuotas en vsftpd?

Intenté configurar cuotas de disco de usuario para vsftpd.

Configuré cuotas para usuarios virtuales de ftp usando el paquete "quota" en Debian (ya sabes, editando /etc/fstab y todo eso). Internet me dijo que es la única solución con vsftpd.

El problema es: cuando se carga un archivo en el servidor ftp, su propietario es ftp:nogroup, por lo que la cuota no se aplica a mi usuario, por ejemplo bob:bob.

También intenté cambiar ftp:bob a la carpeta de destino y usar la cuota de grupo en el grupo bob, pero no funcionó.

Así que fui directamente a las preguntas frecuentes y no encontré esto :) ¿Tiene alguna solución para este problema de cuota?

Saludos, Mehdi

Respuesta1

Estos son los pasos que debe seguir para configurar esto:

VSFTPd

Cree el archivo /etc/vsftd.conf

#nano /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
guest_enable=NO
write_enable=yes

#If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot()
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Luego cree su lista chroot para evitar que los usuarios naveguen fuera de su directorio de inicio.

#nano /etc/vsftpd.chroot_list

someusernamehere

SSH

Ahora que este usuario tiene una cuenta real en el sistema (las cuotas de disco no funcionan en usuarios virtuales), debes actualizar SSH si se está ejecutando. Agregue lo siguiente en la línea inferior y asegúrese de que el usuario anterior no esté en la lista (es decir, solo enumere los usuarios a los que desea acceder al servidor a través de SSH):

#nano /etc/ssh/sshd_config

AllowUsers username1 username2

Preparar puntos de montaje

Will ahora instalará y habilitará cuotas.

Esto muestra cómo hacer esto por usuario y por grupo. Por cierto, el soporte de cuotas está habilitado a medida que se montan los sistemas de archivos, por lo que deberá reiniciar su servidor cuando complete los siguientes pasos. No hagas esto en una máquina remota a menos que sepas exactamente lo que estás haciendo.

Realice lo siguiente como root o use sudo:

#nano /etc/fstab

Debe tener lo siguiente en su archivo fstab (usrquota o grpquota). Aquí hay algunos ejemplos dependiendo de cómo instaló su servidor ubuntu:

/dev/hda1       /home       ext2    defaults,usrquota  1       1 

o

# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home           ext4    defaults,usrquota        0       2

o

# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home           ext4    defaults,usrquota,grpquota        0       2

Puede volver a montar reiniciando o usando el siguiente ejemplo:

#mount -o remount,usrquota /home 

Revisa tus monturas:

#mount | grep quota

Cargue el módulo del kernel de cuota:

#modprobe quota_v2 echo 'quota_v2' >> /etc/modules 

Configurando tus cuotas

Instale el paquete de cuota.

#apt-get install quota quotatool

Cree los siguientes archivos si aún no existen. Estos archivos almacenan sus límites de cuota:

#touch /home/aquota.user 
#touch /home/aquota.group 
#chmod 600 /home/aquota.user /home/aquota.group 

active quatacheck sin reiniciar:

# quotacheck -vagum

Si su kernel admite cuotas registradas pero no la está utilizando, probablemente obtendrá un error. Utilice este comando en ese caso:

# quotacheck -fvagum

Establecer límites para el usuario:

#quotatool -u someusername -bq 100M -l '200 Mb' /home 

El primer valor es un límite flexible, el segundo es un límite estricto. Tenga en cuenta que si un usuario intenta cargar un archivo de texto de 100 Mb y ya ha superado su límite suave de 20 Mb, su archivo de texto se truncará en 20 Mb para mantenerlo por debajo del límite estricto de 200 Mb.

Consultar cuotas:

#repquota /home 

Si alguna vez desea eliminar una cuota para un usuario, simplemente establezca sus límites estrictos y flexibles en '0'.

Sé que es mucho, ¡pero eso debería bastar! Realicé el proceso desde cero antes de publicar esto solo para estar seguro.

Respuesta2

Patrick hizo un buen procedimiento. Yo añadiría 2 cosas.

  1. La herramienta de cuota no es obligatoria.
  2. Si no tiene una partición física propia para sus carpetas ftp, puede utilizar archivos de bucle. Hice esto y funciona muy bien.
mkdir /usr/loop_device

Crea un archivo de 50 MB

dd if = /dev /zero of = /usr/loop_device/ld1 bs = 1024 count = 50000

Crea un sistema de archivos en él.

mkfs.ext4 /usr/loop_device/ld1

Crear un directorio para el usuario ftp

mkdir /home_ftp

monte el dispositivo Loop

agregue la siguiente entrada al /etc/fstab

/usr/loop_device/ld1 /home_ftp/         ext4 rw,loop,usrquota,grpquota  0 0

Lo escribí aquí con capturas de pantalla:

http://infofreund.de/user_quotas_vsftpd_en/

Respuesta3

Las cuotas funcionan sólo con los usuarios del sistema. Por lo tanto, debe configurar vsftp para usar usuarios del sistema, no puede usar usuarios virtuales.

Editar:

Aquí hay una configuración rápida y sucia que funciona:

listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
anon_mkdir_write_enable=yes
guest_enable=NO
anon_world_readable_only=no
anon_upload_enable=yes
write_enable=yes
chroot_local_user=no
anon_other_write_enable=yes

Luego utilice "quotacheck" para configurar cuotas. No olvide agregar la opción "userquota" a su fstab.

información relacionada