Wie kann ich TTY für einen bestimmten Benutzer in einer SSH-Verbindung prüfen?

Wie kann ich TTY für einen bestimmten Benutzer in einer SSH-Verbindung prüfen?

Ich benötige eine Methode zum Überwachen der Befehle, die ein bestimmter Benutzer in eine SSH-Verbindung zu meinem Server eingibt.

Irgendeine Hilfe ?

Antwort1

Wenn der Benutzer seine Aktivitäten nicht absichtlich verbirgt, würde so etwas funktionieren?:

cat ~/.bash_history | grep "name_of_command"

Oder

cat /home/user_name_here/.bash_history | grep search_string

Eine bessere Lösung wäre allerdings möglicherweise, die TTY-Überwachung von PAM (Pluggable Authentication Modules) zu aktivieren: pam_tty_audit.8

Installieren auditd(Hinweis: Stellen Sie sicher, dass der SSH-Server installiert ist) und neu starten:

sudo apt-get install auditd && sudo reboot

Entfernen Sie alle pam_tty_audit:

sed '/pam_tty_audit.so disable=/d' /etc/pam.d/sshd

Fügen Sie den Aktivierungsstring an die pam.d-Konfigurationsdateien an:

sudo sh -c "echo 'session required pam_tty_audit.so enable=*' >> /etc/pam.d/sshd"

Starten Sie auditd:

sudo service auditd status

Wenn es nicht läuft:

sudo service auditd start

Und grep tty-Bericht für eine Benutzer-UID:

sudo aureport --tty | grep $(id -u username_here)

Weiterführende Literatur:

http://doc.opensuse.org/products/draft/SLES/SLES-security_sd_draft/cha.audit.comp.html#sec.audit.auditd

https://serverfault.com/questions/336217/wie-protokolliere-ich-jeden-von-einem-Benutzer-ausgeführten-Befehl

http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html

verwandte Informationen