Outils pour utilisateurs

Outils du site


dnsfilter

Filtrage des publicités et traqueurs sur Android: Installation de DNSFilter

Vous connaissez peut-être déjà la liste de blocage DNS que je propose. Elle permet de bloquer la quasi-totalité des publicités et traqueurs dans les applications et sur le web. Voici une procédure pas à pas pour l'installer sur votre téléphone Android. L'installation prend moins de 10 minutes.

Pourquoi faire ?

  • Moins de publicité dans les applications et dans les pages web.
  • Moins de traçage de l'utilisateur.
  • Affichage plus rapide des pages web.
  • Réduction de l'utilisation de votre forfait.
  • Meilleure sécurité en évitant les sites malveillants.
  • (optionnellement) Meilleure protection de votre vie privée avec le chiffrement DNS.

Pré-requis: Avoir un téléphone sous Android 4.0 ou supérieur et une connexion internet active. Il n'y a pas besoin d'avoir un téléphone rooté.

C'est totalement réversible: Si le fonctionnement ne vous convient pas, il vous suffit de dé-installer l'application DNSFilter: Cela va immédiatement supprimer le filtrage.

Installation

  • Sur la page chez F-Droid, téléchargez l'APK de la dernière version, par exemple:
  • Installez cet APK.
    • Il est possible que pour cela vous deviez activer l'option "Sources non sûres". Cela permet d'installer des applications hors du magasin GooglePlay. Vous pouvez y aller avec confiance: Les applications venant de F-Droid sont plus sûres que celles de GooglePlay.
  • Lancez DNSFilter.
  • Il va vous demander l'autorisation d'accéder au stockage. C'est normal. Appuyez sur "Autoriser"
  • Android va aussi vous demander si vous autorisez DNSFilter à activer la fonction VPN. Acceptez.
  • Dans l'écran principal, appuyez sur "Paramètres avancés" puis "Configurer la mise à jour du filtre".
  • Ensuite désactivez toutes les listes actuellement actives (à gauche), puis appuyez sur le petit crayon (à droite) à la ligne "<new>":
  • Vous pouvez refermer le panneau "Paramètres avancés", mais pensez bien à cocher "Activer le blocage" et "Démarrage auto", ensuite appuyez sur "Redémarrer" et "Actualiser le filtre" (Il est possible qu'Android vous prévienne que DNSFilter veut activer la fonction VPN. Acceptez.)
Si vous avez une erreur "ERROR loading filter: https:/sebsauvage.net/hosts/raw java.net.UnknownHostException: Unable to resolve host "sebsauvage.net": No address associated with hostname" c'est probablement que vous avez activé l'option "DNS privé" au niveau d'Android. Désactivez-la.
  • Vous êtes paré·e !
  • Vous devriez déjà voir DNSFilter filtrer des requêtes DNS:
    • Celles en rouge qui ont une croix (X) ont été bloquées par DNSFilter. DNSFilter a répondu à l'application que le domaine n'existait pas. Les applications ne pourront pas contacter ces domaines et serveurs.
    • Celles en vert qui ont une coche (√) sont passées. DNSFilter les a envoyées au serveur DNS (indiqué par le point d'accès Wifi) et a laissé la réponse revenir.
  • Si vous ne voyez pas la zone qui affiche la liste des domaines bloqués, pensez à bien fermer les "Paramètres avancés"
  • Vous n'avez plus à vous en occuper.
    • DNSFilter démarre en même temps que votre téléphone et filtre immédiatement. 1)
    • DNSFilter est actif aussi bien en WiFi qu'en data (2G/3G/4G).
    • DNSFilter met à jour la liste de blocage automatiquement toutes les semaines.
Problème avec certains Android: Beaucoup de constructeurs utilisent des versions modifiées d'Android qui posent des problèmes avec les applications en arrière-plan. Veillez donc à vous assurer que DNSFilter est exclu:
  • des "optimisations" de batterie.
  • des restriction de données en arrière-plan.

Et même comme cela, ce n'est pas une garantie. Ce n'est ni la faute à Android ni à DNSFilter, mais aux fabricants de téléphone qui font n'importe quoi pour avoir de bonnes notes en autonomie de leur téléphone en tuant les applications en arrière-plan comme DNSFilter. Si malgré vos efforts DNSFilter ne peut fonctionner de manière fiable sur votre téléphone, utilisez la solution alternative (en fin de document).


Pour une meilleure protection de votre vie privée

Avec ce système, les requêtes DNS qui sortent de votre téléphone sont encore en clair: Le fournisseur d'accès peut encore les écouter (et donc savoir quels sites vous voulez visiter). DNSFilter peut - optionnellement - chiffrer les requêtes DNS sortantes. Voici comment procéder:

  • Touchez le champ "DNS":
  • Dans la fenêtre qui s'affiche:
    • Activez la case "Désactiver découverte du serveur DNS - Serveurs DNS manuels ci-dessous:"
    • Supprimez les adresses 8.8.8.8 et 8.8.4.4 et remplacez par 9.9.9.9::853::DoT
    • Pensez ensuite à appuyer sur "Redémarrer".
Certains point d'accès Wifi (notamment certains points d'accès Wifi publics gratuits) bloquent l'utilisation d'un DNS alternatif. Dans ce cas, décochez "Désactiver la découverte du serveur DNS" et appuyez sur "Redémarrer"

