rsyslog集中式日志服务器必须兼顾功能与安全,需从防火墙策略(限源ip、禁用非必要端口)、selinux配置(启用rsyslogd_read_log_files和rsyslogd_network_connect布尔值)、tls加密传输(服务端加载gtls模块、客户端使用@@(o)转发至6514端口)及日志文件权限管控(目录750、文件640、logrotate强制create 640)四层面同步加固。

用 Rsyslog 搭建集中式日志服务器,不能只关注“通不通”,更要确保“安不安全”。日志本身是安全审计和故障溯源的核心依据,一旦被篡改、窃取或伪造,整个运维与安全体系就失去可信基础。真正可靠的做法,是在功能实现前提下,逐层加固网络、系统、传输和访问控制四个关键面。
防火墙策略必须精细化放行
默认开放 514 端口等于把日志大门敞开。无论使用 firewalld 还是 iptables,都应严格限制来源和协议:
- 仅放行必需端口:TCP 和 UDP 的 514 端口分别对应可靠传输与传统 syslog,按需启用,不建议同时开放
- 限制源 IP 范围:只允许业务服务器所在网段(如 192.168.10.0/24)或跳板机 IP 访问,避免全网暴露
- 禁用远程接收(如非必要):若仅需客户端转发日志,服务端配置中注释掉 $ModLoad imtcp 和 $ModLoad imudp,彻底关闭监听
SELinux 不该被关,而应被正确配置
禁用 SELinux 是最常见也最危险的“捷径”。Rsyslog 在 Enforcing 模式下完全可用,只需调整两项关键布尔值:
- 运行 setsebool -P rsyslogd_read_log_files on,允许其读取各类日志源文件(如 /var/log/secure)
- 运行 setsebool -P rsyslogd_network_connect on,授权其建立网络连接(含接收和转发)
- 若日志存储路径不在默认上下文(如 /data),用 semanage fcontext -a -t var_log_t "/data(/.*)?" 并执行 restorecon -Rv /data
敏感日志传输必须加密
TCP 514 明文传输 authpriv、sudo、SSH 登录等日志,等同于把凭证行为裸奔发送。生产环境应启用 TLS:
- 服务端生成 CA 和服务器证书,客户端使用对应客户端证书(双向认证更稳妥)
- Rsyslog 配置中加载 mmtls 模块,并在 imtcp 输入中启用 tls="on" 及证书路径
- 客户端转发规则改用 @@(o)server.example.com:6514(o 表示 TLS),端口建议避开 514 改用 6514 等非标端口
日志文件权限与轮转要强制管控
集中存储后,日志文件本身成为高价值目标,必须从操作系统层设防:
- 所有远程日志目录(如 /data)属主设为 root:root,权限设为 750;单个日志文件设为 640
- 在 logrotate 配置中明确指定 create 640 root root,防止新日志文件权限回退
- 对 auth/authpriv 类日志,额外设置 chown root:adm /var/log/auth.log && chmod 640 /var/log/auth.log
不复杂但容易忽略——安全不是加一道锁,而是让每层防护各司其职:防火墙拦住非法访问,SELinux 管住进程行为,TLS 保传输内容,文件权限守最终落盘。四者齐备,Rsyslog 才真正成为可信赖的日志中枢。











