最基础关键的访问控制是配置allowedsender白名单,需在rsyslog.conf或/etc/rsyslog.d/中模块加载后、input定义前添加allowedsender udp/tcp规则,配合启用imudp/imtcp模块监听指定端口,并结合firewalld或iptables实现纵深防御。

直接在 rsyslog 配置中限制接收端可接受的 IP 范围,是最基础也最关键的访问控制手段。它能有效防止未授权设备向你的日志服务器发送伪造或恶意日志,避免日志污染、服务过载甚至信息泄露。
配置 allowedsender 规则
rsyslog 支持通过 allowedsender 指令白名单化日志来源。该规则需写入主配置文件(/etc/rsyslog.conf)或独立的配置片段(如 /etc/rsyslog.d/01-remote.conf),且必须放在模块加载之后、输入定义之前。
- UDP 协议示例(默认 syslog 端口 514):
allowedsender UDP, 192.168.10.0/24 - TCP 协议示例(推荐用于可靠传输):
allowedsender TCP, 10.0.5.100 - 允许多个网段或单 IP,每行一条,不支持逗号分隔
- 若未匹配任何 allowedsender 规则,rsyslog 默认丢弃该连接或数据包(取决于模块行为)
配合 imudp / imtcp 模块启用监听
仅配置 allowedsender 不生效,还需确保对应输入模块已启用并绑定正确地址:
- 启用 UDP 监听(谨慎用于内网):
module(load="imudp")<br>input(type="imudp" port="514" address="0.0.0.0")
- 启用 TCP 监听(更可靠,支持 TLS):
module(load="imtcp")<br>input(type="imtcp" port="514" address="0.0.0.0")
- 建议将
address设为具体内网 IP(如192.168.10.10),而非0.0.0.0,缩小监听面
叠加防火墙策略加固
allowedsender 是应用层过滤,应与系统防火墙协同使用,形成纵深防御:
- CentOS/RHEL(firewalld):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="514" protocol="udp" accept'<br>firewall-cmd --reload
- 通用 iptables 示例:
iptables -A INPUT -p udp --dport 514 -s 192.168.10.0/24 -j ACCEPT<br>iptables -A INPUT -p udp --dport 514 -j DROP
- 防火墙规则优先于 rsyslog 处理,能提前拦截无效连接,降低服务负载
验证与调试要点
配置后务必验证是否生效,避免误阻断正常日志源:
- 重启服务:
systemctl restart rsyslog - 检查监听状态:
ss -tuln | grep :514确认端口绑定正确 - 从允许 IP 测试发送:
logger "test from trusted host",再查/var/log/messages是否收到 - 从禁止 IP 尝试:
echo "fake log" | nc -u 192.168.10.10 514,确认无日志写入且无错误提示 - 查看 rsyslog 日志(
/var/log/messages或journalctl -u rsyslog)中是否有invalid sender或connection refused类提示











