TP sysres IMA2a5 2017/2018 G5
Sommaire
Paramétrage de la machine virtuelle
Configuration réseau
Nous avons créé une machine virtuelle Xen sur cordouan.insecserv.deule.net qui s'appelle deus. Nous avons mis, en attendant que notre routeur soit paramétré, une adresse IP du réseau insecure afin d'avoir accès à Internet. Une fois le routeur paramétré, nous avons mis la configuration suivante :
auto eth0 iface eth0 inet static address 193.48.57.166 netmask 255.255.255.240 gateway 193.48.57.161
Installation des paquets
Nous avons installé les paquets suivants :
apt-get install openssh-server apache2 bind9
Montage des partitions
Ensuite, nous avons monté les /var et /home sur une partition LVM de cordouan. Pour ceci nous avons, sur cordouan, créé les partition du volume logique virtual avec les commandes :
lvcreate -L10G -nIMA2A5_deus_home virtual ; mke2fs /dev/virtual/IMA2A5_deus_home lvcreate -L10G -nIMA2A5_deus_var virtual ; mke2fs /dev/virtual/IMA2A5_deus_var
Les 2 partitions ont une taille de 10 Go. Pour que notre machine virtuelle ait accès à ces 2 partitions, il faut changer la configuration de la machine virtuelle en ajoutant :
disk = [ 'file:/usr/local/xen/domains/deus/disk.img,xvda2,w', 'file:/usr/local/xen/domains/deus/swap.img,xvda1,w', 'phy:/dev/virtual/IMA2A5_deus_var,xvdb1,w', 'phy:/dev/virtual/IMA2A5_deus_home,xvdb2,w', ]
Le préfixe 'phy' est présent pour indiquer que c'est une partition physique, puis ajouter le chemin des 2 partitions créée, indiquer leur nom (qui sera accessible sur la machine virtuelle) qui sera xvdb1 et 2. Le 'w' est pour indiquer qu'on est en écriture sur le disque.
Pour l'instant, la machine virtuelle voit les 2 partitions mais rien n'est monté dessus. Pour le /home c'est tout simple: il suffit de modifier le fichier /etc/fstab et ajouter :
# <file system> <mount point> <type> <options> <dump> <pass> /dev/xvdb2 /home ext4 defaults 0 3
Maintenant il suffit de taper
mount -a
Pour que le système monte le /home sur la partition xvdb2.
Pour le /var, c'est un peu plus compliqué car le /var n'est pas vide (contrairement au /home). Il faut donc pouvoir le copier sur la nouvelle partition (xvdb1) puis monter cette partition en tant que /var. Pour se faire il faut faire comme suit :
mount /dev/xvdb1 /mnt mv /var/* /mnt/ echo "/dev/xvdb1 /var ext4 defaults 0 2" >> /etc/fstab mount -a
Paramétrage du serveur DNS
Après avoir réservé notre nom de domaine sur gandi.net (malfivanghe.space) nous avons paramétré le serveur DNS Bind9. Ajout de la règle ACL dans le fichier /etc/bind/named.conf.options afin d'autoriser le transfert depuis le serveur DNS de Gandi vers notre serveur.
acl "allowed_to_transfer" { 217.70.177.40; };
Nous avons trouvé l'adresse IP du serveur ns6.gandi.net grâce au résultat de la commande:
host ns6.gandi.net
Ensuite ajout de la configuration du domaine dans /etc/bind/named.conf.default-zones
zone "malfivanghe.space" { type master; file "/etc/bind/db.malfivanghe.space"; };
Puis création du fichier /etc/bind/db.malfivanghe.space :
@ IN SOA deus.malfivanghe.space. admin.deus.malfivanghe.space. ( 3298267243 ; Version 7200 ; Refresh (2h) 3600 ; Retry (1h) 1209600 ; Expire (14j) 259200 ) ; Minimum TTL (3j) IN NS deus.malfivanghe.space. IN NS ns6.gandi.net. IN MX 100 deus.malfivanghe.space. deus IN A 193.48.57.166 IN MX 100 deus.malfivanghe.space.
Ensuite il faut créer le glue record sur Gandi correspondant a notre machine virtuelle. Ensuite, sur l'interface web de Gandi, nous avons changé les serveurs DNS en ajoutant en primaire le notre (deus.malfivanghe.space) puis le DNS secondaire de Gandi (ns6.gandi.net). Avec l'ajout de la règle ACL pour autoriser le transfert, le serveur DNS secondaire de Gandi va peupler notre DNS.
Installation du serveur mail
Pour obtenir le lien de confirmation de la demande de certificat SSL sur Gandi, il nous faut paramétrer un client mail afin de pouvoir recevoir le mail à l'adresse admin@malfivanghe.space. Pour ceci nous installons Postfix.
apt-get install postfix bsd-mailx
Une fois installé il faut créer l'alias root qui pointe vers admin en l'ajoutant dans /etc/aliases Il faut mettre à jour la base de données des alias :
newaliases
Une fois l'alias et le client mail installé, nous pouvons recevoir le mail de confirmation du certificat SSL.
Sécurisation du site web avec le certificat SSL
Après avoir récupéré notre certificat SSL, puis récupéré le certificat intermédiaire de Gandi, on active le module ssl sur apache2. Pour activer le module ssl il faut taper la commande suivante :
a2enmod ssl service apache2 restart
Une fois le module activé, il faut modifier le fichier de configuration dans /etc/apache2/sites-available/default-ssl.conf en ajoutant les lignes suivantes :
ServerName malfivanghe.space SSLEngine on SSLCertificateFile /etc/ssl/certs/malfivanghe.crt SSLCertificateKeyFile /etc/ssl/private/malfivanghe.key SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
Puis, pour activer cette configuration il faut taper la commande :
a2ensite default-ssl service apache2 restart
Pour se connecter en HTTPS au site web, il faut absolument entrer l'URL https://www.malfivanghe.space qui correspond au CN de notre certificat. Le nom de machine deus n'est donc pas connu par l'autorité de certification.
Sécurisation du serveur DNS avec DNSSEC
Pour sécuriser le serveur DNS avec DNSSEC nous allons signer la zone correspondant à notre nom de domaine. Tout d'abord il faut ajouter l'option du dnssec pour l'activer dans /etc/bind/named.conf.options
dnssec-validation auto;
Ensuite, nous allons créer les clés KSK et ZSK dans un dossier créé dans /etc/bind/ qui a pour nom db.malfivanghe.space.dnssec. Pour créer les clés, on se déplace dans ce nouveau dossier et on génère les clés et on les renomme :
dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE malfivanghe.space mv Kmalfivanghe.space.+005+48301.key malfivanghe.space-ksk.key mv Kmalfivanghe.space.+005+48301.private malfivanghe.space-ksk.private dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE malfivanghe.space mv Kmalfivanghe.space.+005+15831.key malfivanghe.space-zsk.key mv Kmalfivanghe.space.+005+15831.private malfivanghe.space-zsk.private
Puis on ajoute les .key dans le fichier de zone /etc/bind/db.malfivanghe.space en ajoutant les lignes suivantes :
$include /etc/bind/db.malfivanghe.space.dnssec/malfivanghe.space-ksk.key $include /etc/bind/db.malfivanghe.space.dnssec/malfivanghe.space-zsk.key
Il faut également incrémenter le numéro de la version pour éviter une source d'erreur.
Ensuite il faut signer les enregistrements de la zone.
dnssec-signzone -o malfivanghe.space -k malfivanghe.space-ksk ../db.malfivanghe.space malfivanghe.space-zsk
Puis ajouter notre clé KSK sur la gestion du DNSSEC sur le site de Gandi.
Test d'intrusion
Nous avons réalisé un test d'intrusion en cassant une clé WEP par force brute à l'aide du paquet aircrack-ng. Tout d'abord il faut installer le paquet
apt install aircrack-ng
Ensuite, il faut lister toutes les bornes présentes autour de nous afin de repérer la borne que nous allons casser.
airodump-ng --encrypt wep wlan0
Une fois que le scan est terminé nous avons la liste de toutes les bornes avec leur canal de diffusion ainsi que leur SSID.
Il suffit maintenant de lancer la commande suivante
airodump-ng -w out -c 11 --essid SSID wlan0
Le SSID se situe dans la colonne essid dans le retour de la commande précédente. De même pour le canal, nous trouvons le canal 11 dans le retour de la commande précédente. Cette commande va créer un fichier qu'il suffit d'utiliser dans la commande suivante :
aircrack-ng out-01.cap
Au bout de 4-5 minutes, nous obtenons la clé WEP.
Par manque de temps nous n'avons pas eu le temps de faire l'attaque WPA2 par force brute.
Mise en place du serveur de backup pour les machines virtuelles
Mise en place du serveur pĥysique
Nous avons déplacé le serveur de la salle de projets vers le local technique situé à l'étage inférieur. Nous avons branché le serveur sur le VLAN correspondant au TP.
Détection des disques
Nous avons récupéré la configuration de l'ancien projet et lors de la détection des disques nous avons observé que la partition LVM correspondant à la sauvegarde des machines était en état fail.
array B (SATA, Unused Space: 0 MB)
logicaldrive 2 (5.5 TB, RAID 1+0, FAILED)
physicaldrive 1E:1:1 (port 1E:box 1:bay 1, SATA, 1 TB, OK) physicaldrive 1E:1:2 (port 1E:box 1:bay 2, SATA, 1 TB, OK) physicaldrive 1E:1:3 (port 1E:box 1:bay 3, SATA, 1 TB, OK) physicaldrive 1E:1:4 (port 1E:box 1:bay 4, SATA, 1 TB, OK) physicaldrive 1E:1:5 (port 1E:box 1:bay 5, SATA, 1 TB, OK) physicaldrive 1E:1:6 (port 1E:box 1:bay 6, SATA, 1 TB, OK) physicaldrive 1E:1:7 (port 1E:box 1:bay 7, SATA, 1 TB, OK) physicaldrive 1E:1:8 (port 1E:box 1:bay 8, SATA, 1 TB, OK) physicaldrive 1E:1:9 (port 1E:box 1:bay 9, SATA, 1 TB, OK) physicaldrive 1E:1:10 (port 1E:box 1:bay 10, SATA, 1 TB, OK) physicaldrive 1E:1:11 (port 1E:box 1:bay 11, SATA, 1 TB, OK) physicaldrive 1E:1:12 (port 1E:box 1:bay 12, SATA, 1 TB, OK)
Nous avons donc supprimé cette partition logique
hpssacli ctrl slot=4 ld 2 delete
Pour la recréer ensuite afin d'être en état OK.
hpssacli ctrl slot=4 create type=ld drives=1E:1:1,1E:1:2,1E:1:3,1E:1:4,1E:1:5,1E:1:6,1E:1:7,1E:1:8,1E:1:9,1E:1:10,1E:1:11,1E:1:12 raid=1+0
Montage du disque logique
Pour monter le disque logique sur le serveur Baleine il faut repérer le nom du disque.
ls /dev/cciss/
On observe que notre disque se situe sur /dev/cciss/c0d1. Il suffit maintenant de l'ajouter dans /etc/fstab :
/dev/cciss/c0d1 /backup ext4 defaults 0 2
Pour tester si cela fonctionne il faut soit redémarrer le serveur soit lancer la commande
mount -a
Puis vérifier sa présence en tapant
df -h
Partage du disque en NFS
Pour partager ce disque en NFS, il faut ajouter la ligne suivant dans /etc/exports
/backup/vm_backup cordouan.insecserv.deule.net(rw,sync,no_root_squash)
Qui permet à Cordouan de pouvoir accéder au dossier de backup en NFS.
Scripts permettant la sauvegarde des VM
Nous avons pris les scripts de l'ancien projet sans rien toucher afin de tester le bon fonctionnement. L'explication des scripts se trouve ici.
Nous avons eu un petit problème car pour monter le dossier de backup de baleine sur Cordouan, le script crée le point de montage sur /mnt/backup et fais la sauvegarde, donc le tar qui est effectué a donc /mnt/backup en début du chemin absolu. Une idée a donc émergé pour supprimer ce début de chemin absolu, ça serait de modifier le script qui lance les sauvegardes et modifier le point de montage du dossier NFS en le placant directement à la racine, cela pourrait être une solution mais qui n'a pas été testée.