openvpn 클라이언트를 통해 나가는 트래픽만 라우팅하는 방법은 무엇입니까?

openvpn 클라이언트를 통해 나가는 트래픽만 라우팅하는 방법은 무엇입니까?

VPN 클라이언트를 통해 나가는 트래픽을 제외한 모든 트래픽을 라우팅 하고 싶습니다 computer_X(더 쉬운 경우 클라이언트에 VPN 서버를 설치할 수도 있습니다).

기본적으로 들어오는 연결(예: 웹 서버 :80, :443 또는 ssh :22에 대한 요청)은 여전히 ​​내 WAN 인터페이스를 통해 라우팅되지만 나가는 연결(예: 내 :80의 요청)은 computer_XVPN 클라이언트를 통해 라우팅되어야 합니다.

항상 사용하는 규칙을 추가했습니다WAN 게이트웨이내에서 시작되는 패킷의 기본 경로로WAN 인터페이스. 바라보다:

# ip route show table 42
default via WAN_GATEWAY dev eth0 

# ip rule list
0:      from all lookup local 
32765:  from WAN_IP lookup 42
32766:  from all lookup main 
32767:  from all lookup default 

# ip r
default via WAN_GATEWAY dev eth0 onlink 
10.8.0.0/24 via 10.8.0.2 dev tun0 
10.8.0.2 dev tun0  proto kernel  scope link  src 10.8.0.1 
WAN_SUBNET/26 via WAN_GATEWAY dev eth0 
WAN_SUBNET/26 dev eth0  proto kernel  scope link  src WAN_IP 

# ip a
eth0: inet WAN_IP ...
tun0: inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0

이제 내 경로를 통해 나가는 모든 트래픽을 라우팅하고 싶습니다.Tun0ip route add default via 10.8.0.1하지만 터널 자체를 라우팅할 수 없기 때문에 할 수 없습니까 ?

하지만 아마도 기본 경로를 계속 사용할 수 있을 것입니다.

ip route default via 10.8.0.1

하지만 이와 같이 VPN 연결을 위한 특정 경로도 만드시겠습니까?

ip route add table 32 default via WAN_IP
ip rule add from 10.8.0.0/8 table 32

VPN이 자체적으로 라우팅되지 않는 것을 방지할 수 있기를 바랍니다.

아니면 10.8.0.0/8을 제외한 모든 서브넷에 대한 모든 경로를 수동으로 추가해야 합니까(터널이 자체적으로 터널링하지 않도록 하기 위해)?

ip route add 128.0.0.0/1  via 10.8.0.1
ip route add 64.0.0.0/2 via 10.8.0.1
ip route add 32.0.0.0/3 via 10.8.0.1
ip route add 16.0.0.0/4 via 10.8.0.1
ip route add 12.0.0.0/6 via 10.8.0.1
ip route add 11.0.0.0/7 via 10.8.0.1
ip route add 9.0.0.0/8 via 10.8.0.1

답변1

OpenVPN은 기본적으로 기본 경로 테이블의 OpenVPN 서버에 경로를 추가합니다. 가장 일치하는 규칙에 따라 라우팅 결정이 내려지며, 일치하는 규칙이 없으면 기본 게이트웨이가 사용됩니다. OpenVPN 서버에는 더 정확한 규칙이 있으므로 기본 경로 대신 사용됩니다.

OpenVPN을 통해 모든 트래픽을 라우팅하려면 기본 구성을 사용한 다음 특별한 경우에 대한 예외를 구성해야 합니다.

별도로 구성할 수 있습니다.네트워크 네임스페이스자체 라우팅 구성을 갖고 그 안에서 서비스를 실행합니다. 이를 위해서는 네임스페이스에 별도의 IP 주소를 할당하거나 네임스페이스 간에 NAT 구성을 사용해야 할 수도 있습니다.

별도의 네트워크 네임스페이스에 대한 대안은 다음을 사용하는 것입니다.정책 라우팅패킷 태그 포함.

소스 포트에서 들어오는 패킷을 iptables표시 하는 데 사용됩니다.1080,443화그리고번호 22:

iptables -t mangle -A OUTPUT -p tcp -m multiport --sports 80,443,22 -j MARK --set-mark 10

라우팅 테이블을 구성합니다. 기본 경로 테이블을 사용하는 OpenVPN 구성(터널 자체를 제외한 OpenVPN 터널을 통과하는 모든 트래픽) 태그가 지정된 트래픽에는 별도의 라우팅 테이블이 있습니다.

# add new routing table 100 and set its default routing to your default gw
ip route add table 100 default via $DEFAULT_GW

# add rule to use the new table for packets marked 10
ip rule add fwmark 10 table 100

# flush routing cache
ip route flush cache

관련 정보