Comment configurer DNS over HTTPS sur Linux
Ce guide vous aidera à configurer DNS over HTTPS (DoH) sur votre système Linux, couvrant plusieurs méthodes de configuration et les meilleures pratiques.
Prérequis
- Système d’exploitation Linux
- Privilèges d’administrateur (root)
- Connaissances de base de la ligne de commande
- Connexion réseau stable
Utilisation de systemd-resolved
Étape 1 : Vérifier la version de systemd-resolved
systemctl --version
systemd-resolve --version
Assurez-vous que la version est 247 ou supérieure, car ces versions prennent en charge DoH.
Étape 2 : Configurer resolved.conf
Modifiez /etc/systemd/resolved.conf
:
[Resolve]
DNS=1.1.1.1 1.0.0.1
DNSOverTLS=yes
DNSSEC=yes
Cache=yes
DNSStubListener=yes
Pour DoH, ajoutez la configuration suivante :
[Resolve]
DNS=https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
DNSOverTLS=no
DNSSEC=yes
Cache=yes
DNSStubListener=yes
Étape 3 : Redémarrer le service
sudo systemctl restart systemd-resolved
sudo systemctl status systemd-resolved
Utilisation de NetworkManager
Étape 1 : Vérifier la version de NetworkManager
nmcli --version
Assurez-vous que la version prend en charge la fonctionnalité DoH.
Étape 2 : Configurer la connexion
Configurez DoH en utilisant nmcli :
# Lister les connexions actuelles
nmcli connection show
# Modifier la connexion spécifiée
sudo nmcli connection modify "Nom de la connexion" ipv4.dns "1.1.1.1,1.0.0.1" ipv4.dns-over-tls yes
sudo nmcli connection modify "Nom de la connexion" ipv6.dns "2606:4700:4700::1111,2606:4700:4700::1001" ipv6.dns-over-tls yes
Étape 3 : Appliquer les modifications
sudo nmcli connection up "Nom de la connexion"
Utilisation de clients autonomes
dnscrypt-proxy
- Installation
# Debian/Ubuntu
sudo apt install dnscrypt-proxy
# Fedora
sudo dnf install dnscrypt-proxy
# Arch Linux
sudo pacman -S dnscrypt-proxy
- Configuration
Modifiez /etc/dnscrypt-proxy/dnscrypt-proxy.toml
:
server_names = ['cloudflare', 'google']
listen_addresses = ['127.0.0.1:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = true
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
- Démarrer le service
sudo systemctl enable dnscrypt-proxy
sudo systemctl start dnscrypt-proxy
sudo systemctl status dnscrypt-proxy
Stubby
- Installation
# Debian/Ubuntu
sudo apt install stubby
# Fedora
sudo dnf install stubby
# Arch Linux
sudo pacman -S stubby
- Configuration
Modifiez /etc/stubby/stubby.yml
:
resolution_type: GETDNS_RESOLUTION_STUB
dns_transport_list:
- GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_query_padding_blocksize: 128
edns_client_subnet_private: 1
round_robin_upstreams: 1
idle_timeout: 10000
listen_addresses:
- 127.0.0.1@53
- 0::1@53
upstream_recursive_servers:
- address_data: 1.1.1.1
tls_auth_name: "cloudflare-dns.com"
- address_data: 1.0.0.1
tls_auth_name: "cloudflare-dns.com"
- Démarrer le service
sudo systemctl enable stubby
sudo systemctl start stubby
sudo systemctl status stubby
Vérification de la configuration
Méthode 1 : Utilisation de dig
# Tester la résolution DNS
dig @127.0.0.1 example.com
# Vérifier DNSSEC
dig @127.0.0.1 example.com +dnssec
# Vérifier le serveur DoH
dig @127.0.0.1 whoami.cloudflare CH TXT
Méthode 2 : Utilisation de resolvectl
# Afficher les paramètres DNS actuels
resolvectl status
# Tester la résolution DNS
resolvectl query example.com
# Vérifier DNSSEC
resolvectl query --dnssec example.com
Méthode 3 : Test en ligne
- Visitez un site de test de fuite DNS
- Exécutez un test complet
- Vérifiez le routage des requêtes DNS
Dépannage
Problèmes courants
-
Échec de résolution
- Vérifiez la connexion réseau
- Vérifiez les fichiers de configuration
- Vérifiez le statut du service
- Consultez les journaux système
-
Problèmes de performance
- Choisissez le serveur le plus proche
- Optimisez les paramètres de cache
- Surveillez le temps de réponse
- Vérifiez les ressources système
-
Problèmes de compatibilité
- Mettez à jour les paquets
- Vérifiez les dépendances
- Vérifiez les exigences système
- Testez des configurations alternatives
Analyse des journaux
- Journaux système
# Afficher les journaux de systemd-resolved
journalctl -u systemd-resolved
# Vérifier les journaux de NetworkManager
journalctl -u NetworkManager
# Afficher les journaux de dnscrypt-proxy
journalctl -u dnscrypt-proxy
- Diagnostics réseau
# Tester la connectivité réseau
ping 1.1.1.1
# Vérifier la résolution DNS
nslookup example.com
# Vérifier DNSSEC
dig example.com +dnssec
Bonnes pratiques
-
Sélection du fournisseur
- Évaluez les politiques de confidentialité
- Vérifiez la disponibilité du service
- Considérez l’emplacement géographique
- Testez la vitesse de connexion
-
Recommandations de sécurité
- Utilisez des fournisseurs de confiance
- Activez DNSSEC
- Mises à jour régulières du système
- Surveillez l’activité réseau
-
Optimisation des performances
- Choisissez les serveurs les plus proches
- Optimisez les paramètres de cache
- Surveillez les métriques de performance
- Maintenance régulière
Déploiement en entreprise
Configuration à l’échelle du système
-
Créer des fichiers de configuration
- Configurez systemd-resolved
- Configurez NetworkManager
- Déployez les logiciels clients
-
Stratégie de déploiement
- Utilisez la gestion de configuration
- Implémentez la surveillance
- Planifiez les fenêtres de maintenance
-
Gestion de la maintenance
- Mises à jour régulières
- Surveillance des performances
- Suivi des problèmes
- Procédures de sauvegarde
Prochaines étapes
- Liste des serveurs - Parcourez les fournisseurs DoH disponibles
- Guide de sécurité - En savoir plus sur la configuration de sécurité
- Optimisation des performances - Améliorez les performances DNS
- FAQ - Obtenez plus d’aide