如何在运行 VPN 服务器的机器上路由 VPN 流量

如何在运行 VPN 服务器的机器上路由 VPN 流量

我们有 2 台服务器:server1、server2 我的电脑是 client1 我们在 server1 上运行 VPN 服务器,IP 为 1.2.3.4(仅举例)我们想隐藏 VPN 后面的一些服务,包括 sshd 和 vnc 服务器

VPN配置的一部分:

server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "remote-gateway vpn_server_ip"
push "dhcp-option DNS 8.8.8.8"

iptables 部分配置:

PRIVATE=10.8.0.0/24
sudo iptables -t nat -A POSTROUTING -s $PRIVATE -o eno1 -j MASQUERADE

工作原理:如果我连接到 VPN,我能够使用 ssh 连接到 server2(假设连接到 IP 1.2.3.5),并且在 SSH 的最后一条登录消息中,我可以看到 VPN 服务器的地址而不是我的 IP。

ssh server2

将导致:

Last login: Tue Aug  2 15:55:46 2016 from server1

但是当我连接到我们的 server1(即运行 VPN 的服务器)时,我的 IP 仍然在那里(我也在防火墙中启用了它):

ssh server1

输出:

Last login: Tue Aug  2 15:57:38 2016 from client1

我希望服务器 IP 为 1.2.3.4,而不是客户端 1 的 IP。这样,我就可以只接受来自防火墙中的服务器 1 的数据包。现在,这适用于服务器 2,但不适用于服务器 1,因为 POSTROUTING 仅影响输出数据包。

相关内容