Préambule Configurer vm-gateway Configurer vm-client Configurer vm-dns Configurer vm-dhcp Re-configurer la vm-client Configurer la vm-serveur

Préambule

  • Tout au long du tutoriel est utilisé un sous-réseau de 6 hôtes
  • Le masque de sous-réseau est donc 255.255.255.248
  • Sachant que :
> x.x.x.0 correspond à l'adresse réseau
> x.x.x.1 correspond à l'adresse de la vm-gateway
> x.x.x.2 correspond à l'adresse de la vm-dns
> x.x.x.3 correspond à l'adresse de la vm-dhcp
> x.x.x.4 correspond à l'adresse de la vm-serveur
> x.x.x.4 correspond à l'adresse de la vm-client1
> x.x.x.5 correspond à l'adresse de la vm-client2 (ou est libre)
> x.x.x.7 correspond à l'adresse broadcast
Ci-dessous figurent quelques conseils qui peuvent être utiles ! :P
  • Utiliser de préférence "adduser" au lieu de "useradd" (plus simple à utiliser)
  • Lorsqu'il faut redémarrer le service "networking", taper les DEUX commandes (et pas seulement l'une des 2) suivantes :
systemctl restart networking
/etc/init.d/networking restart

Configurer vm-gateway

0) Configurer deux réseaux
  • Réseau 1 : réseau interne
  • Réseau 2 : réseau NAT
1) Activer ip_forwarding
  • Ouvrir le fichier "/etc/sysctl.conf"
  • Aller ligne 28, puis décommenter la ligne pour avoir :
net.ipv4.ip_forward=1
  • Fermer le fichier
  • Taper "sysctl -p" pour sauvegarder.
2) Configurer les interfaces
  • Editer le fichier "/etc/network/interfaces"
  • Garder les 2 lignes pour lo
  • Configurer l'interface n°1 (enp0s3 pour Debian 9, eth0 pour Debian 8)
auto enp0s3
iface enp0s3 inet static
address 192.168.0.1
broadcast 192.168.0.7
netmask 255.255.255.248
  • Configurer l'interface n°2 (enp0s8 pour Debian 9, eth1 pour Debian 8)
auto enp0s8
iface enp0s8 inet dhcp
  • Fermer le fichier
3) IP tables
  • Taper la commande suivante (ne pas oublier de remplacer enp0s8 par eth1 si sous Debian <= 8) :
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
Si on veut que la configuration reste au prochain redémarrage, suivre les instructions ci-dessous
  • Taper la commande suivante :
iptables-save > /etc/iptables_rules.save
  • Ouvrir le fichier suivant :
/etc/network/interfaces
  • À la fin de la configuration de la première interface, ajouter la ligne suivante :
post-up iptables-restore < /etc/iptables_rules.save
  • Fermer le fichier
  • Redémarrer le service "networking"
systemctl restart networking
4) Vérification
  • Taper "/etc/init.d/networking restart"
  • Taper "ping 8.8.8.8", voir si ça fonctionne

Configurer vm-client

0) Configurer la carte réseau
  • Réseau 1 : réseau interne
1) Configurer l'interface
  • Editer le fichier "/etc/network/interfaces"
  • Garder les 2 lignes pour lo
  • Configurer l'interface n°1 (enp0s3 pour Debian 9, eth0 pour Debian 8)
auto enp0s3
iface enp0s3 inet static
address 192.168.0.5
broadcast 192.168.0.7
netmask 255.255.255.248
gateway 192.168.0.1
  • Fermer le fichier
2) Test
  • Taper "/etc/init.d/networking restart"
  • Taper "ping 192.168.0.1", voir si ça fonctionne
  • Taper "ping 8.8.8.8", voir si ça fonctionne

Configurer vm-dns

0) Configurer la carte réseau
  • Réseau 1 : réseau interne
La vm-gateway doit être lancée
1) Configurer l'interface réseau
  • Editer le fichier "/etc/network/interfaces", et configurer l'interface afin de la connecter à la vm-gateway (remplacer enp0s3 par eth0 si Debian <= 8)
  • Exemple :
auto lo
iface lo inet loopback
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.0.2
broadcast 192.168.0.7
netmask 255.255.255.248
gateway 192.168.0.1
  • Taper "systemctl restart networking"
  • Tenter de ping 8.8.8.8, vérifier que ça fonctionne
sinon, tenter après un reboot
bien vérifier son fichier "/etc/network/interfaces"
taper "systemctl status networking"
si ça fonctionne toujours pas, faut recommencer la partie vm-gateway :P
2) Installer et configurer bind9
  • Taper "apt install bind9"
  • Editer le fichier "/etc/bind/named.conf.local", y ajouter :
