我是一个小型 Debian Lenny 服务器的管理员,我遇到了这个问题: 有时,当用户的 SSH 会话关闭时,条目不会从中删除/var/run/utmp
,从而导致以下消息finger
:
grawity@sine ~$ 手指 手指:/dev//pts/31:没有这样的文件或目录 登录名 Tty 空闲登录时间 办公 办公电话 user1 (user) pts/1 1d Jul 15 19:12 (foo.uk) user2 (另一个用户) pts/33 6:25 Jul 13 12:02 (bar:S.1) user2 (另一个用户) *pts/34 6:31 Jul 13 17:00 (bar:S.0) grawity (me) pts/25 Jul 17 11:57 (78-56-197-6:S.0) grawity (me) pts/27 Jul 17 11:57 (78-56-197-6.static.zebra.lt) 分段故障 grawity@sine ~$ _
...有时甚至是一两个段错误。曾经 utmp 甚至有两个条目指向同一个 tty(但属于不同的用户)。
任何想法为什么会发生这种情况?
到目前为止,我设法修复了 utmp(使用一些专为擦除 Unix 日志而设计的实用程序 :> ),但这显然不是一个解决方案,而不是每天都发生的情况。
编辑:这个问题不是关于记录消失(到目前为止我还没有看到) - 它是相反的:当登录会话关闭时记录没有被删除。
手指段错误确实不是一个好兆头。我至少会粗略检查一下是否闯入;例如,至少运行 chkrootkit 和 debsums。其次,您是否尝试过完全通过 rm 或 echo -n > utmp 清除 utmp?它可能以某种微妙的方式被破坏。
最后,您是否对 /etc/pam.d 中的 PAM 设置做过任何事情?这很容易导致不记录注销。
utmp 文件的所有者是 root:utmp 和权限 664?
如果权限很好并且这是公共服务器并且启用了公共接口上的 ssh 访问,则可能是由于闯入。没有攻击者希望您知道他已登录,因此修改 utmp、btmp 和 wtmp 文件是有意义的。如果是这种情况,请更改 root 密码,查找 root-kits / 打开端口,设置非常严格的防火墙,禁用使用 SSH 的直接 root 登录,安装拒绝主机等。但这可能只是我偏执。到目前为止,我刚刚分析了一次闯入尝试,并且我让观察者攻击者删除/修改了 btmp 和 wtmp 条目。我猜他们也对 utmp 条目做同样的事情。
错误条目是否与特定用户或他们的行为有某种关联?这些只是常规的 ssh 登录还是您使用 X11?你能检查一下那些“幻影用户”是否还有一些进程在运行吗?如果你是 root,看看他们的 .bash_history 至少可以知道他们在做什么。
只是为了偏执,我可能还会运行 fsck。检查 rootkit 等的迹象似乎也是一个好主意。