Kontingente in vsftpd?

Kontingente in vsftpd?

Ich habe versucht, Benutzerfestplattenkontingente für vsftpd zu konfigurieren.

Ich habe Kontingente für virtuelle FTP-Benutzer mit dem Paket „Quota“ unter Debian konfiguriert (Sie wissen schon, indem ich /etc/fstab und all das bearbeitet habe). Im Internet habe ich erfahren, dass dies die einzige Lösung mit vsftpd ist.

Das Problem ist: Wenn eine Datei auf den FTP-Server hochgeladen wird, ist ihr Besitzer ftp:nogroup, sodass das Kontingent für meinen Benutzer, z. B. bob:bob, nicht gilt.

Ich habe auch versucht, ftp:bob den Zielordner zu chownen und Gruppenquoten für die Bob-Gruppe zu verwenden, aber das hat nicht funktioniert

Also bin ich direkt zu den FAQ gegangen und habe das nicht gefunden :) Haben Sie eine Lösung für dieses Quotenproblem?

Grüße, Mehdi

Antwort1

Führen Sie zur Einrichtung folgende Schritte aus:

VSFTPd

Erstellen Sie die Datei /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

Erstellen Sie als nächstes Ihre Chroot-Liste, um zu verhindern, dass Benutzer außerhalb ihres Home-Verzeichnisses surfen

#nano /etc/vsftpd.chroot_list

someusernamehere

SSH

Da dieser Benutzer nun ein echtes Konto auf dem System hat (Festplattenkontingente funktionieren bei virtuellen Benutzern nicht), sollten Sie SSH aktualisieren, wenn es ausgeführt wird. Fügen Sie in der unteren Zeile Folgendes hinzu und stellen Sie sicher, dass der obige Benutzer nicht aufgeführt ist (d. h. listen Sie nur Benutzer auf, die per SSH auf den Server zugreifen sollen):

#nano /etc/ssh/sshd_config

AllowUsers username1 username2

Einhängepunkte vorbereiten

Will wird jetzt Kontingente installieren und aktivieren

Hier wird gezeigt, wie dies pro Benutzer und pro Gruppe durchgeführt wird. Übrigens ist die Kontingentunterstützung aktiviert, wenn die Dateisysteme gemountet werden. Sie müssen Ihren Server also neu starten, wenn Sie die folgenden Schritte ausführen. Führen Sie dies bitte nicht auf einem Remotecomputer aus, es sei denn, Sie wissen genau, was Sie tun.

Führen Sie Folgendes als Root aus oder verwenden Sie sudo:

#nano /etc/fstab

Sie müssen Folgendes in Ihrer fstab-Datei haben (usrquota oder grpquota). Hier sind einige Beispiele, je nachdem, wie Sie Ihren Ubuntu-Server installiert haben:

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

oder

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

oder

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

Sie können die Bereitstellung durch einen Neustart oder mithilfe des folgenden Beispiels erneut durchführen:

#mount -o remount,usrquota /home 

Überprüfen Sie Ihre Halterungen:

#mount | grep quota

Laden Sie das Quota-Kernelmodul:

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

Einrichten Ihrer Kontingente

Installieren Sie das Quota-Paket.

#apt-get install quota quotatool

Erstellen Sie die folgenden Dateien, falls sie noch nicht vorhanden sind. In diesen Dateien werden Ihre Kontingentgrenzen gespeichert:

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

quatacheck ohne Neustart einschalten:

# quotacheck -vagum

Wenn Ihr Kernel Journaling Quota unterstützt, Sie diese aber nicht verwenden, wird wahrscheinlich eine Fehlermeldung angezeigt. Verwenden Sie in diesem Fall diesen Befehl:

# quotacheck -fvagum

Legen Sie Grenzwerte für Benutzer fest:

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

Der erste Wert ist ein weiches Limit, der zweite ein hartes Limit. Beachten Sie: Wenn ein Benutzer versucht, eine 100 MB große Textdatei zu laden und sein weiches Limit bereits um 20 MB überschritten hat, wird seine Textdatei um 20 MB gekürzt, um unter dem harten Limit von 200 MB zu bleiben.

Kontingente prüfen:

#repquota /home 

Wenn Sie jemals ein Kontingent für einen Benutzer entfernen möchten, setzen Sie einfach dessen harte und weiche Grenzen auf „0“.

Ich weiß, das ist viel, aber das sollte reichen! Ich habe den Vorgang vor der Veröffentlichung noch einmal von vorne begonnen, nur um sicherzugehen.

Antwort2

Patrick hat eine gute Anleitung gemacht. Ich würde zwei Dinge hinzufügen.

  1. quotatool ist nicht obligatorisch
  2. Wenn Sie keine eigene physische Partition für Ihre FTP-Ordner haben, können Sie Loop-Dateien verwenden. Ich habe das gemacht und es funktioniert wirklich gut
mkdir /usr/loop_device

Erstellen Sie eine 50MB Datei

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

Erstellen Sie darauf ein Dateisystem

mkfs.ext4 /usr/loop_device/ld1

Erstellen Sie ein Verzeichnis für den FTP-Benutzer

mkdir /home_ftp

Montieren Sie das Loopdevice

fügen Sie den folgenden Eintrag zur /etc/fstab hinzu

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

Ich habe es hier mit Screenshots aufgeschrieben:

http://infofreund.de/user_quotas_vsftpd_de/

Antwort3

Kontingente funktionieren nur mit Systembenutzern. Sie müssen vsftp also so konfigurieren, dass Systembenutzer verwendet werden. Virtuelle Benutzer können nicht verwendet werden.

Bearbeiten:

Hier ist eine schnelle und einfache Konfiguration, die funktioniert:

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

Verwenden Sie dann „quotacheck“, um Kontingente einzurichten. Vergessen Sie nicht, die Option „userquota“ zu Ihrer fstab hinzuzufügen.

verwandte Informationen