Comandi di log eseguiti su ssh


8

Vorrei registrare tutti i comandi eseguiti su SSH.

Dire,

ssh something@server.com COMMAND

Voglio registrare "COMMAND" su server.com

Ho cercato ampiamente ma non sono riuscito a trovare nulla.

C'è un'altra domanda simile, ma non credo che ci sia una soluzione laggiù.

Come registrare "esecuzione remota su SSH"

Posso ottenere una vista dal vivo con

pstree -p | grep ssh

Ho provato Snoopy, auditd e sudosh ma non sono riuscito a registrare quei comandi su ssh.

C'è un http://freecode.com/projects/shwatchr . ma non sono in grado di scaricare lo script per testare.

c'è un altro modo per farlo?

Grazie.........

Risposte:


4

Invece di concentrarti su SSH, fai un passo indietro e considera l'utilizzo di auditd. Suppongo che ciò che vuoi davvero sia monitorare gli utenti, non tenere traccia di ciò che viene fatto da SSH rispetto ad altri tipi di accesso.

man auditctl dovrebbe darti un punto di partenza.


Bel suggerimento, ma per me troppo astratto. Come usare auditctlper registrare i comandi ssh?
Guettli,

3

ho fatto un test usando questa opzione nel mio laboratorio di utilizzo del server e funziona, ma forse c'è un modo migliore.

ForceCommand logger -p user.notice "$SSH_ORIGINAL_COMMAND"

Questo registra il comando inviato ma non lo esegue sul sistema remoto.
Michael McGarrah,

1

Ho trovato un modo per farlo. C'è uno script perl scritto da John M. Simpson ( https://www.jms1.net/ ).

Tutto quello che devi fare è aggiungere

command="#{path to log-session}"

prima di ogni chiave nei tuoi ~ / .ssh / authorized_keys

Funziona solo se hai un SSH senza password, ma questo risolve il mio scopo in una certa misura.

http://www.jms1.net/log-session


1

Nel mio caso avevo lo stesso identico requisito. L'unico avvertimento con questo metodo è che non sono sicuro di come farlo funzionare se non usi i tasti ssh. Ho creato un breve script bash per registrare il comando prima di eseguirlo:

#!/bin/bash
echo "$(date -Is) ${SSH_ORIGINAL_COMMAND}" >> ~/sshcommands.log
sh "${SSH_ORIGINAL_COMMAND}"

Ho salvato questo comando in ~ / bin / log-command quindi l'ho reso eseguibile ( chmod +x ~/bin/log-commands).

Nel file authorized_keys, ho aggiunto il command=parametro alla riga appartenente alla chiave SSH per cui volevo avere i log, quindi sarebbe costretto a eseguire lo script log-command:

command = "/ home / tricky / bin / log-command" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ ...... 6J0C1 tricky@tricky-testing.mydomain

Se qualcuno è a conoscenza della registrazione ma non vuole che tu veda i comandi, può semplicemente entrare in una sessione interattiva. Come hai già detto, hai già provato a fare snoop, il che lo farà per te. Le alternative popolari che non ho provato sono rooth, sudosh e log-user-session.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.