Answers:
在Ubuntu服务器上,您可以在文件中(何时何地)登录谁/var/log/auth.log
。在这里,您可以找到以下条目:
May 1 16:17:02 owl CRON[9019]: pam_unix(cron:session): session closed for user root
May 1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May 1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)
/var/log/auth.log
在基于Red Hat的发行版(例如Fedora / CentOS / RHEL)上,您可以检查文件中是否登录了用户/var/log/secure
。
如果您想了解更多信息,请阅读标题为:我如何记录SSH访问尝试并跟踪SSH用户最终在服务器上执行的超级用户问答。。
/var/log/secure
我的任何Ubuntu系统上都没有。
/var/log/auth
是我的系统中没有。这就是为什么在发布答案之前,我检查/var/log/secure
了系统中是否装有Ubuntu服务器:)
/var/log/secure
。
/var/log/secure
是Fedora / CentOS / RHEL ism。
我的建议是使用auditd。这是使用Linux内核的审核子系统进行记录的,我认为如果您是认真的人,则应该使用正确的方法进行记录。考虑到问题{security related}的性质,您也应该使用PAM。在仅审核和安装PAM的默认级别上,您应该自动将所有成功和失败的SSH尝试记录在您的audit.log文件中。因此,您实际上无需配置任何东西,只需安装审核和PAM。我知道SLES的第一手资料。并且可以肯定,RHEL和任何其他企业版linux都将以类似方式运行。
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
通过产生的原始审计日志中的进程auditd您可以使用使用类似aureport
过滤这是在描述其进程auditd手册页,写自己的文本解析器,或者只是使用VI和搜索关键词。
这是我的/var/log/audit/audit.log
文件的例外,我在ssh's进入我的linux服务器。
node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
date --date @1480622612.317
导致Thu Dec 1 15:03:32 EST 2016
,是当我SSH方式登录我的服务器。什么时候res=failed
是您想调查那些ip地址和主机名,以查看尝试使用什么用户名尝试连接的系统。很显然,成功的ssh尝试了解您系统上发生的情况-例如,您的同事bob每天坐在同一张桌子上,主机名= bobscomputer和ip地址= 192.168.5.5;例如,如果您在昨天凌晨2点看到以IP地址10.10.5.6的用户名成功进行ssh尝试,那么与bob进行调查可能是您的最大利益。可能有人尝试入侵?不久之后,su会尝试从bob的帐户中扎根审核日志吗?
当你看到重复res=failed
和auid=0
和acct=root
那么这是有人试图ssh到你的盒子到根帐户,当你修改/etc/hosts.deny
与IP地址SSHD。
对于SSH命令记录,我遇到过的最好的事情是rootsh,该工具允许管理员从具有广泛日志记录级别的每个会话中获取每个命令。
我写了一个脚本来在ubuntu和CentOS / RHEL中安装和配置ROOTSH
从github下载,这里是链接
https://gist.githubusercontent.com/mansurali901/e1e3acc7dca13aeca25b68a69571c60f/raw/b1b16f73ec9a974486e4c0c0d65a7d41f2eca718/setup_rootssh.sh
chmod +x setup_rootssh.sh ; sudo ./setup_rootssh.sh