동일한 컴퓨터에 역방향 프록시(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에 대한 모든 요청은 이 터널을 통과해서는 안 됩니다. 대신 그들은 내 내부 서버에 액세스하거나 네트워크 외부 클라이언트의 요청에 응답합니다.