首页主机资讯如何利用CentOS Syslog进行安全审计

如何利用CentOS Syslog进行安全审计

时间2025-10-17 22:34:04发布访客分类主机资讯浏览284
导读:一、前置准备:安装与配置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自身安全性

  1. 限制访问来源:通过防火墙(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
    
  2. 加密传输:若需传输敏感日志(如认证日志),配置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")
    
  3. 日志文件权限控制:设置日志文件仅root可读写,防止未授权修改:
    sudo chown root:root /var/log/auth.log /var/log/messages
    sudo chmod 600 /var/log/auth.log /var/log/messages
    
  4. 防篡改保护:使用chattr命令给日志文件添加不可更改属性(需root权限):
    sudo chattr +i /var/log/auth.log
    
    (注:需修改日志时,用chattr -i临时解除,修改后再恢复)

三、部署auditd实现深度安全审计
rsyslog仅能记录日志,无法主动监控系统调用或用户操作,需配合auditd(Linux审计守护进程)实现深度审计:

  1. 安装auditd
    sudo yum install audit -y
    
  2. 配置审计规则:编辑/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
    
  3. 重启auditd服务
    sudo systemctl start auditd
    sudo systemctl enable auditd
    
  4. 加载规则:使用augenrules命令加载新规则:
    sudo augenrules --load
    

四、使用工具监控与分析审计日志

  1. 实时查看日志:用tail命令实时监控认证日志或audit日志:
    sudo tail -f /var/log/auth.log  # 实时查看认证日志
    sudo ausearch -m USER_LOGIN -i  # 实时查看用户登录事件(需auditd支持)
    
  2. 生成审计报告:用aureport工具生成汇总报告(如最近7天的登录事件、execve调用):
    sudo aureport -au -ts today -te 7  # 用户认证报告(最近7天)
    sudo aureport -k -i  # 所有带key的审计事件(如passwd_change、execve_audit)
    
  3. 查询特定事件:用ausearch工具查询特定key的事件(如passwd_change):
    sudo ausearch -k passwd_change -i  # 查询/etc/passwd修改事件
    sudo ausearch -k execve_audit | grep "comm="  # 查看执行的程序名称
    

五、日志轮转与长期管理
使用logrotate工具自动轮转日志,防止日志文件过大占用磁盘空间:

  1. 创建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
    }
        
    
  2. 手动触发轮转:测试配置是否正确:
    sudo logrotate -vf /etc/logrotate.d/rsyslog
    
    -v表示详细模式,-f表示强制轮转)

六、持续维护与优化

  1. 定期更新软件:及时更新rsyslog、auditd及相关依赖,修复安全漏洞:
    sudo yum update rsyslog audit -y
    
  2. 备份关键日志:将/var/log/auth.log/var/log/audit/audit.log定期备份到远程服务器(如使用scprsync),防止本地日志丢失。
  3. 监控服务状态:用systemctl命令定期检查rsyslog和auditd的运行状态,确保服务正常:
    sudo systemctl status rsyslog
    sudo systemctl status auditd
    
  4. 调整审计规则:根据业务需求调整auditd规则(如新增对敏感目录的监控),避免过度审计影响系统性能。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何利用CentOS Syslog进行安全审计
本文地址: https://pptw.com/jishu/729473.html
如何通过CentOS Syslog排查系统问题 centos appimage如何定制个性化界面

游客 回复需填写必要信息