web-dev-qa-db-fra.com

Comment pousser mon propre serveur DNS vers OpenVPN?

J'ai défini un serveur DNS non lié sur mon VPS et il semble fonctionner. Je dois utiliser le serveur DNS au lieu des serveurs DNS publics car certains FAI ont bloqué les adresses IP publiques DNS. Mon fichier openvpn.conf est:

    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

Comme il est suggéré ici , j'ai essayé d'utiliser les adresses IP de mon serveur (disons 11.22.33.44). Donc au lieu de

    Push "dhcp-option DNS 208.67.222.222"
    Push "dhcp-option DNS 208.67.222.220"

Je viens de mettre

Push "dhcp-option DNS 11.22.33.44"

Dans openvpn.conf ci-dessus. Cependant, après avoir redémarré openvpn, je constate que mon client peut toujours se connecter au serveur OpenVPN mais aucune page ne peut plus être affichée.

Que peut-il y avoir de mal ici? Comment puis-je résoudre ce problème?

28
hbp

Sur Windows 10 clients, vous devez ajouter les directives suivantes à client.ovpn:

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

Aucune autre directive n'est requise pour les fenêtres.

Sur Ubuntu 16.04 clients, vous devrez peut-être ajouter les directives suivantes à client.ovpn:

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

Les dernières versions du client OpenVPN pour Windows ne reconnaissent pas l'option DOMAIN-SEARCH correctement, et travaillez avec DOMAIN.

31
vskubriev

Vous dites que "cela semble fonctionner". Comment avez-vous vérifié cela? Le basez-vous sur le fait que le serveur a démarré sans erreur ou avez-vous réellement effectué des requêtes sur lui?

La première chose que je ferais est d'utiliser nslookup ou Dig pour se connecter au serveur indépendant et effectuer certaines requêtes. Je sais que Dig est plus à la mode ces jours-ci, mais je connais mieux 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

Si cela ne fonctionne pas, vous devez à nouveau revoir la configuration DNS.

S'agit-il d'un serveur DNS principal ou d'un serveur DNS de mise en cache? Essayez-vous d'interroger des ressources locales ou des ressources Internet? Cela fonctionne-t-il comme prévu si vous ne poussez pas votre serveur DNS vers le client?

Si vous passez tout votre trafic via votre serveur OpenVPN, vous ne devriez plus avoir à vous soucier du fait que votre FAI bloque les serveurs DNS publics, car en ce qui concerne votre FAI, vous ne générez que du trafic vers votre VPS; sauf si le VPS est derrière le même FAI.

9

Il s'avère que si vous essayez de vous connecter à partir d'un client non Windows, vous devez effectuer quelques étapes supplémentaires:

Sous Linux

Mettez cette ligne sur la configuration de votre client (client.conf ou xxxx.ovpnfichier)

dhcp-option DNS 11.22.33.44

Appelez le client OpenVPN de cette manière:

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

Cela a fonctionné pour moi.

4
JonDoe297

Testé sur Ubuntu 18.04 au 13 sept. 2018

Il existe une autre commande utile pour configurer ce dont vous avez besoin via la ligne de commande. Mais dans mon cas, vous pouvez contrôler votre connexion VPN à la fois avec la ligne de commande et l'interface graphique.

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

ifname -- est requis par défaut, mais n'affecte rien

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 ne doit pas utiliser la passerelle distante comme route par défaut

Et touche finale beaucoup plus intéressée:

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'

Ensuite, vous pouvez contrôler vpn avec l'interface graphique ou utiliser les commandes suivantes:

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

1
vskubriev