
Necesito un método para auditar los comandos que un usuario específico escribe en una conexión ssh a mi servidor.
Alguna ayuda ?
Respuesta1
Si el usuario no oculta intencionalmente su actividad, ¿funcionaría algo como esto?:
cat ~/.bash_history | grep "name_of_command"
O
cat /home/user_name_here/.bash_history | grep search_string
Aunque podría ser una mejor solución habilitar la auditoría TTY de PAM (módulos de autenticación conectables): pam_tty_audit.8
Instale auditd
(nota: asegúrese de que el servidor ssh esté instalado) y reinicie:
sudo apt-get install auditd && sudo reboot
Elimine cualquier pam_tty_audit:
sed '/pam_tty_audit.so disable=/d' /etc/pam.d/sshd
Agregue la cadena de habilitación a los archivos de configuración pam.d:
sudo sh -c "echo 'session required pam_tty_audit.so enable=*' >> /etc/pam.d/sshd"
Iniciar auditoría:
sudo service auditd status
Si no se está ejecutando:
sudo service auditd start
Y informe grep tty para el UID de un usuario:
sudo aureport --tty | grep $(id -u username_here)
Lectura relacionada:
https://serverfault.com/questions/336217/how-do-i-log-every-command-executed-by-a-user
http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html