auditd是Linux内核的审计框架,可以记录系统调用和文件访问:
# 安装auditd
sudo apt-get install auditd # Debian/Ubuntu
sudo yum install audit # RHEL/CentOS
# 常用命令
sudo systemctl start auditd # 启动服务
sudo systemctl enable auditd # 设置开机启动
sudo auditctl -l # 查看当前规则
# 监控/etc/passwd文件访问
sudo auditctl -w /etc/passwd -p wa -k passwd_access
# 监控sudo命令使用
sudo auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_cmd
# 永久保存规则(添加到/etc/audit/rules.d/)
echo "-w /etc/passwd -p wa -k passwd_access" | sudo tee -a /etc/audit/rules.d/my.rules
sudo augenrules --load
# 搜索特定事件
sudo ausearch -k passwd_access
# 生成审计报告
sudo aureport -au -i # 用户认证报告
sudo aureport -m -i # 账户修改报告
sudo aureport --summary # 摘要报告
/var/log/auth.log
或 /var/log/secure
- 认证日志/var/log/syslog
- 系统活动日志/var/log/kern.log
- 内核日志/var/log/audit/audit.log
- auditd日志/var/log/btmp
- 失败登录尝试(使用lastb查看)/var/log/wtmp
- 登录记录(使用last查看)# 查找失败登录尝试
sudo grep "Failed password" /var/log/auth.log
# 查找SSH登录
sudo grep "sshd" /var/log/auth.log | grep "Accepted"
# 查看全部日志
sudo journalctl
# 查看指定服务日志
sudo journalctl -u sshd
# 实时监控新日志
sudo journalctl -f
# 安装
sudo apt-get install logwatch # Debian/Ubuntu
sudo yum install logwatch # RHEL/CentOS
# 运行
sudo logwatch --detail High
# 查询登录历史
osqueryi "SELECT * FROM last;"
# 查询进程信息
osqueryi "SELECT pid, name, cmdline FROM processes;"
#!/bin/bash
# 安全审计脚本
echo "===== 系统安全审计报告 ====="
echo "生成日期: $(date)"
echo ""
echo "----- 1. 用户账户检查 -----"
echo "特权用户:"
sudo awk -F: '$3 == 0 {print $1}' /etc/passwd
echo ""
echo "空密码账户:"
sudo awk -F: '($2 == "") {print $1}' /etc/shadow
echo ""
echo "----- 2. 登录审计 -----"
echo "最近登录:"
last -n 10
echo ""
echo "失败登录尝试:"
sudo lastb -n 10
echo ""
echo "----- 3. SUID文件检查 -----"
sudo find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/null
echo ""
echo "----- 4. 监听端口检查 -----"
sudo netstat -tulnp
echo ""
echo "----- 5. 计划任务检查 -----"
sudo ls -la /etc/cron.*
echo ""
echo "审计完成。"
日志轮转:配置logrotate防止日志过大
sudo vim /etc/logrotate.conf
远程日志:配置syslog发送日志到远程服务器
# 在/etc/rsyslog.conf中添加
*.* @remote-log-server:514
日志完整性:使用logsign或类似工具确保日志不被篡改
定期审计:设置cron任务定期运行审计脚本
告警机制:配置logcheck或fail2ban对可疑活动发出警报
通过以上方法,您可以全面监控Linux系统的安全状态,及时发现潜在的安全威胁。