openvpn 클라이언트가 서버를 통해 모든 트래픽을 전달하도록 하기

openvpn 클라이언트가 서버를 통해 모든 트래픽을 전달하도록 하기

모든 클라이언트 트래픽이 서버를 통해 라우팅되는 openvpn 서버 및 클라이언트를 설정하려고 합니다. 현재 클라이언트를 통해 서버에 액세스할 수 있지만 서버에서 'push "redirect-gateway def1"'을 활성화하면 클라이언트가 인터넷, VPN 또는 기타 연결 기능을 모두 잃게 됩니다. 또한 LAN 연결은 여전히 ​​양호하지만 더 이상 서버에 연결할 수 없습니다. 내 서버 구성 파일은 다음과 같습니다

local ***.***

port 1194

proto tcp

dev tun

ca ca.crt
cert server.crt
key server.key

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway local def1"

keepalive 10 120

comp-lzo

persist-key
persist-tun

status openvpn-status.log

verb 3

클라이언트는 다음과 같습니다.

client

dev tun

proto tcp

remote ***.*** 1194

resolv-retry infinite

nobind

persist-key
persist-tun

ca ca.crt
cert laptop.crt
key laptop.key

ns-cert-type server

comp-lzo

verb 3

서버에서 IP 전달을 활성화하고 iptables를 통한 라우팅을 활성화했습니다.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

하지만 클라이언트는 여전히 VPN이나 ​​인터넷의 어떤 것에도 연결할 수 없습니다.

답변1

참고로 HOWTO의 관련 섹션은 다음과 같습니다.여기, 하지만 나는 당신이 그것을 따랐다고 생각합니다.

내가 시도할 첫 번째 일은 '로컬'을 제거하는 것입니다. 즉, 명령은 다음과 같아야 합니다.

push "redirect-gateway def1"

그리고는 아니다

push "redirect-gateway local def1"

로컬 플래그는 모든 클라이언트가 동일한 서브넷에 있는 경우에만 작동합니다.

알아야 할 몇 가지 다른 사항은 DNS 트래픽이 VPN을 통해 라우팅되므로 이를 처리하지 않으면 주소를 확인할 수 없다는 것입니다. 브리지된 VPN이 아닌 라우팅된 VPN을 사용하고 있으므로 귀하의 경우에는 그런 일이 발생하지 않는 것처럼 보이지만 DHCP가 전달될 수도 있지만 어쨌든 확인해 볼 가치가 있습니다.

답변2

새 게이트웨이를 클라이언트에 "푸시"하는 경우 일부 경로, 특히 해당 게이트웨이가 있는 서브넷에 대한 경로도 푸시해야 합니다. 그러면 VPN을 통해 인터넷에 액세스할 수 있습니다. 게이트웨이가 있는 네트워크가 VPN 서버가 있는 네트워크와 다른 경우 클라이언트가 이러한 다른 네트워크에 액세스할 수 있도록 추가 경로도 필요합니다. 또한 DNS 서버를 클라이언트에 푸시할 수도 있습니다. 그렇지 않으면 클라이언트가 현재 연결된 네트워크의 대상 이름을 확인할 수 없기 때문입니다.

다음은 OpenVPN 서버 구성 파일에서 발췌한 내용입니다.

# 클라이언트에 경로를 푸시하여 로컬에 바인딩합니다.
# 가상 끝점.
#
"경로 10.180.0.1 255.255.255.255"를 누르세요.

# 클라이언트가 들어가야 하는 모든 경로를 푸시합니다.
# 로컬 네트워크에.
#
"경로 10.171.0.0 255.255.0.0"을 누르세요.
"경로 10.172.0.0 255.255.0.0"을 누르세요.
"경로 10.173.0.0 255.255.0.0"을 누르세요.
"경로 10.174.0.0 255.255.0.0"을 누르세요.
"경로 10.175.0.0 255.255.0.0"을 누르세요.
"경로 10.176.0.0 255.255.0.0"을 누르세요.
"경로 10.177.0.0 255.255.0.0"을 누르세요.
"경로 10.181.0.0 255.255.0.0"을 누르세요.
"경로 10.182.0.0 255.255.0.0"을 누르세요.
"경로 192.168.61.0 255.255.255.0"을 누르세요.

# Windows 클라이언트에 DHCP 옵션을 푸시합니다.
#
"dhcp-option DOMAIN our-internal-domain.com"을 푸시하세요.
"dhcp-옵션 DNS 10.abc"를 푸시하세요.
"dhcp-option WINS 10.bcd" 푸시

이것들은 모두 내부 네트워크이며 우리는 새로운 게이트웨이를 푸시하지도 않습니다(대부분의 사용자가 멀리서 연결하기 때문에 기본 게이트웨이를 통해 인터넷에 액세스하는 것이 더 낫고 우리는 제어 괴물이 아닙니다).

답변3

사실 문제는 NAT가 제대로 설정되지 않았다는 점이었습니다. 수정되었으며 현재 VPN이 작동 중입니다.

관련 정보