查看 VPS 日志的时候发现 /var/log/
下存在一个 100M+ 大小的 btmp 文件,我知道 /var/log
目录下一般都是 Linux 系统的日志存放路径,通常 auth.log 会记录登录相关的日志,其他的 Nginx,PHP,dpkg,syslog 等等都比较熟悉,唯一没见过的就是 btmp 文件。所以简单记录一下。
btmp 文件也是日志文件,不过仅仅记录失败的登录。这也就意味着有人尝试暴力登录我的服务器。
和 btmp 相关的日志文件还有两个:
- utmp 文件记录用户登录信息,包括用户登录的终端,登出状态,系统时间,当前系统的状态,系统启动的时间(被 uptime 命令使用)等等
- wtmp 会记录 utmp 文件的历史记录,包括了当前登录用户信息和历史用户登录信息
以上三个文件都是二进制数据。
查看 btmp 文件
btmp 文件不是一个纯文本的文件,所以不能直接使用 less, cat 查看,需要借助 last
命令:
last -f /var/log/btmp
last -f /var/log/wtmp
last -f /var/log/utmp
如果直接执行 last
不带任何参数,则会展现用户什么时候登录,什么时候登出的。
也可以使用 lastb
命令,默认会读取 /var/log/btmp
文件。
另外也可以使用 utmpdump
命令将二进制文件转成文本文件查看。
utmpdump /var/log/btmp
遇到 btmp 文件过大的情况下的安全措施
上文提到过 btmp 只会记录失败的登录,如果这个文件增长很快那么也就意味着有人在不断尝试登录,可能就是在暴力尝试,在上面的日志文件中也能看到很多 root 尝试登录,也有很多默认的用户在不停尝试。这个时候就需要特别注意一下系统的安全。
通常情况下,在刚初始化系统的时候这些安全措施就需要补全。
通常在配置了 [[fail2ban]] 之后就会好很多了。