方法 1:禁用 last 和 lastb 记录的日志(utmp/wtmp/btmp)

这些日志文件通常位于:

/var/log/wtmp(记录登录成功信息,last 命令读取)

/var/log/btmp(记录登录失败信息,lastb 命令读取)

/run/utmp(当前登录会话,who 命令读取)

1、清空现有日志(可选):

1
2
3
sudo truncate -s 0 /var/log/wtmp
sudo truncate -s 0 /var/log/btmp
sudo truncate -s 0 /run/utmp

2、阻止未来记录:

1
2
3
sudo chmod -x /usr/bin/last /usr/bin/lastb  # 禁用命令执行(可选)
sudo chmod 400 /var/log/wtmp /var/log/btmp # 只读权限
sudo chattr +i /var/log/wtmp /var/log/btmp # 加不可修改属性(需 root)

方法 2:禁用 systemd-journald 日志(部分登录信息

如果使用 systemd,登录信息可能被记录在 journal 日志中:

1
2
sudo systemctl stop systemd-journald.service  # 临时停止
sudo systemctl disable systemd-journald.service # 禁用(不推荐,影响其他日志)

更推荐限制 journal 日志大小:

1
2
3
4
5
sudo vim /etc/systemd/journald.conf

# 修改以下参数:
Storage=none # 不存储日志
MaxRetentionSec=1s # 日志保留1秒

然后重启服务:

1
sudo systemctl restart systemd-journald

方法 3:禁用 SSH 登录日志(如果通过 SSH 登录)

编辑 /etc/ssh/sshd_config:

1
2
3
4
5
sudo vim /etc/ssh/sshd_config

# 添加或修改:
SyslogFacility AUTH
LogLevel QUIET # 不记录 SSH 登录日志

重启 SSH 服务:

1
sudo systemctl restart sshd

方法 4:使用 auditd 规则排除登录记录(高级)

如果系统启用了 auditd,可以添加规则排除特定用户的登录审计:

1
2
3
4
sudo vim /etc/audit/audit.rules

# 添加
-a exclude,never -F msgtype=USER_LOGIN

然后重启 auditd:

1
sudo systemctl restart auditd

注意事项

  • 副作用:
    – 禁用日志可能影响故障排查或安全审计。
    – 某些服务(如 fail2ban)依赖这些日志。
  • 权限要求:大部分操作需要 root 权限
  • 临时方案:部分方法(如清空文件)会在系统重启后恢复记录

验证是否生效

  • 检查命令是否无输出:
    1
    2
    3
    last
    lastb
    journalctl -u sshd | grep "session opened"