CentOS Syslog安全加固指南
Syslog是CentOS系统日志记录的核心工具,其安全性直接关系到系统运行状态的监控有效性及敏感信息的保护。以下从访问控制、传输加密、存储安全、审计监控、系统加固五大维度,梳理具体的安全加固措施:
限制本地访问(默认安全设置)
编辑/etc/rsyslog.conf配置文件,注释或删除UDP监听的全局配置(默认开启514端口),仅允许本地进程发送日志:
#$ModLoad imudp.so # 注释掉UDP模块加载
#$UDPServerRun 514 # 注释掉UDP服务启动
#$UDPServerAddress 127.0.0.1 # 可选:明确绑定本地地址(若需保留UDP)
重启rsyslog服务使配置生效:systemctl restart rsyslog。
限制可信IP访问
在/etc/rsyslog.conf中添加AllowedSender规则,仅允许特定IP段或主机发送日志(如内网网段192.168.1.0/24):
auth,authpriv.* @192.168.1.100;AllowedSender UDP, 192.168.1.0/24 # 仅允许UDP来自该网段的日志
保存后重启服务。
防火墙规则过滤
使用firewalld限制Syslog服务端口(TCP/UDP 514)的访问,仅放行可信源:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="514" protocol="tcp" accept'
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="514" protocol="udp" accept'
firewall-cmd --reload
若Syslog需传输敏感信息(如用户操作日志、系统错误日志),应使用TLS/SSL加密日志流,防止数据被窃听或篡改:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/rsyslog.key -out /etc/rsyslog.crt
chmod 600 /etc/rsyslog.key # 密钥文件仅root可读
/etc/rsyslog.conf中加载TLS模块并指定证书路径:module(load="imtcp") # 启用TCP模块(TLS基于TCP)
module(load="omfwd") # 启用转发模块
module(load="tls") # 加载TLS模块
input(type="imtcp" port="514" tls="on" tls.caCert="/etc/rsyslog.crt" tls.myCert="/etc/rsyslog.crt" tls.myPrivKey="/etc/rsyslog.key")
action(type="omfwd" target="remote-log-server-ip" port="514" protocol="tcp" tls="on" tls.caCert="/etc/rsyslog.crt")
重启服务使配置生效。syslog组读取(默认路径/var/log/messages、/var/log/secure等):chown root:syslog /var/log/messages
chmod 640 /var/log/messages
chattr +i /var/log/messages # 解除属性需用`chattr -i`
logrotate工具自动分割、压缩旧日志,防止日志文件过大占用磁盘空间。编辑/etc/logrotate.conf或创建/etc/logrotate.d/rsyslog自定义规则:/var/log/messages {
daily # 每天轮转
rotate 7 # 保留7份
compress # 压缩旧日志
missingok # 文件缺失不报错
notifempty # 空文件不轮转
sharedscripts # 所有日志轮转完成后执行脚本
postrotate
systemctl kill -s HUP rsyslog.service # 重新加载rsyslog以继续记录
endscript
}
启用审计规则
使用auditd工具监控对Syslog配置文件和日志文件的访问,记录所有修改操作:
auditctl -w /etc/rsyslog.conf -p wa -k syslog_conf_mod # 监控配置文件修改
auditctl -w /var/log/messages -p ra -k syslog_access # 监控日志文件读取
查看审计日志:ausearch -k syslog_conf_mod。
实时监控与告警
使用tail -f实时查看日志文件,或通过logwatch工具生成每日日志报告(需安装yum install logwatch):
logwatch --service syslog --output mail # 发送邮件报告(需配置邮件服务)
结合监控工具(如Prometheus+Grafana)设置告警规则,当日志量突增(异常事件)或服务宕机时通知管理员。
yum update rsyslog -y
syslog用户身份运行(默认配置),避免使用root权限:ps -ef | grep rsyslog # 确认进程用户为syslog
/etc/rsyslog.conf及日志文件到远程存储(如NFS、S3),防止配置丢失:cp /etc/rsyslog.conf /backup/rsyslog.conf_$(date +%F)
通过以上措施,可全面覆盖CentOS Syslog的安全风险点,从访问控制、数据传输、存储保护到监控审计,构建多层防御体系,保障系统日志的完整性、机密性和可用性。