同じコンピュータにリバースプロキシ(HAProxy)とopenvpnサーバーを含むネットワーク用のゲートウェイを設定しています。
私のネットワーク上のすべてのトラフィックが暗号化されるように、openvpnを使用してVPNプロバイダに接続したいと思います。
これで問題は、VPNプロバイダへの接続を開くと、新しいルートが自分のルーティングテーブルにプッシュされることです。これらのパスはHAProxyと競合し、内部サーバーにアクセスできません。
VPNプロバイダのルーティングテーブルに接続されていません:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 202 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 203 0 0 eth1
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 203 0 0 eth1
VPNプロバイダ接続後のルーティングテーブル:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.3.1 128.0.0.0 UG 0 0 0 tun1
default 192.168.1.1 0.0.0.0 UG 202 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 203 0 0 eth1
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.8.3.0 0.0.0.0 255.255.255.0 U 0 0 0 tun1
123.243.152.126 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 10.8.3.1 128.0.0.0 UG 0 0 0 tun1
192.168.100.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 203 0 0 eth1
ルーティングと NAT ルールを設定するには、次のガイドに従いました。https://gist.github.com/superjamie/ac55b6d2c080582a3e64
VPNプロバイダへの接続であるtun1を介してすべてのトラフィックをeth1にルーティングしたいと思います。
sudo iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
sudo iptables -A FORWARD -i tun1 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o tun1 -j ACCEPT
eth0へのすべての要求はこのトンネルを通過しないでください。代わりに、彼らは私の内部サーバーにアクセスするか、ネットワーク外部クライアントからの要求に応答します。