如何确定谁登录了root用户的IP地址?


15

有几个人可以对我负责的特定VM具有root访问权限。我想找出哪个IP地址用于登录root。


1
您可以访问日志以查看以前执行了哪些命令:sudo less /root/.bash_history,我仍在尝试对此进行研究,似乎是一个非常好的问题:)
ryekayo 2014年


6
如果有人以root用户身份登录,那么他们也可以做很多想删除的日志……
Comintern 2014年

4
附带说明,您应该禁止root直接登录。这是一个很大的安全问题。
fedorqui 2014年

Answers:


15

您可以使用last命令获取此信息

# last|head
phemmer  ssh          192.168.0.24     Wed Aug 20 21:08 - 21:08  (00:00)
phemmer  pts/13       192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:07 - 23:07  (00:00)
phemmer  pts/15       192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  ssh          192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  :0                            Wed Jul 30 20:06   still logged in
reboot   system boot  3.13.2-gentoo    Wed Jul 30 20:05   still running

毫无疑问,在SSH登录的情况下,第3列将显示远程IP地址。

last使用/var/log/wtmp文件,因此此方法类似于G-Man的答案(只是简单一点,因为您不必指定文件的路径)。


14

这取决于您的发行版或操作系统。sshd会将每个登录名记录在某个地方,并将在登录名中包含如下所示的相关IP地址:

Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297

这部分是一致的,但是您到达那里的方式可能会有所不同。在基于的系统上systemd,使用journalctl

journalctl /usr/bin/sshd

列出sshd可执行文件中的所有日志消息。您可以将其grep出来以用于root登录或其他条件,并使用--since--until(按man journalctl)限制日期。

或者,从历史上看,消息将(通常)登录到中的某个位置/var/log。通常,sshd消息会进入/var/log/auth.log,但是确切的文件可能会有很大的不同。无论是哪一个:

grep sshd /var/log/auth.log

将为您提供与该journalctl版本大致相同的输出。



7

如果要审核以root用户登录的人员,则不应允许人们ssh通过直接以root用户身份登录(使用root密码或中的证书/root/.ssh/authorized_keys)来使用。而是为每个人使用一个帐户,并让他们sudo用来获取root权限。这样,您将在适当的日志中找到该消息(该日志文件的位置取决于您拥有的分发版本,甚至可以配置日志守护程序将消息发送到另一台计算机)user john ran the command 'sudo rm -rf /'。嗯,也许您不会轻易在日志中找到该命令。


2
首先,这不能回答问题。其次,您应该始终有办法挽救系统。当您使用LDAP身份验证并且LDAP服务器死亡时,会发生什么?您打算如何登录到邮箱?
帕特里克

4
@Patrick首先,问题开始于“有几个人具有对特定VM的root访问权限”,因此建议合理的方法不是审核IP,而是审核用户。其次,您提出的问题是无关紧要的:如果某人在LDAP紧急状态下应访问计算机,则应拥有自己的本地帐户;如果在这种紧急情况下应进行管理,则该本地帐户应具有sudo功率。从来没有真正的理由要在两个人之间共享一个帐户,但是一个人可以根据需要拥有两个帐户。
pqnet 2014年

问题不是问如何更改其设计,而是问如何获取IP地址。至于其他解决方案,现在您有一个本地帐户(可能有多个),其密码永不过期。我认为不会有任何改善。
Patrick

@Patrick随便。您管理自己的服务器,我管理我的服务器。您已阐明自己的观点,人们将阅读您的评论并做出决定。
pqnet

1
@Patrick改善了什么?几乎可以肯定,为不同的人使用单独的用户帐户是对多个人共享一个root帐户的改进。
jw013

0

从您提供的简要说明来看,如果设置日志监视系统似乎会更好。它可以帮助您监视登录,创建警报,比较几天的数据以及所有这些。

但是,如果您需要临时监视它,则可以使用last命令。

last | grep root | grep -v tty | awk '{print $3}'

这将为您提供root用户已登录IPsHostnames从何处登录的列表。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.