Apache2 est un server web populaire qui permet de publier des sites via le protocole HTTP(S).
Bind9 est un server DNS (domaine name system) grâce au protocole TCP/IP il permet la correspondance entre nom de domaine et adresse IP.
Nous allons dans ce TP installer bind9 et apache2 et les configurer de manière à obtenir une page web html avec un nom de domaine associer sur notre machine locale.
Commençons par installer apache2 apt install apache2
Ensuite bind9
apt install bind9 dnsutils dnsutils permet de fournir des outils pour tester et debugger le service dns.
Une fois bind9 installer sur votre machine verifié son statut en tapant la commande systemctl status bind9
pour commencer rendez-vous dans le répertoire /etc/bind/ et ouvrez le fichier named.conf.local puis remplissez le fichier de la manière suivante à votre convenance.
Puis ouvrez le fichier db.local aprés l'avoir copié de manière à conserver une copie du fichier original.cp db.local db.votrenomdedomaine
ouvrez et remplissez le fichier de la manière suivante.
127.0.0.1 est l'adresse de boucle local donc correspond à votre machine peu importe votre adresse IP
La prochaine étapes correspond à une vérification des deux fichiers édités précédemment, nous allons donc taper la commande suivante afin de voir si il n'y a pas d'erreur de configuration.
named-checkconf puis named-checkzone www.votredomaine /etc/bind/db.votredomaine
si tout c'est bien passer nous passons à la suite sinon vérifier la syntaxe de vos fichiers et refaites le test.
Pour la suite nous devons nous deplacer dans le répértoire /var/www/html et crée un répertoire qui contiendra vôtre site en relation au nom de domaine que vous avez choisie.
mkdir /var/www/html/nomdevotrerepertoire
déplacez vous dans ce nouveau repertoire et créer un fichier index.html à l'interieur duquel vous pouvez mettre un petit mot pour tester si tout c'est bien passer exemple "bonjour bienvenu sur mon site !".
Maintenant allons dans le répertoire /etc/apache2/sites-available/ et faire une copie du fichier original cp 000-default.conf votredomaine.conf
Ouvrez le fichier et configurez le ainsi. Dans l'exemple ci-dessous les fichiers de log ont été volontairement effacer.
maintenant nous allons activé notre page web grace a la commandea2ensite votredomaine.
Redemarrer le service apache2 systemctl restart apache2
Ouvrez maintenant votre naviguateur web et tappez l'adresse du nom de domaine que vous avez choisie vous devriez tomber sur votre page index.html et voir le petit mot laisser précédemment.
Voici un script réaliser par mes soins permettant d'automatiser la creation et le deployement d'un site local à executer en root en donnant les droit d'execution au fichier.
#! /bin/bash
#saisir le nouveau nom de domaine en .com
echo "saisir un nom de domaine en .com : "; read domaine;
# verification de l'existance du domaine
if [ -f /etc/bind/db.$domaine ]
then
echo "Nom de domaine déja existant patate douce..."
else
#creation zone fichier named.conf.local
echo "
zone \"www.$domaine\"{
type master;
file\"/etc/bind/db.$domaine\";
};" >> /etc/bind/named.conf.local
#insertion date du jour en variable dans fichier db.domaine en place du serial
ddj=$(date +%Y%m%d)
#insertion valeur $ttl... cause $ qui pause probleme pour insertion d'un bloc
echo '$TTL 604800' >/etc/bind/db.$domaine
#insertion du reste du fichier dan etc/bind/db.$domaine
echo "
@ IN SOA www.$domaine. root.localhost. (
$ddj ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS $domaine.
@ IN A 127.0.0.1
www IN A 127.0.0.1" >> /etc/bind/db.$domaine
service bind9 restart 2>/dev/null
sleep 5
named-checkconf
named-checkzone www.$domaine /etc/bind/db.$domaine
#creation du dossier domaine
mkdir /var/www/html/$domaine
#index.html personaliser
echo "salut ! bienvenue sur www.$domaine" > /var/www/html/$domaine/index.html
#creation du fichier $domaine.conf dans sites-available
echo "
ServerAdmin webmaster@localhost
ServerName www.$domaine
DocumentRoot /var/www/html/$domaine
" > /etc/apache2/sites-available/$domaine.conf
sleep 5
#activation du site available en enable
a2ensite $domaine
#restart du serveur apache2
service apache2 restart
#fin de la condition else
fi
#creation d' un fichier cacher si reponse +
echo " Souhaitez-vous crée un fichier caché ? repondre O pour oui ou N pour non : "
read reponse;
if [[ $reponse = "O" ]]
then
mkdir /var/www/html/$domaine/dossier
echo "
Authuserfile /var/www/html/$domaine/dossier/.htpasswd
Authname \"access denied\"
Authtype basic
require valid-user" > /var/www/html/$domaine/dossier/.htaccess
echo "votre login est votre nom de domaine en .com "
sleep 5
echo "entrez votre mdp : "
htpasswd -d -c .htpasswd $domaine
mv .htpasswd ./ /var/www/html/$domaine/dossier 2>/dev/null
echo "
ServerAdmin webmaster@localhost
ServerName www.$domaine
DocumentRoot /var/www/html/$domaine
options indexes followsymlinks multiviews
allowoverride authconfig
require all granted
" > /etc/apache2/sites-available/$domaine.conf
sleep 2
systemctl restart apache2
else
echo " ok ma poule "
fi
Voici l'execution du script :
Si le site existe déja et que l'on ne veux pas crée de dossier cacher.