라우터의 OpenVPN 클라이언트를 통해 인터넷에 액세스 할 특정 장치를 지정하는 방법은 무엇입니까?


1

관련 장치 : VPS, 라우터 및 라우터에 연결된 여러 장치

최종 목표 : VPS의 서버에 연결된 OpenVPN 클라이언트를 기반으로 VPN을 통해 인터넷에 액세스 할 로컬 장치를 하나만 지정하고 VPS의 일부 포트를 지정된 장치로 전달합니다.

VPS 네트워크 :

Public IP: 157.7.201.X

라우터 네트워크 :

WAN: 192.168.178.207/27
LAN: 192.168.1.0/24

VPN :

DHCP: 10.168.1.0/29
VPS: 10.168.1.1 (static)
Client: 10.168.1.2 (static)

지정된 장치의 IP는 192.168.1.123 (static)

(다음 세부 구성으로 건너 뛰어 현재 상황을 직접 확인할 수 있습니다. 조금 길고 모든 회선이 유용한 것은 아니기 때문입니다.)

그리고 여기 내 VPS의 iptables가 있습니다 :

root@VPS:~# iptables -t nat -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 24 packets, 2860 bytes)
pkts bytes target prot opt in out source destination
6280 663K SNAT all -- * * 10.168.1.0/29 0.0.0.0/0 to:157.7.201.X

라우터의 라우팅 테이블 :

root@Onee3:/tmp/home/root# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.178.193 * 255.255.255.255 UH 0 0 0 vlan1
157.7.201.85 192.168.178.193 255.255.255.255 UGH 0 0 0 vlan1
10.168.1.1 * 255.255.255.255 UH 0 0 0 tun11
10.168.1.0 10.168.1.1 255.255.255.248 UG 0 0 0 tun11
192.168.178.192 * 255.255.255.224 U 0 0 0 vlan1
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.178.193 0.0.0.0 UG 0 0 0 vlan1

내 라우터의 iptables :

root@Onee3:/tmp/home/root# iptables -t nat -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 5 packets, 709 bytes)
pkts bytes target prot opt in out source destination
75 14012 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.233
12828 1438K SNAT all -- * vlan1 192.168.1.100 0.0.0.0/0 to:192.168.178.207
27 1764 SNAT all -- * tun11 0.0.0.0/0 10.168.1.0/29 to:10.168.1.2
33 1980 SNAT all -- * vlan1 192.168.1.222 0.0.0.0/0 to:192.168.178.207
0 0 SNAT all -- * tun11 192.168.1.123 0.0.0.0/0 to:10.168.1.2

내 상황은 다음과 같습니다.

라우터 자체는 물리적 네트워크를 통해 인터넷에 액세스 할 수 있으며 VPS의 가상 IP 인 10.168.1.1을 포함한 모든 호스트에 액세스 할 수 있습니다.

라우터에 연결된 모든 장치는 정상적으로 라우터 및 VPS의 가상 IP에 액세스 할 수 있습니다. vlan1을 사용하도록 설정된 라우터의 iptable에 포함 된 장치는 일반적으로 인터넷에 액세스 할 수 있습니다 (예 : 목록의 192.168.1.100). 기본 MASQUERADE 레코드가 수동으로 삭제되었으므로 포함되지 않은 다른 사람은 없습니다.

이제 라우터의 iptables에 레코드를 추가하여 SNAT (위의 목록) 또는 MASQUERADE (또한 시도)에 의해 192.168.1.123에서 10.168.1.2로 IP 전달을 수행했지만 결과는 192.168.1.123이 가능합니다. LAN의 호스트 또는 VPS의 가상 IP에만 액세스하십시오.

한마디로, 나는 이제 최종 목표에 반쯤 (또는 더 적은) 붙어 있습니다. 도와주세요, 고마워요

답변:


0

문제는 실제로 사전 라우팅 또는 사후 라우팅과 관련이 없습니다.

마지막으로 새로운 라우팅 테이블을 추가하여 문제를 해결했습니다.

route add default gw 192.168.178.193 # to add a default route of the local physical network, notice that it should be above the one of the VPN
ip route del default via 10.168.1.1 dev tun11 table main # delete the VPN route from the main route table
ip route add table 200 via 10.168.1.1 dev tun11 # create a new table numbered 200 to use the VPN
ip rule add from 192.168.1.200/32 table 200 # add devices which are expected to be connected to the VPN
ip rule add from 192.168.1.222/32 table 200

그런 다음 포트 전달을 위해 https://unix.stackexchange.com/questions/55791/port-forward-to-vpn-client를 참조했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.