我是一个小型Debian Lenny服务器的pipe理员,我有这个问题:有时候,当用户的SSH会话closures时,不会从/var/run/utmp删除该条目,从而导致这样的消息:
grawity @正弦〜$手指 finger:/ dev // pts / 31:没有这样的文件或目录 login名称Tty空闲login时间办公室电话 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日志而devise的实用程序:>),但这显然不是解决scheme,不是每天都会发生的。
编辑:这个问题不是关于logging消失(到目前为止我还没有看到) – 这是相反的:login会话closures时logging不会被删除。
手指割裂真的不是一个好兆头。 我至less可以进行粗略的检查, 至less运行chkrootkit和debsums例如。 其次,你有没有尝试彻底清除utmp rm或echo -n> utmp? 它可能会以一些微妙的方式被破坏。
最后,你是否在/etc/pam.d中使用了PAM设置? 这很容易导致注销不被logging。
是utmp文件的所有者root:utmp和权限664?
如果权限是好的,这是公共服务器和公共接口上的ssh访问被启用,那么它可能是由于磨合。 没有攻击者希望你知道他login了,所以修改utmp,btmp和wtmp文件是有意义的。 如果是这种情况,请更改root密码,查找root-kits / open端口,设置非常严格的防火墙,禁用使用SSH的直接rootlogin,安装denyhosts等。但是,这可能只是我偏执狂。 到目前为止,我刚刚分析了一个破解尝试,我观察到攻击者删除/修改btmp和wtmp条目。 我想他们也是一样的utmp条目。
错误的条目是否与特定的用户或他们的行为有关? 这些只是正常的SSHlogin或者你使用X11? 你可以检查一下这些“幽灵用户”是否仍然有一些进程在运行? 如果你是根,那么看看他们的.bash_history,至less可以知道他们在做什么。
只是为了偏执,我可能也会运行fsck。 检查rootkit的迹象等似乎也是一个好主意。