VPN 게이트웨이 워크스테이션에 연결할 수 없음

VPN 게이트웨이 워크스테이션에 연결할 수 없음

내 Linux 워크스테이션을 내 로컬 네트워크의 VPN 게이트웨이로 사용하고 싶습니다. 동일한 워크스테이션이 웹 서버로 사용되고 있습니다. 워크스테이션을 VPN에 연결하면 더 이상 외부 네트워크에서 이 웹 서버에 연결할 수 없습니다.

내 설정은 다음과 같습니다.

ISP 라우터 - ip 192.168.0.1 (기본 게이트웨이, 비표준 공용 포트를 사용하도록 포트 매핑 활성화)

Linux 워크스테이션 - 고정 IP 192.168.0.20(내 라우터인 DHCP 서버는 게이트웨이 주소, openvpn, apache, DNS 서버 변경을 허용하지 않음)

"ip 경로 표시" 출력

0.0.0.0/1 via 10.8.3.1 dev tun0 
default via 192.168.0.1 dev eth0 src 192.168.0.20 metric 202 
10.8.3.0/24 dev tun0 proto kernel scope link src 10.8.3.12 
37.120.143.221 via 192.168.0.1 dev eth0 (VPN external IP)
128.0.0.0/1 via 10.8.3.1 dev tun0 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.20 metric 202 

다음과 같이 구성:

net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

제가 주목한 한 가지는 워크스테이션에서 VPN이 활성화되면 내 ISP 라우터가 연결된 클라이언트 목록에 내 Linux 워크스테이션에 대한 올바른 로컬 IP 주소를 나열하지 않는다는 것입니다. 때로는 정확하지만 때로는 임의의 IP처럼 보일 수도 있습니다.

192.168.0.1 dev eth0(여기서 EXTERNAL_IP는 WAN ip)을 통해 EXTERNAL_IP 경로를 추가하면 로컬 네트워크의 웹 서버에 연결할 수 있지만 여전히 다른 네트워크에서는 연결할 수 없습니다.

답변1

설정에는 아무런 문제가 없습니다. 실수는 라우팅에 있습니다.

서버가 작동하는 경우둘 다웹서버로서그리고원격 서버의 VPN 클라이언트로서 웹 서버에 액세스하려는 모든 사용자는 원격 VPN 서버로부터 응답을 받게 됩니다(~ 아니다웹 서버에서 직접) 로컬 서버의 라우팅 테이블이 라우팅하도록 지시하기 때문입니다.모든 것원격 OpenVPN 서버를 통해. 사이트 A에 쿼리를 보냈지만 B로부터 응답을 받은 시스템은 명백한 보안상의 이유로 자동으로 응답을 삭제합니다. 따라서 웹서버에 접근할 수 없게 됩니다.

문제를 해결하는 방법은 매우 많습니다. 제가 가장 좋아하는 방법은 웹 서버를 그대로 두고 OpenVPN 클라이언트를 동일한 서버에서 호스팅되는 Linux 컨테이너로 옮긴 다음 라우터 구성을 DHCP/dnsmasq(무엇이든) 서버로 변경하여 모든 LAN 통신을 Linux 컨테이너를 통해 라우팅하는 것입니다. . 생각보다 훨씬 쉽습니다.

또 다른 가능성은 설정하는 것입니다라우팅 테이블은 OpenVPN 클라이언트용으로 남겨두고 두 번째 테이블은 다음과 같이 설정합니다.동일한VPN이 연결되어 있을 때 가지고 있는 라우팅 테이블에~ 아니다그런 다음 서버 자체에서 발생하는 모든 트래픽을 이 두 번째 라우팅 테이블을 통해 라우팅하도록 커널에 지시합니다. 나머지 트래픽(LAN에서 시작되고 OpenVPN을 통해 라우팅하려는 트래픽)은 기본적으로 기본 라우팅 테이블을 사용합니다.

이것도 아주 쉽게 할 수 있습니다.여기Linux에 대한 훌륭하고 간단한 소개정책(또는원천) 라우팅.

또는 OpenVPN 서버를 호스팅하는 동일한 시스템에서 웹 서버를 호스팅하기로 결정하면 문제도 해결될 수 있습니다. 이 경우 가장 간단한 방법은 다음과 같습니다.거울원격 서버의 로컬 웹 사이트를 통해 로컬에서 모든 변경 작업을 수행할 수 있습니다.

선택은 정말로 당신의 것입니다.

관련 정보