DNS = Domain Name System
FQDN = Fully Qualified Domain Name
DNS permet d'établir une correspondance entre un nom d'hôte FQDN et une adresse IP pour chaque machine des différents réseaux à tous les niveaux.
L'objectif est de pouvoir manipuler des noms plutôt que des numéros pour accéder à des machines car c'est beaucoup plus pratique.
C'est un annuaire et les domaines ont une structure hiérarchique :
Pour cela, nous allons nous basés sur le serveur DHCP et les clients que nous avons dernièrement configurés.
:link: Liens vers le cours DHCP
:no_entry_sign: Il est recommandé de sauvegarder les fichiers de configuration avant les modifications, ou de bien vouloir faire un snapshot.
Nous allons d'abord configurer la carte réseau en NAT ou Bridged pour télécharger des paquets sur Internet et ensuite nous changerons la carte reseau en VMNet1.
Dans la première étape, connectez-vous à votre machine avec un compte avec des privilèges root ou directement avec l'utilisateur root et assurez-vous que votre système Debian est à jour avec les derniers correctifs de sécurité et versions de logiciels et de packages, en exécutant la commande suivante.
apt-get update
apt-get upgrade
Le paquet dnsutils fournit des outils très pratiques pour tester et débugger le service DNS. La documentation BIND9 peut également être trouvée dans le paquet bind9-doc.
apt-get install dnsutils
apt-get install bind9-doc
Modifier la carte réseau en VmNet1 (Host Only)
Modifier le fichier /etc/dhcp/dhcpd.conf. Toute la config du serveur dhcp se trouve dans ce fichier.
nano /etc/dhcp/dhcpd.conf
Modifier le fichier hostname
nano /etc/hostname
Modifier le fichier hosts
nano /etc/hosts
Modifier le fichier host.conf
nano /etc/host.conf
Modifier le fichier named.conf qui rassemble les trois autres fichiers de configuration.
nano /etc/bind/named.conf
Modifier le fichier named.conf.options qui permet de configurer les options du serveur
nano /etc/bind/named.conf.options
Modifier le fichier named.conf.local qui est dédié à son domaine.
nano /etc/bind/named.conf.local
Copier les fichier db.local et db.127 et renommer comme ci-dessous
cp /etc/bind/db.local /etc/bind/db.formation.local
cp /etc/bind/db.127 /etc/bind/rev.formation.local
Modifier le fichier db.formation.local
nano /etc/bind/db.formation.local
Modifier le fichier rev.formation.local
nano /etc/bin/rev.formation.local
Copier les fichier db.local et db.127 dans le repertoire /var/cache/bind/
cp /etc/bind/db.local /var/cache/bind/db.formation.local
cp /etc/bind/db.127 /var/cache/bind/rev.formation.local
Modifier les droits de dossier bind
chgrp bind /var/cache/bind/*
chmod 664 /var/cache/bind/*
Modifier le fichier /etc/default/bind9
nano /etc/default/bind9
Nous allons ensuite lancer les commandes suivantes pour redémarrer le service dns.
/etc/init.d/networking restart
/etc/init.d/isc-dhcp-server restart
/etc/init.d/bind9 restart
Vérifier avec le paramètre 'status' pour consulter les details
systemctl status bind9
A l'aide de la commande nslookup nous allons donc d'interroger le serveur DNS pour obtenir les informations définies dans notre domaine formation.local
.
nslookup 192.168.65.225
nslookup windows7.formation.local
Nous allons lancer les mêmes commandes sur les clients.
Windows 7
nslookup 192.168.65.200
nslookup debian.formation.local
webmail (Client Debian)
Nous allons ensuite vérifier le comportement de DNS sur le fichier syslog et les fichiers de zone inversé.
tail -f /var/log/syslog
cat /var/cache/bind/db.formation.local
cat /var/cache/bind/rev.formation.local
interfaces
pour configurer l’ipv4 de notre serveur en ip statique.nano /etc/network/interfaces
Redémarrer le service networking et vérifier que l’adresse IP est bien configurer.
/etc/init.d/networking restart
Modifier ensuite le fichiers hosts
nano /etc/hosts
Modifier le fichier hostname.
nano /etc/hostname
Modifier le fichier resolv.conf
nano /etc/resolv.conf
Installer et activer le service ntp.
apt-get install ntp
systemctl enable ntp
Editer le ficher /etc/ntp.conf et ajoutez l’adresse de votre réseau local ainsi que l’adresse de broadcast pour la diffusion du temps sur votre réseau. Avec la directive restrict, aucun autre réseau ne pourra requêter le serveur :
nano /etc/ntp.conf
Redémarrer le service :
/etc/init.d/ntp restart
/etc/init.d/ntp status
Pour utiliser les fonctionnalités avancées de Samba4 vous avez besoin d’un système de fichiers qui prend en charge les ACL et les attributs étendus. L’option barrière=1 garantit que les transactions tdb (Tide Data Base) sont protégées contre les pertes de courant inattendues. Beaucoup ont corrompu leur base de données AD dans sam.ldb parce qu’ils n’avaient pas activé cette option.
Editer le fichier /etc/fstab :
nano /etc/fstab
Redémarrer le serveur
reboot now
Mettre à jour le système et installer les paquets nécessaires :
apt-get update && apt-get upgrade
apt-get install attr autoconf gdb bind9utils bison build-essential debhelper dnsutils docbook-xml docbook-xsl flex gdb libjansson-dev libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev libcap-dev libcups2-dev libgnutls28-dev libgpgme-dev libjson-perl libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl libpopt-dev libreadline-dev nettle-dev perl-modules-5.* pkg-config python-all-dev python-dev python-dbg python-dev python-dnspython python3-dnspython python-gpg python3-gpg python-markdown python3-markdown python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils docbook-xsl cups git libsasl2-dev libaio-dev libpam-dev valgrind autoconf ldap-utils krb5-user
apt-get install samba attr winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config libgssrpc4 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-* libldb1 libtalloc2 libtdb1 libtevent0 libwbclient0 python-ldb python-samba python-talloc python-tdb samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools krb5-doc ldbtools smbldap-tools ufw -y
Vous allez être interrogé par kerberos sur
le royaume : formation.local
Serveur Kerberos du rayaume : debian
Serveur administratif : debian
Exécuter la commande qui va promouvoir le serveur en contrôleur de domaine.
mv /etc/samba/smb.conf /tmp/
P@ssword01
qui respecte les exigences de Windows Server.Une fois l’opération terminée, on va remplacer le fichier krb5.conf d’origine par celui généré par samba-tool. D’abord, on renomme l’ancien fichier :
mv /etc/krb5.conf /etc/krb5.conf.old
Puis on copie celui généré par samba-tool. Son emplacement et affiché dans le résultat de la commande de promotion. Dans mon cas il se trouve ici :
cp /var/lib/samba/private/krb5.conf /etc/
Vérifier le fichier krb5.conf et l'adapter avec vos paramètres.
On va maintenant vérifier le redirecteur DNS qui s’est configuré dans le fichier smb.conf. C’est l’outil samba-tool qui l’a configuré automatiquement. On va donc voir si cela s’est bien produit. Si ce n’est pas le cas, on entrera l’adresse du bon redirecteur DNS. De mon côté, le redirecteur est le DNS de mon FAI.
cat /etc/samba/smb.conf
démarrer manuellement les services Samba AD en tapant simplement :
samba
Pour automatiser le démarrage des services au démarrage du système :
systemctl unmask samba-ad-dc
Puis :
systemctl enable samba-ad-dc
Après ces nombreuses manipulations, redémarrons le serveur :
reboot
Créer la zone DNS de recherche inversée (PTR) :
samba-tool dns zonecreate 192.168.65.200 65.168.192.in-addr.arpa -U administrator
Test d’authentification Kerberos, Entrer la commande suivante et le mot de passe du compte administrator devrait être demandé : ( mot de passe choisi est P@ssword01)
kinit administrator
Sur le client Windows 10 afin de configurer son réseau, le serveur de temps, installer les outils RSAT et l’intégrer au domaine. Ce sera donc un poste qui permettra l’administration du serveur avec des outils graphiques.
Loguez-vous en administrateur local pour faire les opérations suivante.
Pensez à lui donner un nom distinctif, par exemple CLI01-WIN.
On intègre maintenant le Windows 10 dans le domaine formation.local
Test de la résolution des noms avec la commande nslookup