在 Xen 节点上运行 OpenVPN 会导致客户虚拟机将所有入站连接视为源自节点 IP

在 Xen 节点上运行 OpenVPN 会导致客户虚拟机将所有入站连接视为源自节点 IP

我有两个运行 Xen 4.2 的节点服务器——我将它们称为节点 A 和节点 B。

节点 A 运行 OpenVPN 作为服务器。节点 B 运行 OpenVPN 作为客户端。两个节点都托管多个 Xen 客户虚拟机。节点 A 和节点 B 通过 OpenVPN 连接在一起,节点 A 为 10.0.0.1,节点 B 为 10.0.0.2。

问题就出在这里:

如果我通过 SSH 连接到节点 B 上的客户虚拟机并发出命令who,它会正确报告我已从我的家庭康卡斯特 IP 地址登录。

但是,如果我连接到节点 A 上的客户虚拟机并发出命令who,它会显示我已登录,但不是从我的 Comcast IP 登录,而是从节点 A 的主 IP 地址登录。

这很成问题,因为客户虚拟机错误地记录了登录来自何处,而且我们还进行了暴力破解检测。连续五次登录失败,您就会被禁止。由于现在所有登录似乎都来自节点 A 的主 IP 地址,因此节点 A 被防火墙阻止,虚拟机会脱机。

有人知道为什么会发生这种情况吗?

route -n节点 A 的输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         204.XX.60.65    0.0.0.0         UG    0      0        0 em1
10.0.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1004   0        0 em1
204.XX.60.0     0.0.0.0         255.255.255.0   U     0      0        0 em1

节点 A 的 /etc/openvpn/server.conf 内容:

port 1194
proto tcp-server
dev tun0
# 10.0.0.1 is server-vpn
# 10.0.0.2 is backup-vpn
ifconfig 10.0.0.1 10.0.0.2

# Our pre-shared static key
secret static.key

# LZO compression
comp-lzo

tun-mtu 64800
mssfix 1440

# 3 -- medium output, good for normal operation.
verb 3

答案1

解决了这个问题,iptables 中有一个错误的 POSTROUTING MASQUERADE 规则,与 OpenVPN 安装无关。

我删除了以下规则:

iptables -t nat -D POSTROUTING 1

1规则编号是从哪里检索到的service iptables status

相关内容