Frage Wie protokolliere ich jeden Befehl, der von einem Benutzer ausgeführt wird?


Ich möchte alle Benutzeraktivitäten auf meinem Server überwachen.

Selbst wenn der Benutzer einen Shell-Befehl von einem Editor wie vim ausführt, möchte ich Sehen Sie sie in der Protokolldatei an.

Ich habe das Werkzeug acct überprüft, aber es enthält nicht die vollständigen Befehle. (Bitte korrigieren Sie mich, wenn ich einige Optionen verpasst habe, was bereits der Fall ist).

Mit welchem ​​Linux-Tool sollte ich dieses Problem lösen?


27
2017-11-30 14:01


Ursprung


. Manskript (1) - adaptr
Schau es dir an serverfault.com/questions/323270/... und serverfault.com/questions/242842/ ... - Khaled
Eine nette Referenz 8gwifi.org/docs/linux-monitor-befehle.jsp - anish


Antworten:


Fügen Sie diese Zeile zu Ihrer Pam Config hinzu, die für Logins zuständig ist (ihre System-Auth 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 folgt:

 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 ist, dass es ein wenig schwierig zu lesen ist, aber es ist viel besser als die meisten vorgeschlagenen Lösungen, da es theoretisch verwendet werden könnte, um eine ganze Sitzung aufzuzeichnen, wars alles.

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>

28
2017-11-30 14:41



Danke für die Details. Ich benutze Ubuntu 10.04 LTS. Wenn ich den Ordner / lib / security / überprüfe, ist das Modul nicht vorhanden, aber für dieses Modul ist eine Manpage vorhanden. Ich denke, ich habe diesen Fehler gemacht bugs.launchpad.net/ubuntu/+source/pam/+bug/588547 Gibt es eine andere Möglichkeit, das Modul zu installieren? - Supratik
Der Fehlerbericht schlägt vor, dass ein Update und ein Update verteilt wurden. - Matthew Ife
@Mlfe Ich kompilierte den PAM-Quellcode und kopierte die .so-Datei in / lib / security / und es funktionierte. Danke noch einmal. - Supratik
@CameronKerr: Das Passwort Problem wurde behoben: redhat.com/archives/linux-audit/2013-May/msg00007.html - Yohann
Hinweis, es ist erwähnenswert, dass für die oben genannten zu arbeiten auditd Daemon muss zuerst aktiviert werden (es war nicht standardmäßig bei meiner CentOS 6.7 Installation). Um den Daemon zu starten, verwenden Sie: service auditd start, und um diese Änderung (nach Neustarts) persistent zu machen, verwenden Sie chkconfig auditd on   Quelle: access.redhat.com/documentation/de-DE/Red_Hat_Enterprise_Linux/... und access.redhat.com/documentation/de-DE/Red_Hat_Enterprise_Linux/... - jonny


Die beste Lösung für Ihr Problem wäre Linux 'eingebaut Prüfung System. Benutzen man 8 auditd oder überprüfen Sie diese Seite für weitere Informationen: http://linux.die.net/man/8/auditd.

Außerdem können Sie überprüfen dieses Tutorial - Während es etwas außerhalb des Bereichs Ihrer Frage liegt, zeigt es, wie das Audit-System funktioniert.


8
2017-11-30 14:30





Hier ist eine magische Lösung: http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum install psacct (redhat)
  • sudo apt-get Installationsacct

Sie können Statistiken über Benutzerbefehle / Verbindung usw. anzeigen lassen.

Auflisten aller Befehle, die von einem bestimmten Benutzer aufgerufen werden ...

Durchsuchen Sie die Buchungsprotokolle nach Befehlsnamen: $ lastcomm rm $ lastcomm passwd

und so weiter, für mehr Informationen besuchen Sie bitte den obigen Link ..


2
2017-09-16 22:57



In der Frage wurde gesagt: "acct listet nicht die kompletten Befehle auf". - Putnik


Du könntest benutzen schnüffeln.

Es ist eine einfache Befehlsprotokollierungsbibliothek und keine geeignete Prüflösung (leicht umgangen). Disclosure: Ich bin derzeit Snoopy Maintainer.


2
2017-11-05 23:36





Ein weniger bekannter Trick, aber einfach der tollste ist, nur die eingebauten Audit-Möglichkeiten zu nutzen sudo. Sudo wird mit einem sudoreplay Befehl, der das Wiedergeben von Sitzungen vereinfacht. Es wird sogar weiterleiten vim Sitzungen (wie Sie vorschlagen).

So verwenden Sie es in wenigen einfachen Schritten:

  1. Installieren sudosh auf deinem System; Dies ist eine Shell - Hülle um die sudo Befehl, der einen Benutzer macht sudo selbst (nicht root) und kann als System Login Shell verwendet werden
  2. Aktivieren sudo protokollieren. Bearbeiten /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Fügen Sie diesen Befehl hinzu /etc/shells Logins zulassen, die es verwenden: /usr/bin/sudosh

    SpitzeUm zu verhindern, dass Benutzer andere Shells zur Anmeldung verwenden, entfernen Sie diese anderen Shells /etc/shells.

  4. Aktualisieren Sie den Benutzer foobar das benutzen sudosh Schale. chsh -s /usr/bin/sudosh foobar

Weitere Informationen finden Sie unter: https://github.com/cloudposse/sudosh/


2
2018-03-14 00:54