« Bind9 » : différence entre les versions
(Page créée avec « Category:service_dns =RPZ= RPZ (Reponse Policy Zone) est une fonctionnalité du DNS permettant de mentir sur les requêtes de nom des clients. C'est utile pour interdi... ») |
(Ajouts de la section "Configuration" ainsi que d'une commande pour installer l'outil) |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:service_dns]] | [[Category:service_dns]] | ||
{{info|RPZ nécessite | ''BIND'' version 9 est un logiciel de serveur DNS. Il permet la résolution récursives de noms de domaines et sait faire autorité sur une zone locale en plus d'en déléguer. | ||
Il est présent dans les dépôts de ''Debian Bullseye'' | |||
apt install --no-install-recommends bind9 | |||
=Configuration= | |||
Le point d'entré pour les fichiers de configuration du logiciel se chargeant d'inclure tous les autres est <syntaxhighlight lang="bash" inline>/etc/bind/named.conf</syntaxhighlight>. Ce sont les fichiers pointés par celui-ci qui devront être modifiés. | |||
==Générale== | |||
Le fichier de configuration générale permet d'agir notamment sur les sockets d'écoute, l'activation de certaines fonctions comme ''DNSSEC'' ou [[#RPZ|RPZ]] ainsi que les réseaux autorisés à utiliser les services de ''BIND''. | |||
cat /etc/bind/named.conf.options | |||
''Exemple de configuration :'' | |||
<syntaxhighlight lang="nginx"> | |||
options { | |||
directory "/var/cache/bind"; | |||
dnssec-validation auto; | |||
listen-on-v6 { any; }; | |||
// Activer le RPZ | |||
response-policy { zone "rpz"; }; | |||
// BIND9 n'accepte que les requêtes venant des réseaux qu'il connaît (au sens route directement connecté). Soit on défini une liste comme suit de réseaux autorisé, soit on autorise tout avec "any". | |||
allow-query { any; }; | |||
// allow-query { 192.168.1.0/24;192.168.2.0/24;192.168.208.0/24;172.16.10.0/24;10.0.7.0/24; }; | |||
}; | |||
</syntaxhighlight> | |||
==Autorité sur des domaines== | |||
L'un des principaux intérêts de mettre en œuvre un serveur ''DNS'' est de pouvoir attribuer librement des noms de domaines locaux à nos machines. Un nom de domaine est appelé "zone" et c'est sur cette zone que ''BIND'' fera autorité. Il est également possible de déléguer l'autorité sur une zone à un autre serveur ''DNS''. | |||
Une zone est décrite dans le fichier <syntaxhighlight lang="bash" inline>/etc/bind/named.conf.local</syntaxhighlight> et les enregistrements ''DNS'' s'y afférant se situent dans un unique fichier propre à la zone dans le répertoire <syntaxhighlight lang="bash" inline>/var/cache/bind/</syntaxhighlight>. | |||
cat /etc/bind/named.conf.local | |||
''Exemple de zones gérées par notre serveur :'' | |||
<syntaxhighlight lang="nginx"> | |||
zone "ycharbi.yo" { | |||
type master; | |||
file "/var/cache/bind/ycharbi.yo"; | |||
}; | |||
zone "1.168.192.in-addr.arpa" { | |||
type master; | |||
file "/var/cache/bind/rev.ycharbi.yo"; | |||
}; | |||
zone "toto.yo" { | |||
type master; | |||
file "/var/cache/bind/toto.yo"; | |||
}; | |||
zone "rpz" IN { | |||
type master; | |||
file "/var/cache/bind/rpz"; | |||
allow-query { none; }; | |||
}; | |||
</syntaxhighlight> | |||
''Notez la présence d'une zone inverse <syntaxhighlight lang="ini" inline>1.168.192.in-addr.arpa</syntaxhighlight> permettant la résolution de champs <syntaxhighlight lang="bash" inline>PTR</syntaxhighlight> (adresses en noms).'' | |||
Contenu d'un fichier de zone (<syntaxhighlight lang="bash" inline>/var/cache/bind/ycharbi.yo</syntaxhighlight>) : | |||
<syntaxhighlight lang="nginx"> | |||
$TTL 3h | |||
@ IN SOA ns.ycharbi.yo. hostmaster.ycharbi.yo. ( | |||
2005090201 | |||
8H | |||
2H | |||
1W | |||
1D ) | |||
@ IN NS ns.ycharbi.yo. | |||
; Messagerie | |||
@ IN MX 10 mail.ycharbi.yo. | |||
mail IN A 192.168.1.100 | |||
mail IN AAAA 2001:db8:1021:5:: | |||
; Serveur WEB | |||
www IN A 192.168.1.101 | |||
www IN AAAA 2001:db8:1021:5::1 | |||
</syntaxhighlight> | |||
Contenu d'un fichier de zone inverse (<syntaxhighlight lang="bash" inline>/var/cache/bind/rev.ycharbi.yo</syntaxhighlight>) : | |||
<syntaxhighlight lang="nginx"> | |||
$TTL 3h | |||
@ IN SOA ns.ycharbi.yo. hostmaster.ycharbi.yo. ( | |||
2005090201 | |||
8H | |||
2H | |||
1W | |||
1D ) | |||
@ IN NS ns.ycharbi.yo. | |||
@ IN MX 10 mail.ycharbi.yo. | |||
200 IN PTR ns.ycharbi.yo | |||
100 IN PTR mail.ycharbi.yo | |||
101 IN PTR www.ycharbi.yo | |||
</syntaxhighlight> | |||
Tester la configuration | |||
named-checkconf -z | |||
Redémarrer le service | |||
systemctl restart bind9.service | |||
==RPZ== | |||
''RPZ'' (''Reponse Policy Zone'') est une fonctionnalité du ''DNS'' permettant de mentir sur les requêtes de nom des clients. Ceci est utile afin interdire les accès aux services ''NSA'' devenus incontournables sur le ''WEB'' comme ''Google'' ou ''Facebook''. Je l'utilise pour servir mon miroir de dépôt local à toute mes machines sans avoir à changer leur configuration et elle peut également servir si vous êtes opérateur afin de bloquer l'accès aux sites illégaux. | |||
{{info|''RPZ'' nécessite ''BIND'' version 9.8.0 minimum.}} | |||
'''Activation de RPZ''' | '''Activation de RPZ''' | ||
vim /etc/bind/named.conf.options | vim /etc/bind/named.conf.options | ||
Ajouter cette option dans le fichier | Ajouter cette option dans le fichier | ||
response-policy { zone "rpz"; }; | response-policy { zone "rpz"; }; | ||
'''Définition de la zone soumise à l'autorité de | '''Définition de la zone soumise à l'autorité de BIND''' | ||
vim /etc/bind/named.conf.local | vim /etc/bind/named.conf.local | ||
< | |||
<syntaxhighlight lang="lua"> | |||
zone "rpz" IN { | zone "rpz" IN { | ||
type master; | type master; | ||
Ligne 18 : | Ligne 134 : | ||
allow-query { none; }; | allow-query { none; }; | ||
}; | }; | ||
</ | </syntaxhighlight> | ||
'''Configuration de la zone''' | '''Configuration de la zone''' | ||
< | vim /var/cache/bind/rpz | ||
<syntaxhighlight lang="lua"> | |||
$TTL 3600 | $TTL 3600 | ||
@ IN SOA localhost. root.localhost. ( | @ IN SOA localhost. root.localhost. ( | ||
Ligne 33 : | Ligne 151 : | ||
ftp.fr.debian.org A IP_SERVEUR_MIROIR | ftp.fr.debian.org A IP_SERVEUR_MIROIR | ||
security.debian.org A IP_SERVEUR_MIROIR | security.debian.org A IP_SERVEUR_MIROIR | ||
</ | </syntaxhighlight> | ||
'''Redémarrer Bind''' | '''Redémarrer Bind''' | ||
systemctl restart bind9.service | systemctl restart bind9.service | ||
==Sources de la section== | ==Sources de la section== | ||
* http://jpmens.net/2011/04/26/how-to-configure-your-bind-resolvers-to-lie-using-response-policy-zones-rpz/ | * http://jpmens.net/2011/04/26/how-to-configure-your-bind-resolvers-to-lie-using-response-policy-zones-rpz/ | ||
* http://www.bortzmeyer.org/rpz-faire-mentir-resolveur-dns.html | * http://www.bortzmeyer.org/rpz-faire-mentir-resolveur-dns.html |
Dernière version du 1 août 2022 à 13:51
BIND version 9 est un logiciel de serveur DNS. Il permet la résolution récursives de noms de domaines et sait faire autorité sur une zone locale en plus d'en déléguer.
Il est présent dans les dépôts de Debian Bullseye
apt install --no-install-recommends bind9
Configuration
Le point d'entré pour les fichiers de configuration du logiciel se chargeant d'inclure tous les autres est /etc/bind/named.conf
. Ce sont les fichiers pointés par celui-ci qui devront être modifiés.
Générale
Le fichier de configuration générale permet d'agir notamment sur les sockets d'écoute, l'activation de certaines fonctions comme DNSSEC ou RPZ ainsi que les réseaux autorisés à utiliser les services de BIND.
cat /etc/bind/named.conf.options
Exemple de configuration :
options {
directory "/var/cache/bind";
dnssec-validation auto;
listen-on-v6 { any; };
// Activer le RPZ
response-policy { zone "rpz"; };
// BIND9 n'accepte que les requêtes venant des réseaux qu'il connaît (au sens route directement connecté). Soit on défini une liste comme suit de réseaux autorisé, soit on autorise tout avec "any".
allow-query { any; };
// allow-query { 192.168.1.0/24;192.168.2.0/24;192.168.208.0/24;172.16.10.0/24;10.0.7.0/24; };
};
Autorité sur des domaines
L'un des principaux intérêts de mettre en œuvre un serveur DNS est de pouvoir attribuer librement des noms de domaines locaux à nos machines. Un nom de domaine est appelé "zone" et c'est sur cette zone que BIND fera autorité. Il est également possible de déléguer l'autorité sur une zone à un autre serveur DNS.
Une zone est décrite dans le fichier /etc/bind/named.conf.local
et les enregistrements DNS s'y afférant se situent dans un unique fichier propre à la zone dans le répertoire /var/cache/bind/
.
cat /etc/bind/named.conf.local
Exemple de zones gérées par notre serveur :
zone "ycharbi.yo" {
type master;
file "/var/cache/bind/ycharbi.yo";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/rev.ycharbi.yo";
};
zone "toto.yo" {
type master;
file "/var/cache/bind/toto.yo";
};
zone "rpz" IN {
type master;
file "/var/cache/bind/rpz";
allow-query { none; };
};
Notez la présence d'une zone inverse 1.168.192.in-addr.arpa
permettant la résolution de champs PTR
(adresses en noms).
Contenu d'un fichier de zone (/var/cache/bind/ycharbi.yo
) :
$TTL 3h
@ IN SOA ns.ycharbi.yo. hostmaster.ycharbi.yo. (
2005090201
8H
2H
1W
1D )
@ IN NS ns.ycharbi.yo.
; Messagerie
@ IN MX 10 mail.ycharbi.yo.
mail IN A 192.168.1.100
mail IN AAAA 2001:db8:1021:5::
; Serveur WEB
www IN A 192.168.1.101
www IN AAAA 2001:db8:1021:5::1
Contenu d'un fichier de zone inverse (/var/cache/bind/rev.ycharbi.yo
) :
$TTL 3h
@ IN SOA ns.ycharbi.yo. hostmaster.ycharbi.yo. (
2005090201
8H
2H
1W
1D )
@ IN NS ns.ycharbi.yo.
@ IN MX 10 mail.ycharbi.yo.
200 IN PTR ns.ycharbi.yo
100 IN PTR mail.ycharbi.yo
101 IN PTR www.ycharbi.yo
Tester la configuration
named-checkconf -z
Redémarrer le service
systemctl restart bind9.service
RPZ
RPZ (Reponse Policy Zone) est une fonctionnalité du DNS permettant de mentir sur les requêtes de nom des clients. Ceci est utile afin interdire les accès aux services NSA devenus incontournables sur le WEB comme Google ou Facebook. Je l'utilise pour servir mon miroir de dépôt local à toute mes machines sans avoir à changer leur configuration et elle peut également servir si vous êtes opérateur afin de bloquer l'accès aux sites illégaux.
INFORMATION
RPZ nécessite BIND version 9.8.0 minimum.Activation de RPZ
vim /etc/bind/named.conf.options
Ajouter cette option dans le fichier
response-policy { zone "rpz"; };
Définition de la zone soumise à l'autorité de BIND
vim /etc/bind/named.conf.local
zone "rpz" IN {
type master;
file "/var/cache/bind/rpz";
allow-query { none; };
};
Configuration de la zone
vim /var/cache/bind/rpz
$TTL 3600
@ IN SOA localhost. root.localhost. (
2 ; serial
3H ; refresh
1H ; retry
1W ; expiry
1H) ; minimum
IN NS localhost.
ftp.fr.debian.org A IP_SERVEUR_MIROIR
security.debian.org A IP_SERVEUR_MIROIR
Redémarrer Bind
systemctl restart bind9.service