Vertrauen, aber überprüfen.
Angenommen, ich möchte jemanden als Systemadministrator einstellen und ihm Root-Zugriff auf mein Unix-System gewähren. Ich möchte X-Fenster für sie deaktivieren und nur die Verwendung der Shell zulassen (möglicherweise über SSH), damit alle Operationen, die sie ausführen, über die Shell ausgeführt werden (keine Mausoperationen).
Ich benötige ein Tool, das alle von ihnen ausgegebenen Befehle auf einem Remote-Server protokolliert, sobald sie ausgegeben werden. Selbst wenn sie eine Hintertür installieren und ihre Spuren verwischen, wird dies remote protokolliert.
- Wie deaktiviere ich alles außer dem Shell-Zugriff?
- Gibt es ein Tool zum sofortigen Protokollieren von Befehlen aus der Ferne, sobald diese ausgegeben werden?
Antworten:
Gib ihnen keine Wurzel. Geben Sie ihnen ein individuelles Konto und legen Sie es in Sudoers. Jeder Befehl, den sie mit sudo starten, wird in das Protokoll aufgenommen. Mit sudo power können sie das Protokoll jedoch weiterhin bereinigen und sich als root anmelden
sudo su -
.Die Lösung besteht darin, das Protokoll auf einem anderen Server mit so etwas wie syslog-ng zu trennen . Sie können es ausschalten, aber wenn sie dies getan haben, wird es aufgezeichnet und sollte eine große rote Fahne sein. Wie wird
su -
. Ich vermute, Sie können das bei Sudoern mit ein wenig Nachdenken blockieren .quelle
Sudosh2 ( http://sourceforge.net/projects/sudosh2/ ) wird einige der gewünschten Aktionen ausführen . Hier ist eine Beschreibung von ihrer Website:
Der Benutzer führt einen Befehl wie 'sudo sudosh2' aus und hat dann sudo.
sudosh2 ist eine sudo-Shell, die alle Tastenanschläge aufzeichnet und alles aus der Benutzersitzung (Eingabe, Ausgabe, Fehler usw.) protokolliert. Sie können eine Benutzersitzung erneut abspielen. Dies kann sehr praktisch sein.
sudosh2 unterstützt syslog, und Sie können diese Ausgabe an einen Remote-Server senden.
Dies kann nicht alles tun, was Sie brauchen, aber es könnte helfen. Einige Leute benutzen auch Rootsh , aber ich verstehe nicht, wie das mit Sudosh verglichen wird.
quelle
Theoretisch können Sie einen SSH-Proxy (auf einem System, das die Person nicht kontrolliert) verwenden, um den gesamten Datenverkehr zwischen dem Host und dem System zu protokollieren. Wenn Sie an das System senden, protokollieren Sie dort alle Daten und leiten die Verbindung an den Zielserver weiter. Ein lokaler Protokollierungsdämon verstößt gegen das Grundprinzip, einem Benutzer keinen Administratorzugriff auf die Systeme zu gewähren, von denen erwartet wird, dass sie ihn einschränken.
In der Praxis ist es mehr oder weniger unmöglich, ein Befehlsprotokoll zu lesen und herauszufinden, ob der Typ etwas Schlechtes getan hat oder nicht. Wenn Sie Ihren Systemadministratoren nicht vertrauen können, sind Sie fertig. Ich würde es nicht versuchen.
quelle
Ich stimme Matt zu. Wenn Sie ihnen nicht vertrauen können, sollten sie keine Wurzel haben.
Für einen Audit-Trail kann rootsh verwendet werden. Sie können nur zulassen, dass sie zu rootsh sudo. In Kombination mit dieser und der Remote-Protokollierung wäre es etwas schwieriger zu stoppen als nur Sudo.
quelle
Um alles zu protokollieren, was jemand in Ihre Konsole eingibt, ist pam_tty_audit genau das, wonach Sie suchen . Ich bin mir ziemlich sicher, dass es die Ausgabe über Syslog protokolliert, sodass Sie dieses Protokoll einfach auf einen anderen Syslog-Server pumpen können.
NB, dies protokolliert alles, Tastenanschläge (nach oben, unten, Strg usw.) und protokolliert auch Passwörter, wenn sie in Passwortfelder eingegeben werden.
quelle
Wie viele Leute gesagt haben. Wenn jemand root hat, hat er die Box. Vertrauen ist hier König. Bis zu einem gewissen Grad können Sie jedoch mit sudo das gewünschte Verhalten erzielen. Der Administrator meldet sich als normaler Benutzer an und kann dann verschiedene Befehle ausführen, indem er sudo / path / to / command ausführt. Das ist wahrscheinlich das Beste, was Sie bekommen werden, ohne viele Spiele zu spielen.
quelle