include "/etc/bind/named.conf.log";
zone "bsasr.lan" {
  type master;
  file "/etc/bind/db.bsasr.lan";
  forwarders {};
};
zone "0.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/db.bsasr.lan.inv";
  forwarders {};
};
  • Remplacer "0.168.192" par les trois premiers nombres de vos adresses IP de son sous-réseau, dans l'ordre inverse (donc si c'est du type "192.168.1.x", il faut écrire "1.168.192")
  • Fermer le fichier
  • Taper "touch /etc/bind/named.conf.log"
  • Taper "cp /etc/bind/db.local /etc/bind/db.bsasr.lan"
  • Ouvrir le fichier "/etc/bind/db.bsasr.lan"
  • Renommer "localhost" en "bsasr.lan" (laisser les "." à la fin du nom de domaine)
  • A la ligne "@ IN A" (avant-dernière normalement), remplacer "127.0.0.1" par l'adresse IP de la vm-dns
  • Fermer le fichier
  • Taper "cp /etc/bind/db.bsasr.lan /etc/bind/db.bsasr.lan.inv"
  • Ouvrir le fichier "/etc/bind/db.bsasr.lan.inv"
  • Supprimer les 2 dernières lignes
  • Ajouter la ligne "x IN PTR bsasr.lan.", remplacer le "x" par le dernier nombre de l'adresse IP de la vm-dns (si c'est "192.168.0.2" par exemple, remplacer "x" par "2")
  • Fermer le fichier
  • /!\ ATTENTION /!\ : Vérifier qu'il y a bien une ligne vide à la fin des 2 fichiers qui viennent d'être modifiés
3) Fichier /etc/resolv.conf
  • Editer "/etc/resolv.conf"
  • ajouter la ligne "search bsasr.lan"
  • puis ajouter la ligne "nameserver xxx.xxx.xxx.xxx" (remplacer par l'adresse IP de son vm-dns)
/!\ cette ligne doit se situer avant tous les autres nameserver /!\
  • Fermer le fichier
4) Vérifications
  • Taper "named-checkconf -z", normalement vous devriez avoir plusieurs lignes avec écrit "loaded serial x" (x était égal à un nombre)
S'il y a une erreur, recommencer depuis le début
  • Taper "named-checkzone bsasr.lan /etc/bind/db.bsasr.lan", vérifier si ça affiche bien "OK"
5) Redémarrage
  • Taper "systemctl restart networking"
  • Taper également "/etc/init.d/networking restart" (pour être sûr)
  • Taper "systemctl restart bind9"
  • Taper "systemctl status bind9", et vérifier qu'il n'y a pas eu d'erreur (vous devriez voir 2 zones en surbrillance : "all zones loaded" et "running")
  • Reboot
  • Taper la commande "ping bsasr.lan", normalement ça devrait fonctionner !

Configurer vm-dhcp

0) Configurer la carte réseau
  • Réseau 1 : réseau interne
La vm-gateway doit être lancée
1) Installation & Initialisation
  • Taper la commande suivante (il y a des erreurs qui vont s'afficher, c'est normal, ne paniquez pas) :
apt-get install isc-dhcp-server
  • Faire une copie du fichier de configuration (au cas où)
cp /etc/dhcp/dhcpd.conf ~/
  • Vider le fichier de configuration
cat /dev/null > /etc/dhcp/dhcpd.conf
2) Configuration
  • Ouvrir le fichier de configuration
/etc/dhcp/dhcpd.conf
  • Remplir le fichier ainsi :
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
option domain-name-servers 163.5.42.40, 163.5.42.41;
option domain-name "debian-dhcp";
authorative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.248 {
	range 192.168.0.5 192.168.0.6;
	option subnet-mask 255.255.255.248;
	option domain-name-servers 163.5.42.40, 163.5.42.41;
	option domain-name "debian-dhcp";
	option routers 192.168.0.1;
	get-lease-hostnames true;
	use-host-decl-names true;
	default-lease-time 600;
	max-lease-time 7200;
}
À la ligne "range", renseigner la première adresse IP puis la dernière adresse IP de la plage d'IP disponibles
À la ligne "option domain-name-servers", remplacez les deux adresses IP par celles présentes dans le fichier "/etc/resolv.conf"
À la ligne "option domain-name", remplacez le nom par celui présent dans le fichier "/etc/hostname"
À la ligne "option routers", remplacez l'IP par celle de sa vm-gateway
  • Fermer le fichier
  • Ouvrir le fichier suivant
/etc/default/isc-dhcp-server
  • Trouver la ligne suivante (normalement l'avant-dernière, si elle n'existe pas créez-la) :
INTERFACESv4=""
  • Renseigner entre les guillemets le nom de l'interface de sa machine (enp0s3 si Debian 9, eth0 sinon)
INTERFACESv4="enp0s3"
  • Fermer le ficihier
