Lösung 1:
Fügen Sie diese Zeile zu Ihrer pam-Konfiguration hinzu, die für Anmeldungen verantwortlich ist (ihre System-Authentifizierung auf Redhat-basierten Distributionen)
session required pam_tty_audit.so enable=*
Um herauszufinden, was getan wurde, können Sie verwenden.
ausearch -ts <some_timestamp> -m tty -i
Dies erzeugt eine Ausgabe wie diese:
type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>
Der einzige Nachteil davon ist, dass es etwas schwierig zu lesen sein kann, aber es ist viel besser als die meisten vorgeschlagenen Lösungen, da es theoretisch verwendet werden könnte, um eine ganze Sitzung aufzuzeichnen, warzen n alle.
Bearbeiten:Oh, und Sie können aureport verwenden, um eine Liste zu erstellen, die hilfreicher sein kann.
# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>
Lösung 2:
Die beste Lösung für Ihr Problem wäre das eingebaute Prüfsystem von Linux. Verwenden Sie man 8 auditd
oder besuchen Sie diese Seite für weitere Informationen:http://linux.die.net/man/8/auditd.
Sie können auch dieses Tutorial überprüfen - obwohl es etwas außerhalb des Bereichs Ihrer Frage liegt, zeigt es, wie das Audit-System funktioniert.
Lösung 3:
Sie könnten snoopy verwenden.
Es ist eine einfache Bibliothek zur Befehlsprotokollierung und keine richtige Audit-Lösung (leicht zu umgehen). Offenlegung:Ich bin derzeitiger Snoopy-Maintainer
Lösung 4:
Ein weniger bekannter Trick, aber der genialste ist, einfach die eingebauten Audit-Funktionen von sudo
zu verwenden . Sudo wird mit einem sudoreplay
ausgeliefert Befehl, der das Wiedergeben von Sitzungen vereinfacht. Es wird sogar vim
weiterleiten Sitzungen (wie Sie vorschlagen).
So verwenden Sie es in wenigen einfachen Schritten:
- Installieren Sie
sudosh
auf Ihrem System; dies ist ein Shell-Wrapper umsudo
Befehl, der einen Benutzer zusudo
macht selbst (nichtroot
) und kann als System-Login-Shell verwendet werden -
Aktivieren Sie
sudo
Protokollierung. Bearbeiten Sie/etc/sudoers.d/sudosh
:Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output
-
Fügen Sie diesen Befehl zu
/etc/shells
hinzu um Anmeldungen damit zuzulassen:/usr/bin/sudosh
Tipp :Um Benutzer daran zu hindern, sich mit anderen Shells anzumelden, entfernen Sie diese anderen Shells aus
/etc/shells
. -
Aktualisieren Sie den Benutzer
foobar
um densudosh
zu verwenden Schale.chsh -s /usr/bin/sudosh foobar
Nähere Informationen finden Sie unter:https://github.com/cloudposse/sudosh/