내 DNS 서버를 OpenVPN으로 푸시하는 방법은 무엇입니까?


27

VPS에 언 바운드 DNS 서버를 정의 했는데 작동하는 것 같습니다. 일부 ISP가 퍼블릭 DNS IP를 차단했기 때문에 퍼블릭 DNS 서버 대신 DNS 서버를 사용해야합니다. 내 openvpn.conf 파일은 다음과 같습니다

    dev tun
    proto tcp

    # Notice: here I set the listening port to be 80 to avoid possible port blockage
    port 80

    ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
    cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
    key /etc/openvpn/easy-rsa/2.0/keys/server.key
    dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem

    user nobody
    group nogroup
    server 10.8.0.0 255.255.255.0

    persist-key
    persist-tun

    #status openvpn-status.log
    #verb 3
    client-to-client

    push "redirect-gateway def1"

    #pushing public DNS IPs

    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.222.220"

    comp-lzo

여기 에 제안 된대로 서버의 IP를 사용하려고했습니다 (예 : 11.22.33.44). 그래서 대신

    push "dhcp-option DNS 208.67.222.222"
    push "dhcp-option DNS 208.67.222.220"

방금 뒀어

push "dhcp-option DNS 11.22.33.44"

위의 openvpn.conf에서. 그러나 openvpn을 다시 시작한 후에도 클라이언트는 여전히 OpenVPN 서버에 연결할 수 있지만 더 이상 페이지를 렌더링 할 수 없습니다.

여기서 무엇이 잘못 될 수 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

답변:


31

에 Windows 10클라이언트, 다음과 같은 지시를합니다 추가 할 필요가 client.ovpn:

script-security 2                                                                                                       
dhcp-option DNS 10.0.8.1                                                                                           
dhcp-option DOMAIN example.lan                                                                                   

더 이상 지시문이 창에 필요하지 않습니다.

에 Ubuntu 16.04고객, 당신은 다음과 같은 지침을 필요에 추가 할 수 있습니다 client.ovpn:

up /etc/openvpn/update-resolv-conf                                                                                      
down /etc/openvpn/update-resolv-conf  

Windows 용 최신 OpenVPN 클라이언트 버전이 옵션을 DOMAIN-SEARCH올바르게 인식하지 못하고로 작업합니다 DOMAIN.


특정 최소 OpenVPN 버전이 필요합니까?
— 0xC0000022L

라우터의 로컬 게이트웨이 IP 주소 (192.168.1.1)가 아닌 VPN 게이트웨이 IP (10.0.8.1)를 사용해야한다고 생각합니다. 신뢰할 수없는 네트워크 라우터가 192.168.1.1 주소에있을 가능성이있는 일반적인 라우터 IP 주소입니다.
— carlin.scott

8

"작동하는 것 같습니다"라고 말합니다. 이것을 어떻게 확인 했습니까? 서버가 오류없이 시작되었다는 사실에 근거하고 있습니까? 아니면 실제로 일부 쿼리를 수행 했습니까?

가장 먼저 할 일은 nslookup 또는 dig를 사용하여 바인딩되지 않은 서버에 연결하고 일부 쿼리를 수행하는 것입니다. 나는 발굴이 요즘 유행한다는 것을 알고 있지만 nslookup을 더 잘 알고 있습니다.


$ nslookup
> server 11.22.33.44
Default server: 11.22.33.44
Address: 11.22.33.44#53
> set type=A
> www.google.com
Server:     11.22.33.44
Address:    11.22.33.44#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.225.52
Name:   www.l.google.com
Address: 74.125.225.48
Name:   www.l.google.com
Address: 74.125.225.49
Name:   www.l.google.com
Address: 74.125.225.50
Name:   www.l.google.com
Address: 74.125.225.51

이것이 작동하지 않으면 DNS 구성을 다시 살펴 봐야합니다.

이것이 기본 DNS 서버입니까 아니면 캐싱 DNS 서버입니까? 로컬 리소스 나 인터넷 리소스를 쿼리하려고합니까? DNS 서버를 클라이언트로 푸시하지 않으면 예상대로 작동합니까?

OpenVPN 서버를 통해 모든 트래픽을 전달하는 경우 ISP가 우려하는 한 ISP가 VPS에 대한 트래픽 만 생성하므로 ISP가 더 이상 퍼블릭 DNS 서버를 차단하지 않아도됩니다. VPS가 동일한 ISP 뒤에 있지 않는 한.


잘 ubound는 당신이 언급 한 모든 테스트를 통과 할 수 있으며 더 이상 문제가되지 않을 것이라고 확신합니다. 왜 내 DNS 서버를 사용해야하는지에 대해 위와 같이 퍼블릭 DNS를 사용할 때이란 (수백만 개의 사이트가 차단 된)의 클라이언트가 openvpn 연결을 통해 어떤 페이지도 가져올 수 없다는 사실을 경험했습니다. 그들은 openvpn 서버에 연결할 수 있습니다. 따라서 노력. 감사합니다
— hbp

1
연결되면 IP 주소를 통해 웹 페이지를 얻을 수 있음을 확인 했습니까? 이렇게하면 라우팅 문제가 아닌 DNS 문제인지 확인할 수 있습니다. OpenVPN을 설정할 때 서버에 연결할 수 있지만 반환 경로가 없어서 트래픽을 다시 얻지 못하는 것은 매우 일반적입니다.
— digitaladdictions

3

Windows 이외의 클라이언트에서 연결하려는 경우 몇 가지 추가 단계를 수행해야합니다.

리눅스에서

이 줄을 클라이언트 구성 ( client.conf또는 xxxx.ovpn파일) 에 넣으십시오.

dhcp-option DNS 11.22.33.44

이런 식으로 OpenVPN 클라이언트를 호출하십시오.

$ openvpn --script-security 2 --config xxxx.ovpn

그것은 나를 위해 일했다.


Unrecognized option or missing or extra parameter(s) in [CMD-LINE]:1: script-security
— Javier Buzzi

1

2018 년 9 월 13 일 우분투 18.04에서 테스트

명령 행을 통해 필요한 것을 설정하는 또 다른 유용한 명령이 있습니다. 그러나 제 경우에는 명령 줄과 GUI를 사용하여 VPN 연결을 제어 할 수 있습니다.

sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --

ifname -- 기본적으로 필요하지만 아무런 영향을 미치지 않습니다

sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes

never-default 원격 게이트웨이를 기본 경로로 사용해서는 안됩니다

그리고 훨씬 더 흥미로운 최종 손길 :

nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'

나중에 GUI를 사용하여 VPN을 제어하거나 다음 명령을 사용할 수 있습니다.

sudo nmcli --ask connection up la.vpn.contoso.com sudo nmcli connection down la.vpn.contoso.com

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