Sie benötigen debootstrapchroot, lesen Sie die Anweisungen zum Einrichten Ihrer Chroot: https://wiki.kubuntu.org/DebootstrapChroot
chroot für die Ausführung unsicherer Programme
Ich habe noch nie eine chroot-eingesperrte Umgebung eingerichtet, und ich fürchte, ich brauche Hilfe, um das gut zu machen.
Um es kurz zu erklären, worum es dabei geht: Ich habe einen Webserver, an den Benutzer Python-Skripte senden, um verschiedene Dateien zu verarbeiten, die auf dem Server gespeichert sind (das System ist für Forschungszwecke). Jeden Tag startet ein Cron-Job die Ausführung der hochgeladenen Skripte über einen solchen Befehl:
/usr/bin/python script_file.py
All dies ist wirklich unsicher und ich möchte ein Gefängnis erstellen, in das ich die erforderlichen Dateien (hochgeladene Skripts, zu bearbeitende Dateien, Python-Binärdateien und Abhängigkeiten) kopieren würde.
Ich sah schon auf verschiedene Dienstprogramme Gefängnisse zu schaffen, aber keiner von ihnen schien up-to-date oder fehlten solide Dokumentation (dh. Die Links vorgeschlagen Wie kann ich einen nicht vertrauenswürdigen Python - Skript ausführen )
Könnte mich jemand zu einer tragfähigen Lösung für mein Problem führen? wie ein funktionierendes Beispiel für ein Skript, das ein Gefängnis erstellt, einige Dateien darin ablegt und ein Python-Skript ausführt?
Vielen Dank.
2 Antworten auf die Frage
Sie benötigen ziemlich viele Bibliotheken in Ihrer Chroot, und dies würde nicht verhindern, dass jemand einen Socket-Server installiert. Da Sie die Ausführung von Python-Skripts zulassen müssen, bedeutet dies uneingeschränkten Zugriff auf Standard-Python-Module wie Socket usw. Ich verstehe nicht wirklich, was Sie mit dieser Chroot schützen können?
Wenn ein Benutzer einen Socket-Server erstellen kann, kann er in dieser Chroot eine Verbindung herstellen und auf alles zugreifen / ändern.
Selbst ein einfaches Skript wie dieses os.system('rm -rf /')
kann nicht verhindert werden und würde Ihr Gefängnis unbrauchbar machen.
Eine mögliche Lösung wäre die Verwendung eines Moduls wie TOMOYO, das so konfiguriert werden kann, dass der Zugriff auf Grundelemente vom Kernel (Öffnen, Schreiben usw.) verhindert wird.
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
8
Laptop Standby unter Linux / Ubuntu
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
1
Wie kann ich von Ubuntu aus über das Netzwerk auf Windows Vista-Drucker zugreifen?
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
3
Kann ich Microsoft Office 2007 unter Ubuntu ausführen?