我感觉有些人正在使用根,我如何能logging所有命令和连接时间,包括所有用户对服务器(ssh)所做的ips?
历史命令是不够的
根是根。 任何你试图跟踪根用法的东西都可以被有根的人所颠覆或规避; 即使您使用bash将所有历史logging文件input到受保护的远程服务器上的系统日志中,例如,系统才是安全的,直到性能不佳的用户计算出您所做的工作并禁用或解决此问题。
这是一个社会问题,而不是技术问题。 您需要实施防止人们使用root的策略,并在受监视和logging的环境中实施系统检查,以确保只有可接受的访问被授予。
希望这有帮助,祝你好运。
BSM审计日志将有助于跟踪用户命令和事件
http://seclab.cs.ucdavis.edu/projects/misuse/prototypes/bsm.html
whowatch工具也是有用的
http://www.cyberciti.biz/tips/linux-and-unix-interactive-process-and-users-monitoring-tool.html
那么你可以给自己发一封电子邮件,说“猫王”进入了大楼
在.bashrc把这个
echo 'ALERT - Root Shell Access (YOURSERVERNAME) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d"(" -f2 | cut -d")" -f1`" YOUREMAIL
所以每次用户rootlogin,你都会收到通知
以下版本的OpenSSH允许您监视通过SSH守护进程传递的所有击键。 我的组织(劳伦斯伯克利国家实验室)在内部使用这些代码来支持我们的科学研究环境,取得了巨大的成功。
https://github.com/set-element/openssh-hpn-isshd
OpenSSH的一个版本,用于需要审计用户活动的高安全性安装。 为此,我们修改SSH守护程序,尽可能以不可知的方式导出关于用户名,authentication,击键,文件传输,远程命令执行和各种SSH相关元数据的信息。 作为这个项目的补充,我们通过Bro入侵检测系统提供基础设施。 这里最普遍的想法是,一个站点可以使用Bro脚本语言生成本地安全策略,并以接近实时的用户活动进行监视。
只要没有被颠覆的stream程会计可以产生有用的信息。
禁用root密码将防止使用su来成为root用户。
su进程的ps定期扫描应该显示su何时被使用。
检查auth.log或其等价物可能对检测谁正在成为root很有用。