Ich habe eine Frage dazu, jemandem einen Shell-Account zu geben. Wie sicher ist es? Er konnte lesen / etc. Wie kann ich ein gesichertes Shell-Konto einrichten, das den Benutzer nur auf einige Behälter und sein eigenes Zuhause beschränkt? Ist der einzige Weg ein Chroot-Gefängnis?
7
Wenn Sie jemandem ein Shell-Konto geben, kann er alle weltweit lesbaren Dateien sehen. Dies umfasst viele Dateien
/etc
, die für das Funktionieren des Systems erforderlich sind, einschließlich/etc/passwd
(die Benutzernamen, aber keine Kennwörter enthalten).Wenn Sie dem Benutzer erlauben, sich nur innerhalb einer Chroot anzumelden, kann er die Dateien außerhalb der Chroot nicht sehen. Das bedeutet, dass Sie genügend Programme, Bibliotheken usw. in die Chroot einfügen müssen - alles, worauf der Benutzer Zugriff haben muss, und jede Abhängigkeit davon.
Beachten Sie, dass eine Chroot nur den direkten Dateizugriff schützt. Der Benutzer kann verschiedene Dinge überwachen, einschließlich der Namen und Argumente der laufenden Prozesse aller Benutzer (es sei denn, Sie richten zusätzliche Schutzfunktionen wie SELinux ein). Wenn der Benutzer nicht viel tun muss, können Sie strengere Einschränkungen (einschließlich der Verhinderung, dass der Benutzer seine eigenen ausführbaren Dateien erstellt) mit einer eingeschränkten Shell festlegen. Das Einrichten einer eingeschränkten Shell ist jedoch sehr schwierig. Ich kann es nicht empfehlen.
Virtuelle Maschinen sind heutzutage sehr billig. Sie haben viele kostenlose Implementierungen zur Auswahl (Benutzermodus Linux, VirtualBox, VMware, KVM, OpenVZ, VServer usw.), und der von einer zusätzlichen Systeminstallation verwendete Speicherplatz ist minimal (und Sie benötigen ihn möglicherweise trotzdem für chroot). Eine virtuelle Maschine isoliert so ziemlich alles: Dateien, Prozesse, Netzwerke usw. Sofern Sie keine ungewöhnlichen Einschränkungen haben, ist dies der richtige Weg.
quelle
Eine Möglichkeit besteht darin, sie in eine eingeschränkte Shell-Sitzung zu verschieben, z. B. rbash [bash -r].
Es ist an dieser Stelle etwas unklar, was genau Sie erreichen möchten. Auf der Oberfläche gelten jedoch die Posix-Acls für "Andere" für das neue Konto sowie alle Gruppen-Acls für Gruppen, zu denen das Konto gehört, z 'Benutzer' zum Beispiel.
quelle
Beachten Sie, dass Teile von
/etc
auch für nicht privilegierte Benutzer lesbar sein müssen. Wenn es Dinge gibt/etc
, die nicht lesbar sein sollten, aber vorhanden sind, haben Sie größere Probleme und sollten mindestens das Berechtigungsprüfungs- / Korrekturprogramm Ihrer Distribution ausführen.Ein Gefängnis ist der einfachste Weg, drakonische Beschränkungen einzurichten. Es gibt andere Möglichkeiten, z. B. das Einrichten von SElinux und das Einrichten eines sehr eingeschränkten Sicherheitskontexts für den Benutzer.
quelle