如何利用CentOS Syslog进行安全审计
导读:一、前置准备:安装与配置rsyslog 确保CentOS系统已安装rsyslog(默认已安装),并启动服务: sudo yum install rsyslog -y # 安装rsyslog(CentOS 7/8) sudo systemc...
一、前置准备:安装与配置rsyslog
确保CentOS系统已安装rsyslog(默认已安装),并启动服务:
sudo yum install rsyslog -y # 安装rsyslog(CentOS 7/8)
sudo systemctl start rsyslog # 启动服务
sudo systemctl enable rsyslog # 开机自启
编辑/etc/rsyslog.conf,配置基础日志分类存储(如将认证日志单独保存):
auth,authpriv.* /var/log/auth.log # 认证相关日志(如登录、sudo使用)
*.info;
mail.none;
authpriv.none;
cron.none /var/log/messages # 普通系统日志
重启服务使配置生效:
sudo systemctl restart rsyslog
二、强化rsyslog自身安全性
- 限制访问来源:通过防火墙(
firewalld)限制rsyslog端口(UDP 514/TCP 514)的访问,仅允许可信IP(如日志服务器IP)访问:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="514" protocol="tcp" accept' sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="514" protocol="udp" accept' sudo firewall-cmd --reload - 加密传输:若需传输敏感日志(如认证日志),配置rsyslog使用TLS加密。首先生成自签名证书(或使用CA签发),编辑
/etc/rsyslog.conf添加TLS配置:module(load="imtcp") module(load="omfwd") module(load="tls") input(type="imtcp" port="514" ssl.caCert="/etc/rsyslog/certs/ca.pem" ssl.cert="/etc/rsyslog/certs/server.crt" ssl.key="/etc/rsyslog/certs/server.key") action(type="omfwd" target="192.168.1.100" port="514" protocol="tcp" tls="on" tls.caCert="/etc/rsyslog/certs/ca.pem") - 日志文件权限控制:设置日志文件仅root可读写,防止未授权修改:
sudo chown root:root /var/log/auth.log /var/log/messages sudo chmod 600 /var/log/auth.log /var/log/messages - 防篡改保护:使用
chattr命令给日志文件添加不可更改属性(需root权限):
(注:需修改日志时,用sudo chattr +i /var/log/auth.logchattr -i临时解除,修改后再恢复)
三、部署auditd实现深度安全审计
rsyslog仅能记录日志,无法主动监控系统调用或用户操作,需配合auditd(Linux审计守护进程)实现深度审计:
- 安装auditd:
sudo yum install audit -y - 配置审计规则:编辑
/etc/audit/rules.d/audit.rules,添加关键监控规则(如监控/etc/passwd文件修改、execve系统调用(程序执行)、用户登录):# 监控/etc/passwd文件的写、删除、属性修改操作 -w /etc/passwd -p wa -k passwd_change # 监控所有程序执行(execve系统调用) -a exit,always -F arch=b32 -S execve -k execve_audit -a exit,always -F arch=b64 -S execve -k execve_audit # 监控用户登录(ssh、su、login等) -w /var/log/secure -p rwxa -k login_audit - 重启auditd服务:
sudo systemctl start auditd sudo systemctl enable auditd - 加载规则:使用
augenrules命令加载新规则:sudo augenrules --load
四、使用工具监控与分析审计日志
- 实时查看日志:用
tail命令实时监控认证日志或audit日志:sudo tail -f /var/log/auth.log # 实时查看认证日志 sudo ausearch -m USER_LOGIN -i # 实时查看用户登录事件(需auditd支持) - 生成审计报告:用
aureport工具生成汇总报告(如最近7天的登录事件、execve调用):sudo aureport -au -ts today -te 7 # 用户认证报告(最近7天) sudo aureport -k -i # 所有带key的审计事件(如passwd_change、execve_audit) - 查询特定事件:用
ausearch工具查询特定key的事件(如passwd_change):sudo ausearch -k passwd_change -i # 查询/etc/passwd修改事件 sudo ausearch -k execve_audit | grep "comm=" # 查看执行的程序名称
五、日志轮转与长期管理
使用logrotate工具自动轮转日志,防止日志文件过大占用磁盘空间:
- 创建logrotate配置:编辑
/etc/logrotate.d/rsyslog(针对rsyslog日志)和/etc/logrotate.d/audit(针对audit日志):# /etc/logrotate.d/rsyslog /var/log/messages { daily rotate 30 missingok notifempty compress delaycompress sharedscripts postrotate systemctl restart rsyslog > /dev/null 2> & 1 || true endscript } # /etc/logrotate.d/audit /var/log/audit/audit.log { daily rotate 30 missingok notifempty compress delaycompress sharedscripts postrotate systemctl restart auditd > /dev/null 2> & 1 || true endscript } - 手动触发轮转:测试配置是否正确:
(sudo logrotate -vf /etc/logrotate.d/rsyslog-v表示详细模式,-f表示强制轮转)
六、持续维护与优化
- 定期更新软件:及时更新rsyslog、auditd及相关依赖,修复安全漏洞:
sudo yum update rsyslog audit -y - 备份关键日志:将
/var/log/auth.log和/var/log/audit/audit.log定期备份到远程服务器(如使用scp或rsync),防止本地日志丢失。 - 监控服务状态:用
systemctl命令定期检查rsyslog和auditd的运行状态,确保服务正常:sudo systemctl status rsyslog sudo systemctl status auditd - 调整审计规则:根据业务需求调整auditd规则(如新增对敏感目录的监控),避免过度审计影响系统性能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何利用CentOS Syslog进行安全审计
本文地址: https://pptw.com/jishu/729473.html
