只能使用UDP:514端口接收Syslog日志的两种解决方法

简介: 只能使用UDP:514端口接收Syslog日志的两种解决方法

只能使用UDP:514端口接收Syslog日志的两种解决方法


问题场景:


在接入网络安全设备例如防火墙,上网行为管理,IPS等设备和数通设备(交换机,路由器)的Syslog日志时, 有些网络安全设备和数通设备只能将Syslog日志发送到日志服务器的UDP 514端口,无法自定义修改为其他端口


但是GrayLog需要使用1024以上的端口用于Input监听端口用来接收日志


640.png


640.png



具体原因:参考GrayLog上的FAQ


How can I start an input on a port below 1024?
If you try to start an input on one of the privileged ports , it will only work for the “root” user. To be able to use a privileged port, you can use authbind on Debian-based systems, or you redirect the traffic with an iptables rule like this:
iptables -t nat -A PREROUTING -p tcp --dport 514 -j REDIRECT --to 1514
iptables -t nat -A PREROUTING -p udp --dport 514 -j REDIRECT --to 1514
The input needs to be started on port 1514 in this case and will be made available on port 514

640.png


下面用两种方法来解决这个问题


一、使用nginx的stream模块实现四层负载均衡


yum install nginx nginx-mod-stream -y
修改默认的nginx.conf
将include /etc/nginx/conf.d/*.conf; 放置在上方


640.png


然后


cd /etc/nginx/conf.d/
vim syslog514to1514.conf 
添加如下
stream {
        upstream udp_backend {
        server 192.168.31.230:1514;
    }
    server {
        listen 514 udp;
        proxy_pass udp_backend;
    }
}
firewall-cmd --list-ports
firewall-cmd --permanent --zone=public --add-port=514/udp
firewall-cmd --reload


640.png


接下来


systemctl restart nginx
systemctl enable nginx 
netstat -anp  | grep 514


640.png


找一台Linux服务器测试514端口


vi /etc/rsyslog.conf
最后一行添加如下配置
*.* @192.168.31.230:514;RSYSLOG_SyslogProtocol23Format
systemctl restart rsyslog


640.png

可以看到Graylog 1514端口已经收到syslog日志流量


640.png

640.png



不过有一点问题,这时gl2_remote_ip是GrayLog自身的IP (192.168.31.230)


二、通过firewalld的端口重定向来实现


具体操作命令如下


firewall-cmd --permanent --add-forward-port=port=514:proto=udp:toport=1514
需开启IP地址伪装,运行 
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

640.png


cat /proc/sys/net/ipv4/ip_forward可以看出

当firewalld的masquerade IP地址伪装开启时,ip_forward 会相应自动开启

效果验证


640.png



可以看到192.168.31.60的日志自动转发到1514端口

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
3月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
405 2
|
6月前
|
运维 监控 安全
Syslog 日志分析与异常检测技巧
系统日志蕴含设备运行关键信息,但分析提取颇具挑战。本文详解从命令行工具(如 Grep、Tail、Awk)到专业软件(如 EventLog Analyzer)的全流程日志分析技巧,助你高效挖掘 Syslog 价值,提升运维与安全响应能力。
409 4
|
存储 监控 安全
5款 Syslog集中系统日志常用工具对比推荐
集中管理Syslog有助于持续监控网络中的恶意活动,确保日志的搜索和分析更为便捷。常用工具包括Rsyslog、Syslog-ng、Logstash和Fluentd,它们各有优劣。Rsyslog通过多种协议确保日志传输的安全性;Syslog-ng支持高效收集和转发日志;Logstash能解析多源日志并索引;Fluentd将日志转换为JSON格式。卓豪EventLog Analyzer则提供一体化的日志管理,支持日志分析、报表生成、用户行为分析及实时告警,是全面的日志管理解决方案。
213 0
Erlang在端口上接收消息
Erlang在端口上接收消息
100 1
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
存储 网络协议 Linux
在Linux中,如何通过syslog进行远程日志转发?
在Linux中,如何通过syslog进行远程日志转发?
|
网络协议 Windows
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
2636 2
|
网络协议 网络安全 Python
电脑中 TCP/UDP 端口是否开放的测试:令人意想不到的神奇策略等你发现!
【8月更文挑战第19天】在网络管理和维护中,常需确认TCP/UDP端口是否开放以确保服务运行顺畅。端口如同计算机对外通信的“门”,TCP提供可靠连接,UDP则快速但无连接。测试端口是否开放的方法多样:可用`telnet`测试TCP端口,如`telnet localhost 80`;UDP测试较复杂,可用`nc`工具,如`nc -u -z localhost 53`。此外,也有在线工具可供选择,但需确保其安全性。
2861 1
|
Unix Python
Python代码示例:使用`syslog`模块进行日志记录
Python代码示例:使用`syslog`模块进行日志记录