我在运行 Debian 7.0 64 位的 VPS 上。我的问题是,所有失败的 SSH 连接尝试都没有出现在我的 /var/log/btmp 文件中。因此,当我执行以下操作时:
sudo lastb
它(仅)打印给我:
btmp begins Tue Jul 28 18:32:30 2015
这里你获得了/var/log/btmp的权限
-rw-rw---- 1 root utmp 1 Jul 2 21:27 /var/log/btmp
供您参考,/var/log/wtmp 是正确的,并且“last”命令可以正常工作。
答案1
我见过几起被黑客入侵的机器属性被修改,导致日志无法写入的案例。请发布 lsattr /var/log/btmp 的输出,以确保它不是不可改变的。
答案2
我今天在 Centos 7 服务器上遇到了这个问题。/var/log/btmp 在最后一次日志轮换后保持为空。Aide(来自 eponym 包)为我指明了正确的方向:
File: /var/log/btmp
SELinux : system_u:object_r:faillog_t:s0 , system_u:object_r:var_log_t:s0
检查:
ls -Z /var/log/*tmp*
-rw-------. root utmp system_u:object_r:var_log_t:s0 /var/log/btmp
-rw-------. root utmp system_u:object_r:faillog_t:s0 /var/log/btmp-20200501
-rw-rw-r--. root utmp system_u:object_r:wtmp_t:s0 /var/log/wtmp
在 restorecon 之后,btmp 再次增长。
restorecon -v /var/log/btmp
restorecon reset /var/log/btmp context system_u:object_r:var_log_t:s0->system_u:object_r:faillog_t:s0