Ich brauche eine einfache Möglichkeit, Benutzer in ihren Home-Verzeichnissen in Oneiric inhaftieren zu lassen. Haben Sie eine einfache Konfiguration für das Inhaftieren von Benutzern mit vollständiger Hilfe oder einige gute Weblinks?
Ich würde einen kostenlosen öffentlichen Online-Server mit 10 bis 20 GB freiem Speicherplatz anbieten. Ich weiß nicht, wie viele Benutzer. Ich möchte ihnen SSH und SFTP geben, damit sie sich über FileZilla verbinden können.
Antworten:
Jailkit ist eine Reihe von Dienstprogrammen, mit denen Benutzerkonten auf einen bestimmten Verzeichnisbaum und auf bestimmte Befehle beschränkt werden können. Das Einrichten eines Gefängnisses ist mit den Jailkit-Dienstprogrammen, die dies von Hand erledigen, viel einfacher. Ein Jail ist ein Verzeichnisbaum, den Sie in Ihrem Dateisystem erstellen. Der Benutzer kann keine Verzeichnisse oder Dateien sehen, die sich außerhalb des Gefängnisverzeichnisses befinden. Der Benutzer ist in diesem Verzeichnis und seinen Unterverzeichnissen eingesperrt.
Herunterladen und installieren:
http://olivier.sessink.nl/jailkit/index.html#download
Das Gefängnis aufbauen
Jetzt ist es Zeit, das Gefängnisverzeichnis einzurichten. Inhaftierte Benutzer sehen dieses Verzeichnis als Stammverzeichnis des Servers. Ich habe / home / jail gewählt:
jk_init kann verwendet werden, um schnell ein Gefängnis mit mehreren Dateien oder Verzeichnissen zu erstellen, die für eine bestimmte Aufgabe oder ein bestimmtes Profil benötigt werden (klicken Sie darauf und lesen Sie alle Details).
Fügen Sie einen Benutzer hinzu
Fügen Sie einen neuen Benutzer mit einem Basisverzeichnis und einer Bash-Shell hinzu und legen Sie das Kennwort fest:
Jetzt ist es Zeit, diesen Benutzer ins Gefängnis zu bringen
benutze den folgenden Befehl:
Ihr
/etc/passwd
solltet jetzt so etwas enthalten:Bash aktivieren
Mit jk_cp werden die Bash-Bibliotheken in das Gefängnis kopiert:
Bearbeiten
/home/jail/etc/passwd
Ersetzen Sie diese Zeile:
mit diesem:
Instandhaltung
Durch die Verwendung von
jk_update
Updates kann das reale System im Gefängnis aktualisiert werden.Ein Probelauf zeigt, was los ist:
Ohne das Argument -d wird das eigentliche Update durchgeführt. Weitere Wartungsarbeiten finden Sie hier.
(Falls etwas
/home/jail/opt
fehlt, erstelle es mitmkdir -p /home/jail/opt/
und starte esjk_update -j /home/jail
erneut)Zugriff auf andere Verzeichnisse gewähren
Sie können spezielle Ordner bereitstellen, auf die der Benutzer des Gefängnisses jetzt zugreifen kann. Z.B:
Hilfe erhalten
quelle
Sie können sie nicht auf / home beschränken, da sie Zugriff auf die System-Binärdateien und Bash- und Konfigurationsdateien in / etc benötigen
IMO ist die einfachste Methode zum Sichern von Benutzern die Verwendung von Apparmor.
Sie stellen eine feste Verbindung her
Sie fügen Jailbash zu / etc / shells hinzu
Anschließend weisen Sie der Benutzer-Shell jailbash zu und schreiben ein Apparmor-Profil für jailbash, das nur minimalen Zugriff ermöglicht.
Sie müssen selbst ein Apparmor-Profil schreiben, aber ich habe ein Profil, mit dem Sie möglicherweise beginnen könnten
http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash
quelle
You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etc
Nichts hindert Sie daran, Dateien zu verknüpfen oder zu kopieren, die Sie für nötig halten.jailkit
ein Tool, das im OP erwähnt wird.Es ist schwierig zu erraten, welchen Zweck Sie erreichen möchten. Wenn ssh / sftp verweigert werden soll, während der Zugriff über FTP im Gefängnis erfolgt ... einfach:
Füge / etc / shells eine neue Shell hinzu:
Fügen Sie eine Zeile hinzu:
Speichern. Ändern Sie für jeden Benutzer, den Sie ssh / sftp verweigern möchten, die Shell des Benutzers:
Jetzt kann sich userx nicht über ssh / sftp anmelden.
Installieren Sie vsftpd:
Bearbeiten Sie die Konfigurationsdatei:
Und ein paar Änderungen ....
Speichern. Vsftpd neu starten:
quelle
Sie können
rbash
als Shell für Ihre Benutzer auschecken.Suchen Sie nach
RESTRICTED SHELL
AbschnittOder schauen Sie auf dieser Seite http://linux.die.net/man/1/bash
quelle
rbash
?