TP sysres IMA2a5 2017/2018 G5

De Wiki d'activités IMA

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.