我需要一种方法来审核指定用户在与我的服务器的 ssh 连接中输入的命令。
有什么帮助吗?
答案1
如果用户不是故意隐藏他们的活动,这样的事情会起作用吗?:
cat ~/.bash_history | grep "name_of_command"
或者
cat /home/user_name_here/.bash_history | grep search_string
尽管启用 PAM(可插入式身份验证模块)TTY 审计可能是一个更好的解决方案: 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"
启动 auditd:
sudo service auditd status
如果没有运行:
sudo service auditd start
并针对用户 UID 使用 grep tty 报告:
sudo aureport --tty | grep $(id -u username_here)
相关阅读:
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