1.4. Écriture d'ACLs BIND
Le contrôle de l'accès à certaines fonctionnalités de BIND peut empêcher les accès non autorisés et les attaques, telles que les dénis de service (DoS). Les listes de contrôle d'accès (acl
) de BIND sont des listes d'adresses IP et de plages d'adresses. Chaque ACL possède un surnom que vous pouvez utiliser dans plusieurs instructions, comme allow-query
, pour faire référence aux adresses IP et aux plages spécifiées.
BIND n'utilise que la première entrée correspondante d'une ACL. Par exemple, si vous définissez une ACL { 192.0.2/24; !192.0.2.1; }
et que l'hôte ayant l'adresse IP 192.0.2.1
se connecte, l'accès est accordé même si la deuxième entrée exclut cette adresse.
BIND dispose des listes de contrôle d'accès (ACL) intégrées suivantes :
-
none
: Ne correspond à aucun hôte. -
any
: Correspond à tous les hôtes. -
localhost
: Correspond aux adresses de loopback127.0.0.1
et::1
, ainsi qu'aux adresses IP de toutes les interfaces du serveur qui exécute BIND. -
localnets
: Correspond aux adresses de bouclage127.0.0.1
et::1
, ainsi qu'à tous les sous-réseaux auxquels le serveur qui exécute BIND est directement connecté.
Conditions préalables
- BIND est déjà configuré, par exemple, en tant que serveur de noms avec mise en cache.
-
Le service
named
ounamed-chroot
est en cours d'exécution.
Procédure
Modifiez le fichier
/etc/named.conf
et effectuez les changements suivants :Ajoutez les déclarations
acl
au fichier. Par exemple, pour créer une ACL nomméeinternal-networks
pour127.0.0.1
,192.0.2.0/24
, et2001:db8:1::/64
, entrez :acl internal-networks { 127.0.0.1; 192.0.2.0/24; 2001:db8:1::/64; }; acl dmz-networks { 198.51.100.0/24; 2001:db8:2::/64; };
Utilisez le surnom de l'ACL dans les déclarations qui les prennent en charge, par exemple :
allow-query { internal-networks; dmz-networks; }; allow-recursion { internal-networks; };
Vérifier la syntaxe du fichier
/etc/named.conf
:# named-checkconf
Si la commande n'affiche aucune sortie, la syntaxe est correcte.
Recharger BIND :
# systemctl reload named
Si vous exécutez BIND dans un environnement change-root, utilisez la commande
systemctl reload named-chroot
pour recharger le service.
Vérification
Exécuter une action qui déclenche une fonction utilisant la liste de contrôle d'accès configurée. Par exemple, l'ACL de cette procédure n'autorise que les requêtes récursives à partir des adresses IP définies. Dans ce cas, entrez la commande suivante sur un hôte qui ne fait pas partie de la définition de l'ACL pour tenter de résoudre un domaine externe :
# dig short @192.0.2.1 www.example.com
Si la commande ne renvoie aucun résultat, BIND a refusé l'accès et l'ACL fonctionne. Pour obtenir une sortie verbeuse sur le client, utilisez la commande sans l'option
short
:# dig @192.0.2.1 www.example.com ... ;; WARNING: recursion requested but not available ...