3) Redémarrage
  • Redémarrer le service suivant :
systemctl restart isc-dhcp-server
  • Vérifier son statut :
systemctl status isc-dhcp-server
S'il y a des erreurs, recommencer cette partie
4) Vérification
Reconfigurer la vm-client (voir partie correspondante).

Re-configurer la vm-client

Cette étape sert à tester que les vm-gateway et vm-dhcp fonctionnent
  • Editer le fichier "/etc/network/interfaces"
  • Supprimer toutes les configurations pour l'interface n°1 s'il y en a
  • Ajouter la configuration suivante pour la première interface :
auto enp0s3
iface enp0s3 inet dhcp
  • Fermer le fichier
  • Redémarrer le service
systemctl restart networking
/etc/init.d/networking restart
  • Taper "sudo ip a", vérifier que l'interface enp0s3 a une adresse IP de type 192.168.x.x
Sinon, recommencer à partir de l'étape vm-dhcp

Configurer la vm-serveur

La partie de la configuration de l'interface réseau n'a pas été écrite ici, vu que c'est toujours la même chose.
I) Apache
  • Taper
sudo apt install apache2
  • Plus d'infos ici :
http://httpd.apache.org/docs/2.4/install.html
II) MySQL
  • Taper
sudo apt-get install mysql
sudo apt-get install mysql-server
III) PHP
  • Taper
sudo apt-get install "*php7.0*"
IV) phpMyAdmin
  • Taper
apt-get install phpmyadmin
  • Sur la fenêtre de configuration qui s'affiche, sélectionner avec le bouton "Espace" apache2, puis valider avec "Entrée"
  • Valider à chaque fois, jusqu'à arriver à la fenêtre de configuration du mot de passe
  • Taper un mot de passe, et le retenir (bien sûr)
  • phpMyAdmin est normalement accessible via http://mon-adresse-ip/phpmyadmin
Si une étape de la configuration de phpMyAdmin a été loupée, taper "sudo dpkg-reconfigure phpmyadmin"
  • Ouvrir le fichier /etc/apache2/apache2.conf avec les droits root :
/etc/apache2/apache2.conf
  • Ajouter cette ligne à la fin du fichier :
Include /etc/phpmyadmin/apache.conf
  • Redémarrer ensuite le serveur Apache
sudo /etc/init.d/apache2 restart
V) Userdir
  • Taper
apt-get install userdir*
  • Activer le module
sudo a2enmod userdir && /etc/init.d/apache2 reload
  • Editer le fichier suivant :
/etc/apache2/mods-enabled/userdir.conf
  • Remplacer son contenu par :
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/*/public_html>
		AllowOverride All
		Options MultiViews Indexes SymLinksIfOwnerMatch
		<Limit GET POST OPTIONS>
			# Apache <= 2.2:
		        Order allow,deny
		        Allow from all
		        # Apache >= 2.4:
		        #Require all granted
		</Limit>
		<LimitExcept GET POST OPTIONS>
			# Apache <= 2.2:
		        Order deny,allow
		        Deny from all
			# Apache >= 2.4:
			#Require all denied
		</LimitExcept>
        </Directory>
</IfModule>
  • Fermer le fichier
  • Redémarrer le serveur Apache
sudo service apache2 restart
  • Créer un dossier un utilisateur
mkdir /home/$USER/public_html
Remplacer $USER par le nom d'un utilisateur existant, bien sûr
  • Normalement, il est possible d'accéder aux fichiers se trouvant dans se dossier en tapant l'url suivante :
http://mon-adresse-ip/~$USER/
Là aussi, remplacer $USER par le nom d'un utilisateur existant, cela va de soi :P
  • Pour créer un répertoire "public_html" à chaque création de nouvel utilisateur
mkdir /etc/skel/public_html
VI) Création du site internet
  • Pour créer le site intra.asr.lan
  • Depuis la machine Serveur, taper
cd /etc/apache2/sites-available/
  • Copier un exemple de fichier de configuration de site
cp 000-default.conf intra.asr.lan.conf
  • Créer et ouvrir le fichier suivant :
intra.asr.lan.conf 
  • Ajouter les lignes suivantes :
ServerName intra.asr.lan 
DocumentRoot /var/www/intra-asr
  • Activer le site
a2ensite intra.asr.lan.conf
  • Redémarrer le serveur Apache
systemctl apache2 restart
  • Créer le dossier qui accueillera les fichiers du site :
cd /var/www/
mkdir intra-asr
  • Ajouter un fichier "index.html" contenant un "Hello World"
echo "Hello World" > /var/www/intra-asr/index.html
  • Ouvrir le fichier "/etc/hosts"
  • Ajouter à la fin cette ligne :
192.168.x.x intra.asr.lan
Remplacer 192.168.x.x par l'adresse IP de sa machine serveur