一键清除 root 登录日志(Debian/Ubuntu)脚本
在 Debian 系统中,彻底清除 root 登录历史记录的方法包括清空 `/var/log/wtmp`、`/var/log/btmp`、`systemd-journald` 日志及 `/var/log/auth.log` 文件,并提供一键脚本和防止未来记录的选项。 2025-4-25 07:35:0 Author: blog.upx8.com(查看原文) 阅读量:14 收藏

在 Debian 系统中,如果你想彻底清除 root 登录历史记录,如IP地址(包括 /var/log/wtmp/var/log/btmp 和 systemd-journald 日志),可以按照以下方法操作:

一键清除 root 登录日志

bash <(wget -qO- -o- https://testingcf.jsdelivr.net/gh/hadis898/allscript@main/clear_logs.sh)

脚本功能

步骤 操作 说明
1 清空 /var/log/wtmp 清除成功登录记录
2 清空 /var/log/btmp 清除失败登录记录
3 清空 systemd-journald 日志 删除所有二进制日志
4 清空 /var/log/auth.log 如果存在则清除
5 可选禁用 SSH 日志 修改 sshd_config

手动操作

1. 清除 /var/log/wtmp(成功登录记录)

wtmp 文件存储了所有用户的登录历史,可以用 last 命令查看。
清除方法

# 清空 wtmp 文件(所有登录记录)
sudo echo > /var/log/wtmp

# 验证是否清除成功
sudo last root  # 应该显示 "wtmp begins [空日期]"

2. 清除 /var/log/btmp(失败登录记录)

btmp 文件存储了失败的登录尝试,可以用 lastb 命令查看。
清除方法

# 清空 btmp 文件
sudo echo > /var/log/btmp

# 验证是否清除成功
sudo lastb root  # 应该显示 "btmp begins [空日期]"

3. 清除 systemd-journald 日志

如果系统使用 journald(现代 Debian 默认),执行:

# 删除所有日志(慎用!)
sudo journalctl --flush --rotate
sudo rm -rf /var/log/journal/*
sudo systemctl restart systemd-journald

# 或者只删除 SSH 相关日志
sudo journalctl --vacuum-time=1s -u sshd
  • --vacuum-time=1s:删除 1 秒前的日志(几乎全部清除)
  • -u sshd:仅删除 SSH 日志

4. 清除 /var/log/auth.log(如果存在)

如果系统使用 rsyslog,可能会有 /var/log/auth.log

# 清空 auth.log
sudo echo > /var/log/auth.log

# 或者只删除 root 相关的记录
sudo sed -i '/root/d' /var/log/auth.log

5. 防止未来记录(可选)

如果你希望未来也不记录登录日志,可以修改 SSH 配置:

sudo nano /etc/ssh/sshd_config

修改以下行:

LogLevel QUIET      # 关闭 SSH 日志
SyslogFacility AUTHPRIV

然后重启 SSH:

sudo systemctl restart sshd

6. 检查是否清除干净

# 检查 wtmp/btmp
sudo last root
sudo lastb root

# 检查 journald 日志
sudo journalctl -u sshd _UID=0

# 检查 auth.log(如果存在)
sudo grep "root" /var/log/auth.log

如果返回空结果或无记录,说明清除成功。

⚠️ 注意事项

  1. 审计合规性:在生产环境中,清除日志可能违反安全政策或法律要求。
  2. 临时文件:某些工具(如 logrotate)可能会备份日志,检查 /var/log/ 下是否有 *.gz 或 *.old 文件。
  3. 内存日志systemd-journald 可能会缓存部分日志在内存,重启后才会完全清除。

总结

文件/日志 清除方法 验证命令
/var/log/wtmp sudo echo > /var/log/wtmp last root
/var/log/btmp sudo echo > /var/log/btmp lastb root
journald sudo journalctl --vacuum-time=1s journalctl -u sshd
/var/log/auth.log sudo echo > /var/log/auth.log grep "root" auth.log

如果你需要完全隐身,建议:

  1. 清除上述所有日志。
  2. 修改 SSH 配置关闭日志。
  3. 重启服务器确保内存日志也被清除。

注意事项:

请勿非法用途,仅供研究。


文章来源: https://blog.upx8.com/4773
如有侵权请联系:admin#unsafe.sh