如何在Linux中配置登录安全审计记录
把Linux登录安全审计真正做扎实,至少得把三层都覆盖到:登录动作、会话行为、命令执行。只盯着rsyslog日志,其实远远不够,还得叠加auditd把审计链路补完整;关键规则要写进/etc/audit/rules.d/login.rules并完成加载,同时配合shell命令记录以及本地日志防篡改措施
把Linux登录安全审计真正做扎实,至少得把三层都覆盖到:登录动作、会话行为、命令执行。只盯着rsyslog日志,其实远远不够,还得叠加auditd把审计链路补完整;关键规则要写进/etc/audit/rules.d/login.rules并完成加载,同时配合shell命令记录以及本地日志防篡改措施,这样整套审计才算闭环。

Linux 的登录安全审计,不能只盯着 /var/log/secure 或 /var/log/auth.log 这类日志看。真正有效的做法,一定是分层覆盖:先看登录动作——谁来的、从哪里来、登录成功还是失败;再看会话行为——TTY 是怎么启动的,是否发生了 su/sudo 切换;最后还得落到命令执行——连带参数一起看清楚。这三层,少一层都不完整。否则,最终掌握的往往只是“某个人登上了系统”,却根本不知道“他登上去之后到底做了什么”。
为什么 rsyslog 记录的登录日志不够用
rsyslog 默认记录 SSH 登录成功/失败、sudo 使用等事件,但它不捕获:
- 用户登录后是否启动了新 TTY 会话(比如通过
screen或tmux) - 是否调用了
su -切换到 root 但没输密码(利用已有凭证) - 具体执行了哪些命令、带什么参数(
rm -rf /tmp/*和rm -rf /在日志里都只是“执行了 rm”)
这些盲区正是攻击者横向移动或提权时最常利用的。所以必须叠加 auditd 才能补全。
用 auditd 捕获登录全过程的关键规则
直接写入 /etc/audit/rules.d/login.rules,避免用 auditctl 临时添加(重启即失效):
- 监控登录凭证文件变更:
-w /var/log/lastlog -p wa -k login_track、-w /var/run/utmp -p wa -k login_track - 捕获所有用户级会话启动:
-a always,exit -F arch=b64 -S execve -F auid!=-1 -k session_commands(auid!=-1排除内核线程) - 特别标记特权切换:
-a always,exit -F arch=b64 -C uid!=euid -F euid=0 -k priv_switch(记录任何 UID ≠ EUID 且 EUID=0 的调用,即提权行为)
加载后运行 augenrules --load,再用 ausearch -k login_track | head -3 验证是否产出日志。注意:如果系统是 32 位或混合架构,需额外加 -F arch=b32 规则,否则漏掉 i686 程序。
如何让命令行参数真正可读、可溯源
auditd 能记录 execve,但原始日志里命令参数是地址数组,得靠 ausearch -i 解析——这依赖 auditd 配置中 order = 1(默认开启)和符号表完整。更稳妥的做法是双保险:
- 在
/etc/profile中追加:export PROMPT_COMMAND='logger -p local6.info "$(whoami) [$$] $(history 1 | sed "s/^[ ]*[0-9]+[ ]*//") [$?]"' - 配
/etc/rsyslog.d/shell-commands.conf:local6.* /var/log/shell-commands.log - 给
/var/log/shell-commands.log加chattr +a防删,但轮转前必须先chattr -a,否则logrotate失败
这个方案记录的是 shell 解释后的命令字符串,参数清晰,但依赖用户使用 bash/zsh 且未篡改 PROMPT_COMMAND。所以它和 auditd 是互补,不是替代。
本地日志防篡改最容易被忽略的三件事
审计日志存本地等于“把钥匙放在门垫下”:
/var/log/audit/目录权限必须是0700,audit.log文件必须是0600,否则普通用户可读 —— 这不是建议,是硬性要求chattr +a只对追加生效,但auditd轮转时会 rename 文件,此时需在/etc/logrotate.d/auditd的postrotate段手动加chattr +a /var/log/audit/audit.log- TLS 远程转发必须启用,配置
*.* @@(o)syslog-server:6514中的(o)表示强制 TLS,否则明文传输等于白做
没有外发、没关权限、没锁文件属性,前面所有规则都可能被清空后无声无息。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















