我正在尝试通过 VPN 将 rsyslog 从客户端转发到服务器。
我已经让它通过互联网链接工作了(通过 eth0 到边缘路由器),但希望它能够通过经过同一链接的 OpenVPN 隧道。
我一直在/etc/rsyslog.conf
文件中交替使用这些指令:
*.* @@50.116.x.x:6514
*.* @@172.31.0.1:6514
我一直在检查带有tcpdump port 6514 -nA
和指令的数据包1我可以看到所有发出的系统日志数据包,以及 [在服务器上] 传入的数据包。telnet 50.116.x.x 6514
从客户端执行命令确认rsyslog
正在监听。
但是当我交换指令时1用于指令2我看不到任何打印输出tcpdump
。telnet 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 连接的假设。)