前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >只能使用UDP:514端口接收Syslog日志的两种解决方法

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

作者头像
yuanfan2012
发布2022-12-06 19:39:50
3.1K0
发布2022-12-06 19:39:50
举报
文章被收录于专栏:WalkingCloudWalkingCloud

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

问题场景:

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

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

(图片可点击放大查看)

(图片可点击放大查看)

具体原因:参考GrayLog上的FAQ

代码语言:javascript
复制
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 to the outside. The clients can then send data to port 514.

(图片可点击放大查看)

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

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

代码语言:javascript
复制
yum install nginx nginx-mod-stream -y

修改默认的nginx.conf
将include /etc/nginx/conf.d/*.conf; 放置在上方

(图片可点击放大查看)

然后

代码语言:javascript
复制
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

(图片可点击放大查看)

接下来

代码语言:javascript
复制
systemctl restart nginx
systemctl enable nginx 
netstat -anp  | grep 514

(图片可点击放大查看)

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

代码语言:javascript
复制
vi /etc/rsyslog.conf
最后一行添加如下配置
*.* @192.168.31.230:514;RSYSLOG_SyslogProtocol23Format

systemctl restart rsyslog

(图片可点击放大查看)

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

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

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

具体操作命令如下

代码语言:javascript
复制
firewall-cmd --permanent --add-forward-port=port=514:proto=udp:toport=1514
需开启IP地址伪装,运行 
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

(图片可点击放大查看)

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

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

效果验证

(图片可点击放大查看)

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WalkingCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题场景:
  • 具体原因:参考GrayLog上的FAQ
  • 下面用两种方法来解决这个问题
    • 一、使用nginx的stream模块实现四层负载均衡
      • 二、通过firewalld的端口重定向来实现
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档