
Мне нужен метод аудита команд, которые вводит указанный пользователь при ssh-подключении к моему серверу.
Любая помощь ?
решение1
Если пользователь намеренно не скрывает свою активность, сработает ли что-то вроде этого?:
cat ~/.bash_history | grep "name_of_command"
Или
cat /home/user_name_here/.bash_history | grep search_string
Хотя лучшим решением может быть включение аудита TTY PAM (Pluggable Authentication Modules): pam_tty_audit.8
Установите auditd
(примечание: убедитесь, что установлен ssh-сервер) и перезагрузите компьютер:
sudo apt-get install auditd && sudo reboot
Удалите все pam_tty_audit:
sed '/pam_tty_audit.so disable=/d' /etc/pam.d/sshd
Добавьте строку включения в файлы конфигурации pam.d:
sudo sh -c "echo 'session required pam_tty_audit.so enable=*' >> /etc/pam.d/sshd"
Начать аудит:
sudo service auditd status
Если он не запущен:
sudo service auditd start
И grep tty отчет для UID пользователя:
sudo aureport --tty | grep $(id -u username_here)
Связанное чтение:
https://serverfault.com/questions/336217/how-do-i-log-every-command-executed-by-user
http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html