Làm cách nào để đẩy máy chủ DNS của riêng tôi lên OpenVPN?


27

Tôi đã xác định một máy chủ DNS không liên kết trên VPS của mình và nó dường như hoạt động. Tôi cần sử dụng máy chủ DNS thay vì máy chủ DNS công cộng vì một số ISP đã chặn IP DNS công cộng. Tệp openvpn.conf của tôi là:

    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

Như được đề xuất ở đây , tôi đã cố gắng sử dụng IP của máy chủ của mình (giả sử 11,22.33.44). Vì vậy, thay vì

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

Tôi chỉ cần đặt

push "dhcp-option DNS 11.22.33.44"

Trong openvpn.conf ở trên. Tuy nhiên, sau khi khởi động lại openvpn, tôi thấy rằng máy khách của tôi vẫn có thể kết nối với máy chủ OpenVPN nhưng không có trang nào có thể được hiển thị nữa.

Điều gì có thể sai ở đây? Làm thế nào tôi có thể giải quyết vấn đề này?

Câu trả lời:


31

Trên Windows 10máy khách, bạn cần thêm các chỉ thị sau vào client.ovpn:

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

Không có thêm chỉ thị được yêu cầu cho các cửa sổ.

Trên Ubuntu 16.04máy khách, bạn có thể cần thêm các chỉ thị sau vào client.ovpn:

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

Các phiên bản máy khách OpenVPN mới nhất cho Windows không nhận ra tùy chọn DOMAIN-SEARCHchính xác và hoạt động với DOMAIN.


Điều này có yêu cầu một phiên bản OpenVPN tối thiểu cụ thể không?
0xC0000022L

Tôi nghĩ bạn nên sử dụng IP cổng VPN (10.0.8.1), chứ không phải địa chỉ IP cổng cục bộ của bộ định tuyến (192.168.1.1). Đó là một địa chỉ IP bộ định tuyến phổ biến như vậy có khả năng bộ định tuyến mạng không tin cậy mà chúng được kết nối trực tiếp sẽ ở địa chỉ 192.168.1.1.
carlin.scott

8

Bạn nói rằng "nó dường như hoạt động." Làm thế nào bạn xác minh điều này? Bạn đang dựa trên thực tế là máy chủ đã khởi động mà không có bất kỳ lỗi nào hoặc bạn đã thực sự thực hiện một số truy vấn đối với nó?

Điều đầu tiên tôi sẽ làm là sử dụng nslookup hoặc đào để kết nối với máy chủ không liên kết và thực hiện một số truy vấn. Tôi biết đào là thời trang nhiều hơn những ngày này nhưng tôi biết nslookup tốt hơn.


$ 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

Nếu điều này không hoạt động thì bạn phải nhìn lại cấu hình DNS.

Đây là máy chủ DNS chính hay máy chủ DNS lưu trữ? Bạn đang cố gắng truy vấn tài nguyên địa phương hoặc tài nguyên internet? Nó có hoạt động như mong đợi không nếu bạn không đẩy máy chủ DNS của mình đến máy khách?

Nếu bạn chuyển tất cả lưu lượng truy cập của mình qua máy chủ OpenVPN, bạn không cần phải lo lắng về việc ISP sẽ chặn các máy chủ DNS công cộng nữa vì liên quan đến ISP của bạn, bạn chỉ tạo lưu lượng truy cập vào VPS của mình; trừ khi VPS đứng sau cùng một ISP.


Vâng ubound có thể vượt qua tất cả các bài kiểm tra mà bạn đã đề cập và một số bài kiểm tra khác vì vậy tôi khá chắc chắn rằng đó không phải là vấn đề. Về lý do tại sao tôi cần sử dụng máy chủ DNS của riêng mình, tôi đã trải nghiệm rằng khi tôi sử dụng DNS công cộng như trên, các khách hàng ở Iran (nơi hàng triệu trang web bị chặn) không thể có bất kỳ trang nào thông qua kết nối openvpn của họ, mặc dù thực tế là họ có thể kết nối với máy chủ openvpn. Do đó nỗ lực. Cảm ơn
hbp

1
Bạn đã xác nhận rằng họ có thể nhận được một trang web thông qua địa chỉ IP sau khi chúng được kết nối chưa? Điều này sẽ chỉ đảm bảo rằng nó thực sự là vấn đề DNS và không phải là vấn đề định tuyến. Nó rất phổ biến khi thiết lập OpenVPN để có thể kết nối với máy chủ nhưng không nhận được bất kỳ lưu lượng truy cập nào do tuyến đường bị trả lại bị thiếu.
Digitaladdictions

3

Hóa ra nếu bạn đang cố gắng kết nối từ máy khách không chạy Windows, bạn cần thực hiện thêm một số bước:

Trên Linux

Đặt dòng này trên cấu hình máy khách của bạn ( client.confhoặc xxxx.ovpntệp)

dhcp-option DNS 11.22.33.44

Gọi ứng dụng khách OpenVPN theo cách này:

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

Điều đó làm việc cho tôi.


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

1

Đã thử nghiệm trên Ubuntu 18.04 vào ngày 13 tháng 9 năm 2018

Có một lệnh hữu ích khác để thiết lập những gì bạn cần thông qua dòng lệnh. Nhưng trong trường hợp của tôi, bạn có thể kiểm soát kết nối VPN của mình bằng cả dòng lệnh và GUI.

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

ifname -- là yêu cầu theo mặc định, nhưng không ảnh hưởng đến bất cứ điều gì

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 không nên sử dụng cổng từ xa làm tuyến mặc định

Và nhiều cảm giác quan tâm cuối cùng:

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'

Sau đó, bạn có thể điều khiển vpn bằng GUI hoặc sử dụng các lệnh sau:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.