Bagaimana cara mendorong server DNS saya sendiri ke OpenVPN?

27

Saya telah menetapkan server DNS tidak terikat pada VPS saya dan tampaknya berfungsi. Saya perlu menggunakan server DNS bukan server DNS publik karena beberapa ISP telah memblokir IP DNS publik. File openvpn.conf saya adalah:

    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

Seperti yang disarankan di sini , saya mencoba menggunakan IP server saya (katakanlah 11.22.33.44). Jadi, bukannya

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

Saya hanya menempatkan

push "dhcp-option DNS 11.22.33.44"

Di openvpn.conf di atas. Namun, setelah memulai ulang openvpn, saya melihat bahwa klien saya masih dapat terhubung ke server OpenVPN tetapi tidak ada halaman yang dapat dirender lagi.

Apa yang salah di sini? Bagaimana saya bisa menyelesaikan masalah ini?

hbp
sumber

Jawaban:

31

Pada Windows 10klien, Anda perlu menambahkan arahan berikut ke client.ovpn:

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

Tidak ada arahan yang diperlukan untuk windows.

Pada Ubuntu 16.04klien, Anda mungkin perlu menambahkan arahan berikut ke client.ovpn:

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

Versi klien OpenVPN terbaru untuk Windows tidak mengenali opsi DOMAIN-SEARCHdengan benar, dan bekerja dengannya DOMAIN.

vskubriev
sumber
Apakah ini memerlukan versi minimum OpenVPN tertentu?
0xC0000022L
Saya pikir Anda harus menggunakan IP gateway VPN (10.0.8.1), bukan alamat ip gateway lokal router (192.168.1.1). Itu adalah alamat ip router yang umum sehingga router jaringan yang tidak dipercaya yang terhubung langsung dengan mereka ada di alamat 192.168.1.1.
carlin.scott
8

Anda mengatakan bahwa "tampaknya berhasil." Bagaimana Anda memverifikasi ini? Apakah Anda mendasarkan pada fakta bahwa server mulai tanpa kesalahan atau apakah Anda benar-benar melakukan beberapa permintaan terhadapnya?

Hal pertama yang akan saya lakukan adalah menggunakan nslookup atau menggali untuk terhubung ke server yang tidak terikat dan melakukan beberapa pertanyaan. Saya tahu menggali lebih banyak dalam mode hari ini tetapi saya tahu nslookup lebih baik.


$ 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

Jika ini tidak berhasil maka Anda harus melihat kembali pada konfigurasi DNS lagi.

Apakah ini server DNS primer atau server DNS caching? Apakah Anda mencoba untuk menanyakan sumber daya lokal atau sumber daya internet? Apakah itu berfungsi seperti yang diharapkan jika Anda tidak mendorong server DNS Anda ke klien?

Jika Anda melewatkan semua lalu lintas melalui server OpenVPN, Anda tidak perlu khawatir tentang ISP Anda yang memblokir server DNS publik karena sejauh menyangkut ISP Anda, Anda hanya menghasilkan lalu lintas ke VPS Anda; kecuali jika VPS berada di belakang ISP yang sama.

digitaladdictions
sumber
Yah ubound bisa lulus semua tes yang Anda sebutkan dan beberapa lagi jadi saya cukup yakin bahwa itu bukan masalah. Adapun mengapa saya perlu menggunakan server DNS saya sendiri, saya telah mengalami bahwa ketika saya menggunakan DNS publik seperti di atas, klien di Iran (di mana jutaan situs diblokir) tidak bisa mendapatkan halaman apa pun melalui koneksi openvpn mereka, terlepas dari kenyataan bahwa mereka dapat terhubung ke server openvpn. Karena itu upaya. Terima kasih
hbp
1
Sudahkah Anda mengonfirmasi bahwa mereka bisa mendapatkan halaman web melalui alamat IP begitu mereka terhubung? Ini hanya akan memastikan itu benar-benar masalah DNS dan bukan masalah routing. Sangat umum ketika mengatur OpenVPN untuk dapat terhubung ke server tetapi tidak mendapatkan lalu lintas kembali karena rute kembali yang hilang.
digitaladdictions
3

Ternyata jika Anda mencoba terhubung dari klien non-Windows, Anda perlu melakukan beberapa langkah tambahan:

Di Linux

Letakkan baris ini di konfigurasi klien Anda ( client.confatau xxxx.ovpnfile)

dhcp-option DNS 11.22.33.44

Panggil klien OpenVPN dengan cara ini:

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

Itu berhasil bagi saya.

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

Diuji pada Ubuntu 18.04 pada 13 Sep 2018

Ada perintah lain yang berguna untuk mengatur apa yang Anda butuhkan melalui baris perintah. Tetapi dalam kasus saya Anda dapat mengontrol koneksi VPN Anda baik dengan baris perintah dan GUI.

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

ifname -- adalah diperlukan secara default, tetapi tidak mempengaruhi apa pun

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 seharusnya tidak menggunakan remote gateway sebagai rute default

Dan sentuhan terakhir yang jauh lebih menarik:

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'

Setelah itu Anda dapat mengontrol vpn dengan GUI atau menggunakan perintah berikut:

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

vskubriev
sumber