Frage Warum ist der chroot_local_user von vsftpd unsicher?


Ich richte mich auf meinem VPS ein vsftpd, und ich will nicht, dass Benutzer verlassen dürfen, sie sind FTP-Home-Verzeichnis. Ich benutze local_user ftp, nicht anonym, also habe ich hinzugefügt:

chroot_local_user = JA

Ich habe in vielen Foren gelesen, dass dies nicht sicher ist.

  1. Warum ist das unsicher?
  2. Wenn das unsicher ist, weil ssh auch zu meinem VPS gehört, dann könnte ich diese Benutzer einfach von sshd ausschließen, nicht wahr?
  3. Gibt es eine andere Möglichkeit, dieses Verhalten von vsftpd zu erreichen? (Ich möchte nicht lesen Berechtigungen für alle Ordner / Dateien für "Welt" auf meinem System)

18
2018-02-22 12:35


Ursprung




Antworten:


Überprüfen Sie hier nach VSFTPDs FAQ für die Antwort, nach der Sie suchen. Unten ist der wichtige Auszug, der meiner Meinung nach deine Frage beantworten wird.

Q) Hilfe! Was sind die Auswirkungen auf die Sicherheit, auf die im   "chroot_local_user" -Option?

A) Beachten Sie zunächst, dass andere FTP-Daemons die gleichen Auswirkungen haben. Es ist ein   generisches Problem.   Das Problem ist nicht zu schwer, aber es ist folgendes: Einige Leute haben FTP-Benutzer   Konten, die nicht vertrauenswürdig sind, um vollen Shellzugriff zu haben. Wenn diese   Konten können auch Dateien hochladen, es besteht ein geringes Risiko. Ein schlechter Benutzer hat jetzt   Kontrolle des Dateisystem-Root, das ist ihr Home-Verzeichnis. Das ftp   Daemon kann dazu führen, dass eine Konfigurationsdatei gelesen wird - z. / etc / some_file. Mit   chroot (), ist diese Datei jetzt unter der Kontrolle des Benutzers. vsftpd ist   vorsichtig in diesem Bereich. Aber die libc des Systems möchte vielleicht das Gebietsschema öffnen   Konfigurationsdateien oder andere Einstellungen ...


20
2018-02-22 19:00



Danke dafür, das wusste ich selbst nicht. Etwas gelernt! +1 - Yanick Girouard
Eigentlich bin ich nach dem Lesen der FAQ hierher gekommen, weil ich diese besorgniserregende Aussage nicht verstehe: "Der ftp-Daemon könnte dazu führen, dass eine Konfigurationsdatei gelesen wird - zB / etc / some_file. Mit chroot () wird diese Datei nun kontrolliert der Benutzer.". Vermutlich wäre dies nur der Fall, wenn vsftpdhatte einen Sicherheitsfehler (à la Pufferüberlauf) ??? Wie läuft es? vsftpd mit Benutzern chroot'ed zu ihrem Haus dir machen dieses Szenario wahrscheinlicher? Bitte erkläre... - sxc731


Das Problem besteht darin, dass Sie nicht nur lokale Konten verwenden können, sondern diese Konten auch über die Shell-Anmeldung deaktivieren können. Wenn Sie ihre Login-Shell auf / bin / nologin setzen, können Sie sich auch nicht mit vsftpd anmelden.

Ein besserer und sicherer FTP-Daemon wäre Pure-ftpd. Schauen Sie nach, es ist im EPEL-Repository verfügbar und ermöglicht die Erstellung virtueller Benutzer. Der Server verwendet einen gemeinsamen Benutzer / eine Gruppe, um alle Berechtigungen für die Benutzerordner der Benutzer festzulegen, und "ordnet" die virtuellen Benutzer diesem Benutzer zu, wenn er sich anmeldet, um mit Berechtigungen umzugehen. Das ist sicherer, und Sie müssen sich nicht mit der OpenSSH-Anmeldesicherheit befassen.

Pure-ftpd unterstützt auch eine ganze Reihe von Funktionen wie Quoten, Quoten und so weiter. Viel besser als vsftpd.

Im Folgenden finden Sie ein einfaches Tutorial zur Installation und Konfiguration eines virtuellen Basisbenutzers: http://blog.namran.net/2011/05/04/how-to-setup-virtual-ftp-server-using-pure-ftpd-in-centos/

Wenn Sie das vollständige Dokument lesen (was Sie tun sollten), werden Sie wissen, dass die Option -d beim Erstellen des virtuellen Benutzers eine automatische Chroot für dieses Verzeichnis für diesen Benutzer ist.


4
2018-02-22 13:37



Ich verwende das AllowUsers user1 user2 Direktive in meiner sshd_config, wo ich dem ftp_user1 nicht erlaube, sich mit ssh anzumelden, kann sich der Benutzer ftp_user1 mit ftp anmelden. So funktioniert es wie beabsichtigt, aber immer noch meine Hauptfrage offen, warum ist es unsicher? - p1100i
Ja, es wird! Sie müssen nur die "Nicht-Shell" zu / etc / shells hinzufügen. Auf vielen Systemen existiert entweder / bin / false oder / bin / nologin in / etc / shells. Wenn die Shell da ist, wird vsftpd dich tatsächlich einloggen lassen, auch wenn chroot_local_user aktiviert ist. - Frands Hansen
Ich stehe dann korrigiert. Danke für das Aufzeigen! - Yanick Girouard