有几个人可以对我负责的特定VM具有root访问权限。我想找出哪个IP地址用于登录root。
有几个人可以对我负责的特定VM具有root访问权限。我想找出哪个IP地址用于登录root。
Answers:
您可以使用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的答案(只是简单一点,因为您不必指定文件的路径)。
这取决于您的发行版或操作系统。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版本大致相同的输出。
如果要审核以root用户登录的人员,则不应允许人们ssh通过直接以root用户身份登录(使用root密码或中的证书/root/.ssh/authorized_keys)来使用。而是为每个人使用一个帐户,并让他们sudo用来获取root权限。这样,您将在适当的日志中找到该消息(该日志文件的位置取决于您拥有的分发版本,甚至可以配置日志守护程序将消息发送到另一台计算机)user john ran the command 'sudo rm -rf /'。嗯,也许您不会轻易在日志中找到该命令。
sudo功率。从来没有真正的理由要在两个人之间共享一个帐户,但是一个人可以根据需要拥有两个帐户。
root帐户的改进。
sudo less /root/.bash_history,我仍在尝试对此进行研究,似乎是一个非常好的问题:)