Syntaxe des règles de filtrage DNS
Nous vous montrons ici comment écrire des règles de filtrage DNS personnalisées à utiliser dans les produits AdGuard
Liens rapides : Télécharger le Bloqueur AdGuard, Obtenir AdGuard Home, Essayer AdGuard DNS
Introduction
Vous pouvez utiliser la syntaxe de règles de filtrage DNS AdGuard pour rendre les règles plus flexibles, pour qu’elles puissent bloquer le contenu selon vos préférences. La syntaxe des règles de filtrage DNS AdGuard peut être utilisée dans des produits AdGuard différents, tels que AdGuard Home, AdGuard DNS, AdGuard pour Windows/Mac/Android.
Il y existe trois approches différentes pour écrire des listes de blocage d’hôtes :
-
Syntaxe de type Adblock : l’approche moderne pour écrire des règles de filtrage basée sur l’utilisation d’un sous-ensemble de la syntaxe des règles de type Adblock. De cette façon, les listes de blocage sont compatibles avec les bloqueurs de publicités du navigateur.
-
/etc/hostssyntaxe: la vieille approche éprouvée qui utilise la même syntaxe que les systèmes d'exploitation pour leurs fichiers hosts. -
Domains-only syntax: une simple liste de noms de domaine.
Si vous créez une liste de blocage, nous vous recommandons d'utiliser la syntaxe du type Adblock. Elle présente quelques avantages importants par rapport à l’ancienne syntaxe :
-
Taille des listes de blocage. L'utilisation de la correspondance de modèles vous permet d'avoir une seule règle au lieu de centaines d'entrées
/etc/hosts. -
Compatibilité. Votre liste de blocage sera compatible avec les bloqueurs de publicité des navigateurs et il sera plus facile de partager des règles avec une liste de filtrage des navigateurs.
-
Extensibilité. Au cours de la dernière décennie, la syntaxe de style Adblock a beaucoup évolué, et nous ne voyons aucune raison de ne pas l’étendre encore plus loin et d’offrir des fonctionnalités supplémentaires pour les bloqueurs au niveau du réseau.
Si vous maintenez soit une liste de blocage de type /etc/hosts soit plusieurs listes de filtrage (quel que soit leur type), nous fournissons un outil de compilation de listes de blocage. Nous l'avons nommé Compilateur de listes d’hôtes et nous l'utilisons nous-mêmes pour créer le filtre DNS AdGuard.
Exemples de base
-
||example.org^: bloque l'accès au domaineexample.orget à tous ses sous-domaines, commewww.example.org. -
@@||example.org^: débloque l'accès au domaineexample.orget à tous ses sous-domaines. -
1.2.3.4 example.org: (attention, ancienne/etc/hosts-syntaxe) dans AdGuard Home, réponse avec1.2.3.4aux requêtes pourexample.orgdomaine mais pas ses sous-domaines. Dans AdGuard DNS Privé, bloque l'accès àexample.org.www.example.orgreste autorisé.Dans AdGuard Home, utiliser l’adresse IP non spécifiée (
0.0.0.0) ou une adresse locale (127.0.0.1et les mêmes) pour un hôte est fondamentalement la même chose que de bloquer cet hôte.# Retourne l’adresse IP 1.2.3.4 pour example.org.1.2.3.4 example.org# Bloque example.org en répondant avec 0.0.0.0.0.0.0.0 example.org -
example.org: une règle de domaine simple. Bloque le domaineexample.orgmais pas ses sous-domaines.www.example.orgreste autorisé. -
! Voici un commentaireet# aussi un commentaire: Comments. -
/REGEX/: bloquez l’accès aux domaines correspondant à l’expression régulière spécifiée.
Syntaxe de style Adblock
Ceci est un sous-ensemble de la syntaxe traditionnelle de style Adblock qui est utilisée par les bloqueurs d'annonces intégrés aux navigateurs.
règle = ["@@"] modèle [" $" modificateurs]
Modificateurs = [modier0, modier1 [, … [, modifié]]]
-
pattern: le masque de nom d’hôte. Chaque nom d'hôte est comparé à ce masque. Le modèle peut également contenir des caractères spéciaux, qui sont décrits ci-dessous. -
@@: le marqueur utilisé dans les règles d’exception. Commencez votre règle avec ce marqueur si vous voulez arrêter le filtrage pour les noms d’hôtes correspondants. -
modificateurs: paramètres qui clarifient la règle. Ils peuvent limiter la portée de la règle ou même modifier complètement son fonctionnement.
Caractères spéciaux
-
*: le caractère générique. Il est utilisé pour représenter n’importe quel ensemble de caractères. Cela peut aussi être une chaîne vide ou une chaîne de n’importe quelle longueur. -
||: correspond au début d’un nom d’hôte, y compris un sous-domaine. Par exemple,||example.orgcorrespond àexample.orgettest.example.orgmais pastestexample.org. -
^: le caractère séparateur. Contrairement au blocage des publicités en navigateur, il n'y a rien à séparer dans un nom d'hôte, donc le seul but de ce caractère est de marquer la fin du nom d'hôte. -
|: un pointeur vers le début ou la fin du nom d'hôte. La valeur dépend du placement des caractères dans le masque. Par exemple, la règleample.org|correspond àexample.orgmais pas àexample.org.com.|exemplecorrespond àexemple.orgmais pas àtest.exemple.
Expressions régulières
Si vous souhaitez bénéficier d'une plus grande souplesse dans l'élaboration des règles, vous pouvez utiliser les expressions régulières au lieu de la syntaxe correspondante simplifiée par défaut. Si vous souhaitez utiliser une expression régulière, le modèle doit ressembler à ceci :
modèle = "/" regexp "/"
Exemples :
-
/exemple.*/bloquera les hôtes correspondant à l'exemple*regexp. -
@@/exemple.*/$importantdébloquera les hôtes correspondant à l'exemple*regexp. Notez que cette règle implique également le modificateurimportant.
Commentaires
Toute ligne commençant par un point d'exclamation ou un dièse est un commentaire et sera ignorée par le moteur de filtrage. Les commentaires sont généralement placés au-dessus des règles et utilisés pour décrire ce que fait une règle.
Exemple :
! Ceci est un commentaire.
# Ceci est aussi un commentaire.
Modificateurs de règles
Vous pouvez modifier le comportement d'une règle en ajoutant des modificateurs. Les modificateurs doivent être situés à la fin de la règle après le caractère $ et être séparés par des virgules.
Exemples :
-
||example.org^est le modèle correspondant.$est le délimiteur, qui signale que le reste de la règle sont des modificateurs.importantest le modificateur. -
Vous pouvez utiliser plusieurs modificateurs dans une règle. Dans ce cas, séparez-les par des virgules :
||example.org^$client=127.0.0.1,dnstype=A||example.org^est le modèle correspondant.$est le délimiteur, qui signale que le reste de la règle sont des modificateurs.client=127.0.0.1est le modificateurclientavec pour valeur127.0.0.1.,est le délimiteur entre les modificateurs. Et enfin,dnstype=Aest le modificateurdnstypeavec sa valeur,A.
Si une règle contient un modificateur qui n’est pas répertorié dans ce document, la règle entière doit être ignorée. De cette façon, nous évitons les faux positifs lorsque les gens essaient d'utiliser les listes de filtres des bloqueurs de publicités de navigateur non modifiés comme EasyList ou EasyPrivacy.
client
Le modificateur client ne peut être utilisé que dans AdGuard Home et AdGuard DNS.
Le modificateur client permet de spécifier les clients auxquels cette règle s'applique. Il existe deux façons principales d'identifier un client :
-
Par leur adresse IP ou leur préfixe CIDR. Cette méthode fonctionne pour tous les types de clients.
-
Par leur nom. Cette méthode ne fonctionne que pour les clients persistants (dans AdGuard Home) et les appareils (dans AdGuard DNS Privé), que vous avez ajoutés manuellement.
noteDans AdGuard Home, les ID client eux-même ne sont pas pris en charge actuellement, seuls leurs noms le sont. Si vous avez ajouté un client portant le nom "Mon client" et le numéro ClientID
mon-client, écrivez votre modificateur sous la forme$client='Mon Client'au lieu de$client=mon-client.
La syntaxe est :
$client=value1|value2|...
Vous pouvez également exclure des clients en ajoutant un caractère ~ avant la valeur. Dans ce cas, la règle n'est pas appliquée aux requêtes DNS de ce client.
$client=~value1
Les noms de client contiennent généralement des espaces ou d'autres caractères spéciaux, c'est pourquoi vous devez placer le nom entre guillemets. Les guillemets ASCII simples et doubles sont pris en charge. Utilisez la barre oblique inverse (\) pour échapper les guillemets (" et '), les virgules (,) et les barres verticales (|).
Lorsque vous excluez un client, vous devez placer ~ à l'extérieur des guillemets.
Exemples :
-
@@||*^$client=127.0.0.1: débloquer tout pour localhost. -
||example.org^$client='Frank\'s laptop': bloqueexample.orgpour le client nomméFrank's laptopuniquement. Notez que les guillemets (') dans le nom doivent être échappés. -
||example.org^$client=~'Mary\'s\, John\'s\, and Boris\'s laptops': blocexample.orgpour tout le monde sauf le client nomméMary's, John's, and Boris's laptops. Notez que la virgule (,) doit également être échappée. -
||example.org^$client=~Mom|~Dad|Kids: bloquerexemple.orgpourKids, mais pas pourMometDad. Cet exemple montre comment spécifier plusieurs clients dans une règle. -
||example.org^$client=192.168.0.0/24: bloquerexample.orgpour tous les clients dont les adresses IP sont comprises entre192.168.0.0et192.168.0.255.
denyallow
Vous pouvez utiliser le modificateur denyallow pour exclure des domaines de la règle de blocage. Pour ajouter plusieurs domaines à une règle, utilisez le caractère | comme séparateur.
La syntaxe est :
$denyallow=domain1|domain2|...
Ce modificateur permet d'éviter de créer des règles d'exception inutiles quand notre règle de blocage couvre trop de domaines. Vous voudrez peut-être tout bloquer sauf quelques domaines TLD. Vous pouvez utiliser l'approche standard, c'est-à-dire des règles comme celle-ci :
! Bloquer tout.
/.*/
! Débloquer quelques TLD.
@@||com^
@@||net^
Le problème avec cette approche est que de cette façon, vous débloquerez également les domaines de suivi situés sur ces TLD (c'est-à-dire google-analytics.com). Voici comment résoudre ce problème avec denyallow :
*$denyallow=com|net
Exemples :
-
*$denyallow=com|net: bloque tout sauf*.comet*.net. -
@@*$denyallow=com|net: débloque tout sauf*.comet*.net. -
||example.org^$denyallow=sub.example.org: bloqueexample.orget*.example.org, mais passub.example.org.
dnstype
Le modificateur dnstype permet de spécifier le type de requête ou de réponse DNS sur lequel cette règle sera déclenchée.
La syntaxe est :
$dnstype=value1|value2|...
$dnstype=~value1|~value2|~...
Les noms des types ne sont pas sensibles à la casse, mais sont validés par rapport à un ensemble de types d'enregistrements de ressources DNS (RR) réels.
Ne combinez pas les règles d'exclusion avec celles d'inclusion. Ceci :
$dnstype=~value1|value2
est équivalent à ceci :
$dnstype=value2
Exemples :
-
||example.org^$dnstype=AAAA: bloque les requêtes DNS pour les adresses IPv6 deexample.org. -
||example.org^$dnstype=~A|~CNAME: n'autorise que les requêtes DNS du typeAetCNAMEpourexample.org, et bloque le reste.
Avant la version v0.108.0, AdGuard Home utilisait le type de la requête pour filtrer les enregistrements de réponse, au lieu du type de l'enregistrement de réponse lui-même. Cela posait des problèmes, puisque dans ce cas-là vous ne pouviez pas écrire de règles autorisant certains enregistrements CNAME dans les réponses aux requêtes A et AAAA. Dans la v0.108.0 ce comportement a été modifié, alors maintenant ceci :
||canon.example.com^$dnstype=~CNAME
permet d'éviter le filtrage de la réponse suivante :
REPONSES :
-> example.com
canonical name = canon.example.com.
ttl = 60
-> canon.example.com
internet address = 1.2.3.4
ttl = 60
dnsrewrite
Le modificateur de réponse dnsrewrite permet de remplacer le contenu de la réponse à la requête DNS pour les hôtes correspondants. Tenez compte que ce modificateur dans AdGuard Home fonctionne dans toutes les règles, mais il ne le fait uniquement dans les règles personnalisées dans AdGuard DNS Privé.
Les règles avec le modificateur de réponse dnsrewrite ont une priorité plus élevée que les autres règles dans AdGuard Home et AdGuard DNS.
Les réponses à toutes les requêtes pour un hôte correspondant à une règle dnsrewrite seront remplacées. La section réponse de la réponse de remplacement ne contiendra que les RR qui correspondent au type de requête de la demande et, éventuellement, les RR CNAME. Notez que cela signifie que les réponses à certaines requêtes peuvent devenir vides (NODATA) si l'hôte correspond à une règle dnsrewrite.
La syntaxe abrégée est la suivante :
$dnsrewrite=1.2.3.4
$dnsrewrite=abcd::1234
$dnsrewrite=example.net
$dnsrewrite=REFUSED
Les mots clés DOIVENT être en majuscules (par exemple NOERROR). Les réécritures de mots-clés ont priorité sur les autres et donneront une réponse vide avec un code de réponse approprié.
La syntaxe complète est de la forme RCODE;RRTYPE;VALUE :
$dnsrewrite=NOERROR;A;1.2.3.4
$dnsrewrite=NOERROR;AAAA;abcd::1234
$dnsrewrite=NOERROR;CNAME;example.net
$dnsrewrite=REFUSED;;
Le modificateur $dnsrewrite avec le code de réponse NOERROR peut également avoir des champs RRTYPE et VALUE vides.
Le CNAME est spécial, car AdGuard Home résoudra l'hôte et ajoutera ses informations à la réponse. Autrement dit, si example.net a l'IP 1.2.3.4et l'utilisateur a ceci dans ses règles de filtrage :
||example.com^$dnsrewrite=example.net
! Soit :
||example.com^$dnsrewrite=NOERROR;CNAME;example.net
alors la réponse sera de cette sorte :
nslookup example.com my.adguard.local
Serveur : my.adguard.local
Adresse : 127.0.0.1#53
Réponse non officielle :
exemple.com canonical name = exemple.net.
Nom : example.net
Adresse : 1.2.3.4
Ensuite, la réécriture CNAME. Après cela, les valeurs de tous les autres enregistrements sont additionnées en une seule réponse, donc ceci :
||example.com^$dnsrewrite=NOERROR;A;1.2.3.4
||example.com^$dnsrewrite=NOERROR;A;1.2.3.5
entraînera une réponse avec deux enregistrements A.
Les types de RR actuellement pris en charge avec des exemples :
-
||4.3.2.1.in-addr.arpa^$dnsrewrite=NOERROR;PTR;example.net.ajouter un enregistrementPTRpour le DNS inverse. Les requêtes DNS inversées pour1.2.3.4au serveur DNS donnerontexample.net.noteL'IP DOIT être dans l'ordre inverse. Voir RFC 1035.
-
||example.com^$dnsrewrite=NOERROR;A;1.2.3.4ajoute un enregistrementAavec la valeur1.2.3.4. -
||example.com^$dnsrewrite=NOERROR;AAAA;abcd::1234ajoute un enregistrementAAAAavec la valeurabcd::1234. -
||example.com^$dnsrewrite=NOERROR;CNAME;example.orgajoute un enregistrementCNAME. Voir l'explication ci-dessus. -
||example.com^$dnsrewrite=NOERROR;HTTPS;32 example.com alpn=h3ajoute un enregistrementHTTPS. Seul un sous-ensemble de valeurs de paramètres est pris en charge : les valeurs doivent êtrecontiguës àet, lorsqu'uneliste de valeursestattendue, une seule valeur est actuellement prise en charge :ipv4hint=127.0.0.1 // Pris en charge.ipv4hint="127.0.0.1" // Non pris en charge.ipv4hint=127.0.0.1,127.0.0.2 // Non pris en charge.ipv4hint="127.0.0.1,127.0.0.2" // Non pris en charge.Cela changera à l’avenir.
-
||example.com^$dnsrewrite=NOERROR;MX;32 example.mailajoute un enregistrementMXavec la valeur de priorité32et la valeur d'échangeexample.mail. -
||example.com^$dnsrewrite=NOERROR;SVCB;32 example.com alpn=h3ajoute une valeurSVCB. Voir l'exempleHTTPSci-dessus. -
||example.com^$dnsrewrite=NOERROR;TXT;hello_worldajoute un enregistrementTXTavec la valeurhello_world. -
||_svctype._tcp.example.com^$dnsrewrite=NOERROR;SRV;10 60 8080 example.comajoute un enregistrementSRVavec la valeur de priorité10, la valeur de pondération60, le port8080et la valeur cibleexample.com. -
||example.com^$dnsrewrite=NXDOMAIN;;répond par un codeNXDOMAIN. -
$dnstype=AAAA,denyallow=example.org,dnsrewrite=NOERROR ;;fait retour avec des réponsesNOERRORvides pour toutes requêtesAAAsauf celles pourexample.org.
Les règles d'exception débloquent une ou toutes les règles :
-
@@||example.com^$dnsrewritedébloque toutes les règles de réécriture DNS. -
@@||example.com^$dnsrewrite=1.2.3.4débloque la règle de réécriture DNS qui ajoute un enregistrementAavec la valeur1.2.3.4.
Si vous maintenez une liste de blocage qui est incluse dans AdGuard DNS et AdGuard Home (c'est-à-dire incluse dans HostlistsRegistry), $dnsrewrite seront automatiquement filtrées. Si ces règles sont nécessaires pour votre liste de blocage, veuillez demander la permission en ouvrant un nouveau problème dans le dépôt HostlistsRegistry .
important
Le modificateur important appliqué à une règle augmente sa priorité sur toute autre règle sans le modificateur. Même sur les règles d'exceptions de base.
Exemples :
-
Dans cet exemple :
||exemple.org^$important@@||exemple.org^||example.org^$importantbloquera toutes les requêtes vers*.example.orgmalgré la règle d'exception. -
Dans cet exemple :
||example.org^$important@@||example.org^$importantla règle d'exception comporte également le modificateur
important, donc ça doit marcher.
badfilter
Les règles avec le modificateur badfilter désactivent les autres règles de base auxquelles elles se réfèrent. Cela signifie que le texte de la règle désactivée doit correspondre au texte de la règle badfilter (sans le modificateur badfilter).
Exemples :
-
||example.com$badfilterdésactive||example.com. -
@@||example.org^$badfilterdésactive@@||example.org^.noteLe modificateur
badfilterne fonctionne actuellement pas avec les règles de style/etc/hosts.127.0.0.1 example.org$badfilterne désactivera pas la règle d'origine127.0.0.1 example.org.
ctag
Le modificateur ctag ne peut être utilisé que dans AdGuard Home.
Il permet de bloquer des domaines uniquement pour des types spécifiques de balises client DNS. Vous pouvez attribuer des balises aux clients dans l'interface utilisateur AdGuard Home. À l'avenir, nous prévoyons d'attribuer automatiquement des balises en analysant le comportement de chaque client.
La syntaxe est :
$ctag=value1|value2|...
Si l'une des balises du client correspond aux valeurs ctag, cette règle s'applique au client. La syntaxe de l'exclusion est :
$ctag=~value1|~value2|...
Si l'une des balises du client correspond aux valeurs ctag d'exclusion, cette règle ne s'applique pas au client.
Exemples :
-
||example.org^$ctag=device_pc|device_phone: bloquerexample.orgpour les clients marqués commedevice_pcoudevice_phone. -
||example.org^$ctag=~device_phone: bloquerexample.orgpour tous les clients sauf ceux marqués commedevice_phone.
La liste des balises autorisées :
-
Par type de dispositif :
device_audio: périphériques audio.device_camera: caméras.device_gameconsole: consoles de jeux.device_laptop: ordinateurs portables.device_nas: NAS (Stockages en réseau).device_pc: PCs.device_phone: téléphones.device_printer: imprimantes.device_securityalarm: alarmes de sécurité.device_tablet: tablettes.device_tv: téléviseurs.device_other: autres appareils.
-
Par système d'exploitation :
os_android: Android.os_ios: iOS.os_linux: Linux.os_macos: macOS.os_windows: Windows.os_other: autres systèmes d'exploitation.
-
Par groupe d'utilisateurs :
user_admin: administrateurs.user_regular: utilisateurs réguliers.user_child: enfants.
respgeo
Le modificateur respgeo ne peut être utilisé que dans AdGuard DNS.
Le modificateur respgeo vous permet d’appliquer des règles basées sur le pays ou l’ASN de l’adresse IP renvoyée dans la réponse DNS. Il vérifie l'adresse IP de destination, c'est-à-dire l'adresse IP à laquelle le nom de domaine correspond. Il ne vérifie pas l'adresse IP, le pays ou l'ASN de l'utilisateur, de l'appareil ou du client DNS.
Blocage par pays de réponse
La valeur du modificateur doit être un code pays à deux lettres au format ISO 3166-1 alpha-2. Vous pouvez également utiliser -- pour correspondre aux réponses où le pays n\u2019a pas pu être déterminé.
Exemples :
-
||*^$respgeo=US: bloquer les domaines si l’adresse IP dans la réponse DNS est associée aux États-Unis. -
||*^$respgeo=FR|DE: bloquer les domaines si l'adresse IP dans la réponse DNS est associée à la France ou à l'Allemagne. -
||*^$respgeo=--: bloquer les domaines si le pays de l'adresse IP dans la réponse DNS est inconnu. -
||*^$respgeo=~--: bloquer les domaines si le pays de l'adresse IP dans la réponse DNS est connu. -
@@||whitehouse.gov^: autoriserwhitehouse.gov, même s'il est bloqué par une règle générique avec le modificateurrespgeo. -
@@||example.org^$respgeo=US: autoriserexample.orgsi l'adresse IP dans la réponse DNS est associée aux États-Unis. -
||whitehouse.gov^$respgeo=US: bloquewhitehouse.govuniquement si l’adresse IP dans la réponse DNS est associée aux États-Unis. -
Dans cet exemple :
||whitehouse.gov^@@||whitehouse.gov^$respgeo=US@@||whitehouse.gov^$respgeo=USn'autorisera paswhitehouse.gov, car la première règle bloque la requête en inspectant les données de requête, tandis que la seconde tente de l'autoriser en inspectant la réponse.
Vous pouvez utiliser ~ pour inverser la condition :
||*^$respgeo=~DE: bloque les domaines si l'adresse IP dans la réponse DNS n'est pas associée à l'Allemagne.
Limitations
Le modificateur respgeo utilise une seule adresse IP et un seul pays calculés selon la logique actuelle du Journal des requêtes. Si un domaine se résout en plusieurs adresses IP ou pays, AdGuard DNS n'analyse pas toutes les adresses IP renvoyées.
Étant donné que de nombreux domaines utilisent des CDN, l’équilibrage de charge ou une infrastructure géographiquement distribuée, le pays détecté peut changer au fil du temps.
Si le pays ne peut pas être déterminé, la condition GeoIP ne correspondra pas. Utilisez respgeo=-- pour faire correspondre les réponses avec un pays inconnu.
Les règles avec le modificateur respgeo sont affichées dans le Journal des requêtes comme des règles normales.
Blocage par ASN
Le modificateur respgeo peut également être utilisé pour appliquer des règles basées sur l'ASN de l'adresse IP renvoyée dans la réponse DNS.
ASN signifie Numéro de système autonome. Il identifie un système autonome — un réseau exploité par un FAI, un hébergeur, un fournisseur de cloud, une entreprise ou une autre organisation.
Ce modificateur vérifie le ASN de destination — l’ASN associé à l’adresse IP vers laquelle le domaine se résout. Cela ne vérifie pas l'ASN de l'utilisateur, de l'appareil ou du client DNS.
La valeur du modificateur doit être un ASN au format AS<number>, par exemple AS15169.
Exemples :
-
||*^$respgeo=AS15169: bloquer les domaines si l'adresse IP dans la réponse DNS appartient à l'ASN AS15169. -
||*^$respgeo=AS15169|AS8075: bloquer les domaines si l'adresse IP dans la réponse DNS appartient à l'ASN AS15169 ou AS8075. -
||*^$respgeo=AS--: bloquer les domaines si l'ASN de l'adresse IP dans la réponse DNS est inconnu. -
||*^$respgeo=~AS--: bloquer les domaines si l'ASN de l'adresse IP dans la réponse DNS est connu. -
@@||google.com^$respgeo=AS15169: autorisergoogle.comsi l’adresse IP dans la réponse DNS appartient à l’ASN AS15169. -
||google.com^$respgeo=AS15169: bloquergoogle.comuniquement si l’adresse IP dans la réponse DNS appartient à l’ASN AS15169. -
Dans cet exemple :
||google.com^@@||google.com^$respgeo=AS15169@@||google.com^$respgeo=AS15169n’autorisera pasgoogle.com, car la première règle bloque la requête en inspectant les données de la requête, tandis que la seconde tente de l’autoriser en inspectant la réponse.
Vous pouvez utiliser ~ pour inverser la condition :
||*^$respgeo=~AS15169: bloquer les domaines si l'adresse IP dans la réponse DNS n'appartient pas à l'ASN AS15169.
Limitations
Le modificateur respgeo utilise une seule adresse IP et un seul ASN calculés selon la logique actuelle du Journal des requêtes. Si un domaine se résout en plusieurs adresses IP ou ASNs, AdGuard DNS n'analyse pas tous les ASN renvoyés.
Les grands ASNs liés aux CDN, au cloud ou à l'hébergement peuvent contenir beaucoup de site web sans lien entre eux. Le blocage d'ASN peut donc affecter plus de domaines que prévu.
Si l'ASN ne peut pas être déterminé, la condition ASN ne sera pas remplie. Utilisez respgeo=AS-- pour faire correspondre les réponses avec un ASN inconnu.
L'ASN ne correspond par toujours à une entreprise, un produit ou un service particulier. Il identifie seulement le réseau associé à l'adresse IP résolue.
Les règles avec le modificateur respgeo sont affichées dans le Journal des requêtes comme des règles normales.
Syntaxe de style /etc/hosts
Pour chaque hôte, une seule ligne doit être présente avec les informations suivantes :
IP_address canonical_hostname [aliases...]
Les champs des entrées sont séparés par un nombre d'espaces ou de tabulations. Le texte commençant par le caractère # jusqu'à la fin de la ligne est un commentaire et est ignoré.
Les noms d'hôte ne peuvent contenir que des caractères alphanumériques, des signes tiret moins (-) et des points (.). Ils doivent commencer par un caractère alphabétique et se terminer par un caractère alphanumérique. Les alias facultatifs permettent des changements de nom, des orthographes alternatives, des noms d'hôte plus courts ou des noms d'hôte génériques (par exemple, localhost).
Exemple :
# Ceci est un commentaire
127.0.0.1 exemple.org example.info
127.0.0.1 exemple.com
127.0.0.1 exemple.net # ceci est aussi un commentaire
Dans AdGuard Home, les adresses IP sont utilisées pour répondre aux requêtes DNS pour ces domaines. Dans AdGuard DNS Privé, ces adresses sont tout simplement bloquées.
Syntaxe des domaines uniquement
Une simple liste de noms de domaine, un nom par ligne.
Exemple :
# Ceci est un commentaire
exemple.com
exemple.org
exemple.net # ceci est aussi un commentaire
Si une chaîne n'est pas un domaine valide (par exemple *.example.org), AdGuard Home la considérera comme une règle de syntaxe du style Adblock.
Compilateur de listes d'hôtes
Si vous maintenez une liste de blocage en utilisant plusieurs sources différentes, le Compilateur de listes d'hôtes peut vous être utile. C'est un outil simple qui facilite la compilation d'une liste de blocage d'hôtes compatible avec AdGuard Home, AdGuard DNS Privé ou tout autre produit AdGuard comportant le filtrage DNS.
Qu'est-ce qu'il peut faire :
-
Compiler une liste de blocage à partir de plusieurs sources.
-
Exclure les règles dont vous n'avez pas besoin.
-
Nettoyer la liste résultante : dédupliquer, supprimer les règles non valides et compresser la liste.