Pour une configuration DNS chiffré un peu plus complète, vous pouvez utiliser:

[9.9.9.9]::443::DOH::https://dns.quad9.net/dns-query
[149.112.112.112]::443::DOH::https://dns.quad9.net/dns-query
[9.9.9.9]::853::dot
[149.112.112.112]::853::dot

(Cela est utile et permet à DNSFilter de basculer automatiquement entre DOH (DNS-over-http) et DOT (DNS-over-TCP) si l'un est bloqué.)


FAQ

  • Je veux désactiver temporairement le filtrage !
    • Dans DNSFilter, appuyez simplement sur le bouton "Fermer". Il n'y a alors plus aucun filtrage.
    • Pour relancer le filtrage, relancez simplement DNSFilter.
  • Je veux retirer complètement le filtrage !
    • Dé-installez simplement l'application DNSFilter et le filtrage disparaît.
  • J'ai ce message d'erreur. C'est grave ?
    • Si vous avez le message « failed to connect to dns.quad9.net/9.9.9.9 (port 853) after 15000ms: connect failed: ENETUNREACH (Network is unreachable) IO Error occured! Check network or DNS Config! » rassurez-vous ce n'est pas grave: Cela veut juste dire que DNSFilter n'a pas pu se connecter au DNS que vous avez spécifié, probablement parce que vous avez coupé votre connexion internet (Wifi ou 3G). Dès que vous réactiverez votre connexion, DSNFilter reprendra son travail.
      • Par contre si cette erreur se produit alors que votre connexion internet est fonctionnelle, cela veut sans doute dire que votre fournisseur d'accès bloque l'accès au serveur DNS.
  • Est-ce que ça me garantit que ça bloque TOUT ?
    • Non, il n'y a aucun garantie que cela bloque 100% des publicités, traqueurs et logiciels malveillants. Mais cela devrait quasiment tout éliminer.
  • Pourquoi DNSFilter et pas Blokada ou DNS66 ?
    • DNSFilter:
      • est plus léger que les deux autres (DNS66: 3,8 Mo ; Blokada: 10,8 Mo ; DNSFilter: 446 ko) pour les mêmes fonctionnalités de filtrage.
      • fonctionne sur des versions Android plus anciennes (4.0 et supérieures)
      • permet de mieux voir les requêtes DNS qui passent et celles qui sont bloquées.
      • permet d'utiliser un DNS externe chiffré (DoT ou DoH).
      • fait de la résolution DNS CNAME récursive.
      • permet de bloquer tous les sous-domaines d'un domaine.
  • Moi j'ai un téléphone rooté !
    • Alors vous n'avez pas besoin de l'application DNSFilter. Copiez juste le fichier hosts dans /etc/system (Pensez à le mettre à jour de temps en temps).
    • Vous pouvez aussi utiliser le logiciel AdGuard qui peut mettre à jour votre fichier hosts de manière régulière.
  • Pourquoi ça active le VPN ? ça envoie mes données à un serveur ?
    • La fonction VPN est le seul moyen pour une application Android de recevoir tout le trafic réseau des autres applications. DNSFilter en a besoin pour pouvoir filtrer les requêtes DNS localement sur votre téléphone. Rassurez-vous: Votre trafic réseau n'est envoyé à aucun serveur VPN et le filtrage est entièrement réalisé dans votre téléphone.
  • Pourquoi 9.9.9.9 (Quad9) et pas 8.8.8.8 (Google) ou 1.1.1.1 (CloudFlare) ?
    • 9.9.9.9 semble avoir une politique de protection de la vie privée meilleure que celle de Google ou CloudFlare.
    • De plus 9.9.9.9 bloque dynamiquement les domaines liés aux malwares et botnets, ce qui offre une protection supplémentaire. Ils disposent de datacenters dans la plupart des pays du monde, ce qui assure une réponse rapide.
    • Mais rien ne vous empêche d'utiliser les DNS de votre choix. Voir cette page.
    • Notez que même si vous spécifiez un serveur DNS, rien n'empêche un fournisseur d'accès de détourner vos requêtes DNS et de répondre à la place du serveur DNS que vous aurez spécifié.
  • Pourquoi ::853::DoT ?
    • Par défaut, les requêtes DNS qui sortent de votre téléphone ne sont pas chiffrées. Votre fournisseur d'accès (ou n'importe qui sur le même réseau) peut voir quels domaines vous essayez de contacter. DoT (DNS-over-TLS) permet de chiffrer vos requêtes DNS. Le serveur 9.9.9.9 supporte le chiffrement.
    • Notez qu'il est possible, sur certains points d'accès ou certains FAI, que l'utilisation du chiffrement DNS soit bloqué. Dans ce cas, utilisez la configuration 9.9.9.9 seule.
  • Pourquoi utiliser la liste de blocage sur sebsauvage.net et pas celles fournies par défaut ?
    • La liste de blocage fournie par défaut par DNSFilter est très légère (environ 2500 domaines). La mienne en bloque un peu plus de 300 000 sans être abusive.
    • Les autres listes de blocage sont à manier avec précautions, certaines étant abusives (par exemple certaines bloquent commentcamarche.net et mail.gandi.net). J'ai essayé de sélectionner des listes efficaces sans être abusives.
  • Est-ce que je peux ajouter manuellement des domaines à bloquer ? (blacklist)
    • Sans problème ! Vous avez deux manières de le faire:
      • Faites un appuis long sur un domaine dans la liste qui s'affiche > "Ajouter au filtre" et c'est bon !
      • Vous pouvez aussi l'ajouter manuellement dans "Paramètres avancés" > "Configurer des hôtes supplémentaires".
        • Notez que vous pouvez bloquer un domaine précis et/ou tous les sous-domaines d'un domaine. Par exemple:
          • toto.com bloquera toto.com, mais pas api.toto.com
          • api.toto.com bloquera api.toto.com, mais pas toto.com
          • *.toto.com bloquera toto.com ET api.toto.com
  • Est-ce que je peux laisser passer quand même certains domaines malgré la liste de blocage ? (whitelist)
    • Sans problème ! Allez dans "Paramètres avancés" > "Configurer des hôtes supplémentaires" et mettez le domaine que vous voulez laisser passer avec un point d'exclamation devant. Exemple:
      • !google-analytics.com
  • Est-ce que je peux laisser passer certaines applications en entier ?
    • C'est possible si vous êtes sous Android 5 ou supérieur. Allez dans "Paramètres avancés" > "Liste blanche d'application" et sélectionnez les applications que vous voulez laisser passer sans filtrage.
  • Est-ce que DNSFilter est compatible avec mon VPN ?
    • Malheureusement DNSFilter et votre VPN utilisent tous les deux la fonction VPN d'Android. Un seul peut être actif à la fois. C'est donc soit votre VPN soit DNSFilter.
    • Si votre application VPN permet de configurer l'adresse des serveurs DNS, vous avez toute de même une solution alternative: Utiliser des résolveurs DNS qui filtrent la publicité. Certains résolveurs DNS alternatifs comme DNSForge ou AdGuard filtrent les domaines liés aux tracking et à la publicité.
      • Sous Android 9 et supérieur, dans la configuration, allez dans "Réseau et internet", "DNS privé" et entrez dns.adguard.com. Ce serveur DNS chiffré est publiquement accessible, et même si la liste de blocage n'est pas aussi complète que la mienne, il bloque la majorité des publicités et trackers. Ce fonctionnement est compatible avec l'utilisation d'un VPN quel qu'il soit.
    • Quand j'utilise un DNS externe, même quand une requête DNS est bloquée dans DNSFilter, je la vois sur le DNS externe. Pourquoi ?
      • En fait DNSFilter ne filtre pas les requêtes DNS sortantes du téléphone, mais patch en temps réel les réponses DNS reçues pour les marquer en "NXDOMAIN" (domaine non trouvé). Il bloque donc bien les domaines en fonction de sa liste, mais seulement au moment où la réponse DNS revient dans le téléphone.

