自分の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)を使用する必要があると思います。これは一般的なルーターのIPアドレスであり、直接接続されている信頼できないネットワークルーターは192.168.1.1アドレスにある可能性が高いです。
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が懸念している限り、VPSへのトラフィックのみを生成しているため、ISPがパブリックDNSサーバーをブロックすることを心配する必要はありません。VPSが同じISPの背後にない限り。


uboundは、あなたが言及したすべてのテストとその他のテストに合格する可能性があるので、問題ではないと確信しています。なぜ自分のDNSサーバーを使用する必要があるのか​​について、上記のようにパブリックDNSを使用すると、イランのクライアント(何百万ものサイトがブロックされている)が、openvpn接続を介してページを取得できないことがあります。彼らはopenvpnサーバーに接続できます。したがって、努力。ありがとう
hbp

1
接続したら、IPアドレスでWebページを取得できることを確認しましたか?これにより、ルーティングの問題ではなく、実際にDNSの問題であることを確認できます。サーバーに接続できるようにOpenVPNを設定するときに非常に一般的ですが、リターンルートがないためにトラフィックを取り戻すことはできません。
digitaladdictions

3

Windows以外のクライアントから接続しようとしている場合、いくつかの追加手順を実行する必要があることがわかります。

Linuxの場合

この行をクライアント構成(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
ハビエル・ブッツィ

1

2018年9月13日、Ubuntu 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.