Comment configurer DNS over HTTPS sur macOS

Ce guide vous aidera à configurer DNS over HTTPS (DoH) sur votre système macOS, en fournissant des instructions complètes de la configuration de base à la configuration avancée.

Prérequis

  • macOS 10.15 (Catalina) ou version ultérieure
  • Privilèges d’administrateur
  • Connexion réseau stable
  • Connaissances de base de la ligne de commande

Configuration au niveau du système

Étape 1 : Utilisation des paramètres système

  1. Cliquez sur le menu Apple
  2. Sélectionnez “Paramètres système” (ou “Préférences système”)
  3. Cliquez sur “Réseau”
  4. Sélectionnez la connexion réseau actuelle
  5. Cliquez sur “Détails…”
  6. Sélectionnez l’onglet “DNS”

Étape 2 : Configurer les serveurs DNS

  1. Cliquez sur le bouton ”+” pour ajouter des serveurs DNS
  2. Entrez les adresses de serveur suivantes :
    1.1.1.1
    1.0.0.1
    2606:4700:4700::1111
    2606:4700:4700::1001

Étape 3 : Configuration via Terminal

Ouvrez Terminal et exécutez les commandes suivantes :

# Afficher les paramètres DNS actuels
scutil --dns

# Configurer les serveurs DNS
networksetup -setdnsservers Wi-Fi 1.1.1.1 1.0.0.1

# Vérifier les paramètres
networksetup -getdnsservers Wi-Fi

Utilisation de clients tiers

DNSCrypt-Proxy

  1. Installation
# Installation avec Homebrew
brew install dnscrypt-proxy

# Ou installation manuelle
curl -L https://github.com/DNSCrypt/dnscrypt-proxy/releases/latest/download/dnscrypt-proxy-macos-amd64.tar.gz | tar xz
  1. Configuration

Modifiez le fichier dnscrypt-proxy.toml :

listen_addresses = ['127.0.0.1:53']
server_names = ['cloudflare', 'google']
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
  1. Démarrer le service
# Installer le service
sudo brew services start dnscrypt-proxy

# Ou démarrage manuel
sudo dnscrypt-proxy -service install
sudo dnscrypt-proxy -service start

Profils DNS chiffrés

  1. Créer un profil de configuration

Créez un fichier .mobileconfig :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>DNSSettings</key>
            <dict>
                <key>DNSProtocol</key>
                <string>HTTPS</string>
                <key>ServerURL</key>
                <string>https://cloudflare-dns.com/dns-query</string>
            </dict>
            <key>PayloadDescription</key>
            <string>Configurer DNS over HTTPS</string>
            <key>PayloadDisplayName</key>
            <string>Paramètres DNS</string>
            <key>PayloadIdentifier</key>
            <string>com.example.dns</string>
            <key>PayloadType</key>
            <string>com.apple.dnsSettings.managed</string>
            <key>PayloadUUID</key>
            <string>A1B2C3D4-E5F6-G7H8-I9J0-K1L2M3N4O5P6</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Configuration DNS over HTTPS</string>
    <key>PayloadDisplayName</key>
    <string>Configuration DoH</string>
    <key>PayloadIdentifier</key>
    <string>com.example.doh</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>Q1R2S3T4-U5V6-W7X8-Y9Z0-A1B2C3D4E5F6</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>
  1. Installer le profil
    • Double-cliquez sur le fichier de configuration
    • Suivez les invites du système pour l’installation
    • Vérifiez dans les paramètres système

Vérification de la configuration

Méthode 1 : Utilisation de Terminal

# Tester la résolution DNS
dig example.com @127.0.0.1

# Vérifier DNSSEC
dig example.com @127.0.0.1 +dnssec

# Vérifier le serveur DoH
dig whoami.cloudflare CH TXT @127.0.0.1

Méthode 2 : Utilisation des outils système

  1. Ouvrez “Utilitaire réseau”
  2. Sélectionnez “Recherche”
  3. Entrez le nom de domaine à tester
  4. Vérifiez les résultats de résolution

Méthode 3 : Test en ligne

  1. Visitez un site de test de fuite DNS
  2. Exécutez un test standard
  3. Vérifiez le routage des requêtes DNS

Dépannage

Problèmes courants

  1. Échec de résolution DNS

    • Vérifiez la connexion réseau
    • Vérifiez les paramètres DNS
    • Redémarrez le service réseau
    • Effacez le cache DNS
  2. 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
  3. Problèmes de profil de configuration

    • Vérifiez le format du fichier
    • Vérifiez les paramètres de permission
    • Réinstallez la configuration
    • Mettez à jour la version du système

Diagnostics système

  1. Diagnostics réseau
# Tester la connectivité réseau
ping 1.1.1.1

# Vérifier le routage
traceroute 1.1.1.1

# Afficher l'état du réseau
networksetup -listallnetworkservices
  1. Diagnostics DNS
# Effacer le cache DNS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# Afficher la configuration DNS
scutil --dns

# Tester la résolution DNS
dig +trace example.com

Bonnes pratiques

  1. 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
  2. Recommandations de sécurité

    • Activez DNSSEC
    • Utilisez des fournisseurs de confiance
    • Mises à jour régulières du système
    • Surveillez l’activité réseau
  3. 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 MDM

  1. Créer des fichiers de configuration

    • Configurez les paramètres DNS
    • Configurez les options de sécurité
    • Définissez la portée du déploiement
    • Préparez les certificats de signature
  2. Stratégie de déploiement

    • Poussez les profils de configuration
    • Surveillez le statut du déploiement
    • Gérez les rapports d’erreur
    • Mettez à jour les configurations

Configuration automatisée

  1. Utilisation de scripts
#!/bin/bash
# Configurer DoH
configure_doh() {
    # Installer les outils requis
    brew install dnscrypt-proxy

    # Sauvegarder la configuration
    cp /usr/local/etc/dnscrypt-proxy.toml /usr/local/etc/dnscrypt-proxy.toml.bak

    # Démarrer le service
    brew services start dnscrypt-proxy
}
  1. Utilisation d’outils de gestion de configuration
# Exemple Ansible
- name: Configurer DNS over HTTPS
  hosts: macos_clients
  tasks:
    - name: Installer dnscrypt-proxy
      homebrew:
        name: dnscrypt-proxy
        state: present

    - name: Configurer dnscrypt-proxy
      template:
        src: dnscrypt-proxy.toml.j2
        dest: /usr/local/etc/dnscrypt-proxy.toml

Ressources supplémentaires

Notes importantes

  1. Compatibilité système

    • Vérifiez la version du système
    • Vérifiez les exigences matérielles
    • Testez la compatibilité logicielle
    • Évaluez l’impact sur les performances
  2. Impact réseau

    • Surveillez la latence réseau
    • Évaluez l’utilisation de la bande passante
    • Considérez les options de basculement
    • Optimisez les paramètres de routage
  3. Considérations de sécurité

    • Protégez les fichiers de configuration
    • Restreignez les permissions d’accès
    • Surveillez les journaux système
    • Audits de sécurité réguliers
  4. Recommandations de maintenance

    • Mises à jour logicielles régulières
    • Sauvegarde des configurations
    • Surveillance de l’état du système
    • Plans d’urgence

Prochaines étapes