Solution alternative

Il peut arriver que votre version d'Android ne laisse pas tourner DNSFilter correctement en tâche de fond. Dans ce cas, si votre appareil est sous Android 10 (ou plus récent), tout n'est pas perdu. À partir de la version 10, Android supporte DOT (DNS-over-TLS). Or il existe quelques services DNS publics qui bloquent la publicité à la manière de DNSFilter.

Avantage:

  • Fonctionne sans logiciel supplémentaire.

Inconvénients:

  • Le résolveur DNS voit votre trafic DNS (il sait donc quels sites vous consultez).
  • Vous ne contrôllez pas le contenu de la liste de blocage.

Mais il faut avouer que c'est une solution très rapide à mettre en place et efficace.

Voici comment procéder:

  • Dans les paramètres d'Android, allez dans "Réseau et internet"
  • Dans les préférences avancées, sélectionnez "DNS privé"
  • Choisissez "Nom d'hôte du fournisseurs DNS privé"
  • Entrez dnsforge.de ou l'un des fournisseurs ci-dessous.
  • Appuyez sur "Enregistrer".

Vous trouverez dans cette page une liste de services DNS qui filtrent la publicité.

1)
Sous Android 4, il est possible qu'il vous faille valider l'autorisation VPN après chaque redémarrage de votre téléphone.
dnsfilter.txt · Dernière modification : 2023/11/05 11:58 de sebsauvage