Rsyslog 拒绝通过 OpenVPN 进行记录

Rsyslog 拒绝通过 OpenVPN 进行记录

我正在尝试通过 VPN 将 rsyslog 从客户端转发到服务器。

我已经让它通过互联网链接工作了(通过 eth0 到边缘路由器),但希望它能够通过经过同一链接的 OpenVPN 隧道。

我一直在/etc/rsyslog.conf文件中交替使用这些指令:

  1. *.* @@50.116.x.x:6514
  2. *.* @@172.31.0.1:6514

我一直在检查带有tcpdump port 6514 -nA和指令的数据包1我可以看到所有发出的系统日志数据包,以及 [在服务器上] 传入的数据包。telnet 50.116.x.x 6514从客户端执行命令确认rsyslog正在监听。

但是当我交换指令时1用于指令2我看不到任何打印输出tcpdumptelnet 172.31.0.1 6514从客户端运行确认rsyslog也正在监听此地址。

rsyslog -f/etc/rsyslog.conf -c3 -d在客户端上运行并没有发现任何明显的问题:

7144.035145795:b75f5b20: cfline: '*.*                   @@172.31.0.1:6514'
7144.035176137:b75f5b20:  - traditional PRI filter
7144.035191209:b75f5b20: symbolic name: * ==> 255

...snip...

7144.040606069:b75f5b20: rule 0x84deb90: rsyslog rule:
7144.040629321:b75f5b20: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
Actions:
7144.040782140:b75f5b20: builtin-fwd: 172.31.0.1
    Instance data: 0x84debe8
7144.040816265:b75f5b20:    RepeatedMsgReduction: 0
7144.040837415:b75f5b20:    Resume Interval: 30
7144.040858498:b75f5b20:    Suspended: 0
7144.040880749:b75f5b20:    Disabled: 0
7144.040904527:b75aab70: testing filter, f_pmask 255
7144.040992291:b75f5b20:    Exec only when previous is suspended: 0

...snip...

7144.107980676:b6da9b70: --------imuxsock calling select, active file descriptors (max 3): 3 
7144.331986934:b75aab70:  172.31.0.1:514/tcp
7144.332023986:b75aab70: TCP sent 87 bytes, requested 87

...snip...

7144.332313940:b75aab70: Called action, logging to builtin-fwd
7144.332321268:b75aab70: extend buf to at least 146, done 256
7144.332325242:b75aab70:  172.31.0.1
7144.332328964:b75aab70:  172.31.0.1:6514/tcp
7144.332336989:b75aab70: TCP sent 146 bytes, requested 146
7144.332341371:b75aab70: testing filter, f_pmask 0
7144.332344785:b75aab70: testing filter, f_pmask 255

这真是令人困惑...我还注意到它之后---imuxsock没有使用我在配置中指定的端口......版本详情:

客户:

  • Debian 6
  • OpenVPN 2.1.3 i486-pc-linux-gnu
  • rsyslog 4.6.4-2

服务器:

  • Debian 7.8
  • OpenVPN 2.2.1 x86_64-linux-gnu
  • rsyslog 5.8.11-3+deb7u2

谢谢阅读。

更新

tcpdump在客户端使用 netcat 连接时在服务器上观察。通过互联网连接时,nc 50.116.x.x 6514我可以看到打印的内容tcpdump。但通过 VPN 连接时,nc 172.31.0.1 6514什么都没有打印。甚至没有连接/断开连接。但 netcat 从未给出错误。

更新2

输出自ip route

服务器:

default via 50.116.x.1 dev eth0 
50.116.x.0/24 dev eth0  proto kernel  scope link  src 50.116.x.x 
172.31.0.0/16 via 172.31.0.2 dev tun0 
172.31.0.2 dev tun0  proto kernel  scope link  src 172.31.0.1

客户:

default via 10.0.0.1 dev br0 
10.0.0.0/24 dev br0  proto kernel  scope link  src 10.0.0.160 
172.31.0.0 dev tun0  proto kernel  scope link  src 172.31.0.133 
172.31.0.1 via 172.31.0.0 dev tun0 
192.0.2.0/24 dev dummy0  proto kernel  scope link  src 192.0.2.1 

答案1

tcpdump(及其替代tshark)默认为“编号最小”的接口。通常为 eth0。为了捕获 OpenVPN 接口 tun0 上的流量,您需要类似这样的内容tcpdump -i tun0 port 6514。(接口名称任何可用于在所有接口上捕获。)查看是否在那里获得任何系统日志流量。

另一件要尝试的事情是查看 OpenVPN 是否响应 syslog 数据包生成任何流量,tcpdump port 1194其中 1194 是我对您的 OpenVPN 连接的假设。)

相关内容