====== Faire fonctionner les DNS d'OpenVPN sous Ubuntu 20.04 ====== Ubuntu 20.04 a une configuration réseau assez particulièrement notament par l'usage de technologies très récente. Par défaut, c'est **Network Manager** qui gère la partie réseau ainsi que la partie VPN, et **systemd-resolved** qui gère la partie DNS. Le problème étant les interactions entre ces deux composants. Il y a deux cas de fonctionnement, en CLI et en GUI. Les deux sont totalement indépendants. ==== En CLI ==== Pour faire fonctionner en CLI, il faut installer le packet suivant, qui est enfaite un script qui va interpreter les configurations DNS d'OpenVPN pour configurer **systemd-resolved**. # apt install openvpn-systemd-resolved Puis dans votre configuration OpenVPN, au minimum la configuration suivante : script-security 2 up /etc/openvpn/update-systemd-resolved down /etc/openvpn/update-systemd-resolved Et pour finir il reste une option, qui peut-être ajouter manuellement dans le fichier de configuration ou bien **push** par le serveur OpenVPN : dhcp-option DOMAIN-ROUTE . Vous pouvez demander a **systemd-resolved** de n'envoyer que les requete ayant une racine spécifique en remplaçant le point par votre domaine. ==== En GUI === On est ici plus sur une bidouille que sur une solution propre, mais c'est la seule que j'ai trouvée faisant l'affaire. Pour expliquer, Network-Manager ne configurera votre DNS seulement si votre VPN est utilisé comme passerelle par défaut, ce qui n'est pas forcément judiciable dans tous les cas. Donc l'idée va être de supprimer automatiquement la passerelle au lancement du VPN en créant le fichier suivant : #!/bin/bash if [[ "$1" =~ ^tun[0-9] && "$2" == "up" ]]; then logger -t "dispatcher-network-manager" "Deleting default gateway" ip route delete default dev $1 ip -6 route delete default dev $1 fi Et pour finir de le rendre exécutable : # chmod +x /etc/NetworkManager/dispatcher.d/10-vpndns