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?
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
.
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.
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.ovpn
fichier)
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.
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