j ai un souci d installation de bind9 , dhcp est fonctionnel sur les clients , mais pas de mise a jour de bind , pas de resolution de nom.
configuration de mon reseau
dhcp et dns sur eth1
eth1 domaine debian10.exemple.com
ADSL _____(eth0)-ROUTEUR-(eth1)__
| +serveur DHCP) |
| +serveur DNS |
réseau A réseau B
192.168.1.0/24 192.168.10.0/24
| |
ordi A ordi B
192.168.1.100 192.168.10.10
#configuration a verifier sur la passerelle
/etc/hostname debian10
/etc/hosts 127.0.0.1 localhost
127.0.0.1 debian10.exemple.com => pour affecter un domaine a un client dhcp
192.168.10.1 debian10.exemple.com => sur une ip fixe
/etc/resolv.conf search exemple.com
nameserver 192.168.10.1 dns local bind9
nameserver 80.10.246.130 dns orange
CONSEILS
dans /etc/resolvconf/update-libc.d/avahi-daemon j ai un demon avahi qui cherche le dns
=> j ai desinstallé avahi-daemon ainsi que tous les managers reseau sur le serveur
sur /etc/dhcp/dhclient.conf (2 lignes decommentées)
une ligne : send host-name = gethostname(); et la ligne request pour tous les parametres reseau
Tous les clients du reseau B utilise la decouverte auto du reseau (installation par defaut de debian)
ne pas installer d utilitaire de detection des parametres (comme resolvconf ou ufw )
CONFIGURATION DES INTERFACES
nano /etc/network/interfaces
the loopback
auto lo
iface lo inet loopback
network eth0 (reseau A)
#auto eth0
allow-hotplug eth0
iface eth0 inet static
adress 192.168.1.10
network 192.168.1.0
netmask 255.255.255.0
gateway 192.168.1.1
post-up iptables-restore < /etc/iptables.save
network eth1 (reseau B)
#auto eth1
allow-hotplug eth1
iface eth1 inet static
adress 192.168.10.1
network 192.168.10.0
netmask 255.255.255.0
domain-name "exemple.com"
INSTALLATION DE BIND9
apt-get install bind9
CONFIGURATION DHCP POUR BIND (a n activer qu apres creation key et configuration de bind)
nano /etc/dhcp/dhcpd.conf
#configuration mise a jour ddns de dhcp
ddns-update-style interim ;
ddns-updates on;
ddns-domain-name-servers 192.168.10.1;
# ligne utile pour que dhcp dialogue avec bind
option domain-name-servers 192.168.10.1;
option domaine-name "exemple.com";
#donner le chemin de la clé a utiliser pour bind
include "/etc/bind/ns-exemple-com_rndc-key";
#mise a jour des zones
zone
exemple.com.
{
primary
127.0.1;
key
ns-exemple-com_rndc-key;
}
zone
10.168.192.in-addr.arpa.
{
primary
127.0.0.1;
key
ns-exemple-com_rndc-key;
}
#mon sous-réseau
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.20 192.168.10.39;
option domain-name-servers 192.168.10.1, 80.10.246.130;
option domain-name "exemple.com";
option routers 192.168.10.1;
option broadcast-adress 192.168.10.40;
pour le reste de la config dhcp , c est hors-sujet voir le wiki dhcp
CREER LA SIGNATURE TSIG
Cette signature a pour but d'authentifier les transactions avec BIND
le serveur DHCP pourra mettre le domaine exemple.com a jour que si il dispose de cette clé
on creer une copie de la clé de bind (rndc.key)
# cd /etc/bind/
# cat rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "xxxxxxxxxxxxxxxxxxxxxxx"
};
on genere une clé avec les infos du domaine et les bonnes options
dnssec-keygen -a HMAC-MD -b 512 -n USER ns-exemple-com_rndc-key
reponse:
Kns-exemple_com_rndc-key.+157+53334
on obtien 2 fichiers dans le dossier de bind , un .key et un .private
on substitue la clé du fichier ns-exemple-com_rndc-key
par celle presente dans un de ces derniers crée précédement.
on obtient
# cat ns-exemple-com_rndc-key
key "ns-exemple-com_rndc-key" {
algorithm hmac-md5;
secret "********************************************************************************"
};
le fichier ne doit pas etre readable
il sera inséré par une directive include
ps le nom de la clé doit etre conforme a la création idem a l interieur du fichier ,
pour domaine = exemple.com ce sera "ns-exemple-com_rndc-key"
la nouvelle clé (secret) apres secret entre les " " sans espaces.
supprimer les cles générées précédement (.key et .private) du dossier bind
FICHIERS DE CONFIGURATIONS
ils sont au nombre de 4
named.conf => configaration principale de bind
named.conf.options => options du serveur
named.conf.local => declaration des zones (exemple.com et inverse )
named.conf.log => créations des logs dans /var/log
1: named.conf
#gérer les acls
acl internals { 127.0.0.0/8; 192.168.10.0/24; };
# déclaration de la clé TSIG (mise a jour dynamique)
include "/etc/bind/ns-exemple.com_rndc-key";
# charger les options
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
#configurer le canal de communication pour administrer bind avec rndc
#inutile bind par defaut connait le canal
# controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; }; };
2:named.conf.options
options {
directory "/var/cache/bind";
forwarders { 80.10.246.130; };
auth-nxdomain no;
listen-on-v6 { none };
listen-on { 127.0.0.1; 192.168.10.1; };
allow-transfer { none; };
allow-query { any; };
allow-recursion { any; };
version none;
};
diminuer la temporisation de timeout pour les connection UDP
# sysctl -w net.netfilter.nf_conntrack_udp_timeout=10
pour obtenir un timeout de 10 secondes
3: Fichier named.conf.local
//gérer les fichiers de logs
include "/etc/bind/named.conf.log";
// gestion du domaine
zone "exemple.com" {
type master;
file "/var/cache/bind/db.exemple.com";
forwarders {};
allow-update { key ns-exemple-com_rndc-key; };
};
zone "10.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/db.exemple.com.inv";
forwarders {};
allow-update { key ns-exemple-com_rndc-key; };
include "/etc/bind/zones.rfc1918";
4: fichier named.conf.log
logging {
channel update_debug {
file "/var/log/update_debug.log" versions 3 size 100k;
severity debug;
print-severity yes;
print-time yes;
};
channel security_info {
file "/var/log/security_info.log" versions 1 size 100k;
severity info;
print-severity yes;
print-time yes;
};
channel bind_log {
file "/var/log/bind.log" versions 3 size 1m;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { bind_log; };
category lame-servers { null; };
category update { update_debug; };
category update-security { update_debug; };
category security { security_info; };
};
ps: pour demarrer bind , le fichier named.conf.log n est pas obligatoire suffit de commenter la ligne include
il faut créer et donner les droits des 3 fichiers de log de bind dans /var/log
il faudra créer les fichiers RR db.exemple.com et db.exemple.com.inv
utiler le db.127 , faite 2 copies , db.exemple.com et db.exemple.com.inv et modifier les valeurs
cp /etc/bind/db.127 /etc/bind/db.exemple.com (et .com.inv)
doc utilisée : https://wiki.debian.org/fr/Bind9
ajouter cette ligne a votre resolv.conf
//Fichier /etc/resolv.conf
search exemple.com
Pour la sécurite de bind
Chroot de bind voir lien ci dessus. (je n'ai pas encore teste)
il y a aussi un packet qui permet la securite de bind sur debian .
les outils de test
la commande => dig "machin.exemple.com'
la commande => nslookup "machin"
la commande => named-checkconf permet de verifier la syntaxe des fichiers de configuration de bind9
la commande => named-checkzone verifie la validité des fichiers de zone et recharge la configuration
nota: fautes de frappe ,oubli , droit des fichiers et dossiers et mauvaise config de dhcp (si mise a jour des RR actif) ,
voila les problemes rencontrés .
il vous suffit de mettre votre nom de domaine a la place de exemple.com et bind doit fonctionner correctement
desactiver le parefeu pour les tests (j'ai eu des soucis avec)sauf si vous ete sur de vous
si dhcp est bien configuré sur la passerelle , les clients en dhcp n ont pas besoin d une configuration particuliere.
@++]]>