DNS
Sommaire
Installation du DNS.................................................................................................................................2
Création zones........................................................................................................................................2
Script d’ipV6 inversée.............................................................................................................................4
Installation du DNS
//mettre une IP V6
ifconfig eth0 add [Link]/64
//install de bind9
//tout est dans /etc/bind/
Création zones
//dans /var/cache/bind/ on va créer toutes nos zones DNS.
// Création de répertoires : /Primary et /secondary et dans chaque /forward /reverse
//Dans /primary/forward/ on crée la zone [Link] à partir du fichier /etc/bind/[Link]
//on le modifie
;;;;;;;;;;;;;;;;;;
; Zone [Link] ;
;;;;;;;;;;;;;;;;;;
; Created on 09/03/2010
$TTL 1d
@ IN SOA [Link]. [Link]. (
2010030901 ; Serial
3600 ; Refresh
3600 ; Retry
3600000 ; Expire
604800 ; Negative Cache TTL
)
;
IN NS [Link].
IN NS [Link].
;;;;;;;;;;
;hosts;;
;;;;;;;;;;
ns IN AAAA [Link]
//dans /etc/bind/[Link]
zone "[Link]" {
type master;
file "primary/forward/[Link]";
}
//ensuite on fait
Rndc reload
//test
dig @::1 [Link] aaaa
//utiliser rndc-confgen
Rndc-conf –b 256 > tmp
Je découpe le fichier dans [Link] ;[Link] ; .controls
//dans [Link] je met ça :
include "/etc/bind/[Link]";
controls {
inet [Link] port 953
allow { [Link]; } keys { "rndc-key"; };
};
//dans /etc/bind/[Link]
include "/etc/bind/[Link]";
//dans [Link]
allow-transfer { none; };
//dans [Link] on ajoute
zone "[Link]" {
type slave;
file "secondary/forward/[Link]";
masters { [Link]; };
};
//on ajoute a [Link]
acl "secondaries" {
[Link]; //[Link]
};
//on ajoute à [Link]
allow-transfer { secondaries; };
//chmod
chmod 775 /var/cache/bind/secondary/forward/
chmod 775 /var/cache/bind/secondary/reverse/
//chown
chown -R root:bind /var/cache/bind/
//très pratique pour comprendre les erreurs
tail -f /var/log/syslog
//on trace avec des logs
mkdir /var/cache/bind/log
chown root:bind /var/cache/bind/log/
chmod 770 /var/cache/bind/log/
//on ajoute à [Link]
include "/etc/bind/[Link]";
//on ajoute le fichier [Link] fournis pas le prof
//On ajoute à [Link] des hosts
ns0 IN CNAME ns
ns1 IN AAAA [Link]
/ /on reload la zone
Rndc reload [Link]
//Maintenant on s’occupe des zones reverse
//dans [Link] on ajoute
zone "[Link].[Link].[Link].[Link]" {
type master;
file 'primary/reverse/[Link].[Link].[Link].[Link]";
allow-transfer { secondaries; };
};
//dans /var/cache/bind/primary/reverse
Script d’ipV6 inversée
//on crée un script perméttant de générer l’ip à mettre dans le DNS
#!/usr/bin/env python
import struct, sys
from socket import *
l = [Link]('!16B', inet_pton(AF_INET6, [Link][1]))
l = [hex( b & 0x0f)[-1]+ '.'+ hex((b & 0xf0) >> 4)[-1] for b in l]
[Link]()
l = '.'.join(l)
l += '.[Link].'
print
//version plus hard
#!/usr/bin/env python
import getopt, struct, sys
from socket import *
try:
opts, args = [Link]([Link][1:], "r", ["reverse"])
except [Link], err:
print str(err)
[Link](1)
reverse = False
for o, a in opts:
if o == "-r":
reverse = True
plen = 32
l = args[0].split('/')
if len(l) > 1:
if int(l[1]) & 3:
raise ValueError, 'prefix length must a multiple of 4'
plen = int(l[1]) >> 2
l = [Link]('!16B', inet_pton(AF_INET6, l[0]))
q = []
for b in l:
[Link](hex((b & 0xf0) >> 4)[-1])
[Link](hex(b & 0x0f)[-1])
if reverse:
q = q[plen:]
else:
q = q[:plen]
[Link]()
q = '.'.join(q)
if not reverse:
q += '.[Link].'
print q
//on ajoute de la sécurité
/usr/sbin/dnssec-keygen -k -a rsasha1 -b 2048 -n host -r /dev/urandom [Link]
//Je copie le contenu dans la zone forward [Link]
ns IN AAAA [Link]
IN KEY 512 3 5 AwEAAeMwUeE50DyfT3vCrcwMnm9u9DK3bnIZ0+PV/hxAgXT6cccDkKK5 kht
//pour tester
Dig @ ::1 [Link] aaaa
Dig @ ::1 [Link] key
DNS Dynamique
Je copie la zone [Link] en [Link]
Je modifie le fichier de la façon suivante :
;;;;;;;;;;;;;;;;;;
; Zone [Link] ;
;;;;;;;;;;;;;;;;;;
; Created on 09/03/2010
$TTL 1d
$ORIGIN [Link].
@ IN SOA [Link]. [Link]. (
1 ; Serial
3600 ; Refresh
3600 ; Retry
3600000 ; Expire
604800 ; Negative Cache TTL
)
;
IN NS [Link].
IN NS [Link].
Dans [Link] on ajoute
zone "[Link]" {
type master;
file "primary/forward/[Link]";
allow-transfer { secondaries; };
update-policy { grant [Link] subdomain [Link] AAAA TXT; };
//faire ça
chmod 775 ../forward/
//on utilise le prog du prof, on place la clé, le nom de la zone, l’ip local ::1
//on ajoute dynamiquement des enregistrements
//on test
dig @::1 [Link] TXT
//si ça marche on Remarque que c’est pas encore dans la zone [Link] mais dans un fichier
//journal en binaire.
//donc on freeze la zone
Rndc freeze [Link]
//ca supprime le journal et ajoute l’enregistrement dans la zone.