Cahier 2017 groupe n°5 : Différence entre versions

De Wiki d'activités IMA
(Mise en réseau et création de conteneurs sous Machine Virtuelle Linux)
(Travail effectué)
Ligne 484 : Ligne 484 :
  
 
     cryptsetup luksOpen /dev/sdb1 banane-crypt
 
     cryptsetup luksOpen /dev/sdb1 banane-crypt
 +
 +
 +
====<span style="color:#4169E1">Crackage de clef WEP sur Point d'accès Wi-Fi</span>====
 +
 +
 +
root@zabeth17:/home/pifou# nping --arp-type ARP -c 11000  --flags rst --ttl 2 10.2.0.2
 +
 +
Starting Nping 0.7.60 ( https://nmap.org/nping ) at 2017-12-12 15:13 GMT
 +
SENT (0.0373s) ARP who has 10.2.0.2? Tell 172.26.145.112
 +
RCVD (0.2238s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32
 +
SENT (1.0378s) ARP who has 10.2.0.2? Tell 172.26.145.112
 +
RCVD (1.2438s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32
 +
SENT (2.0387s) ARP who has 10.2.0.2? Tell 172.26.145.112
 +
RCVD (2.0638s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32
 +
SENT (3.0399s) ARP who has 10.2.0.2? Tell 172.26.145.112
 +
RCVD (3.0839s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32
 +
SENT (4.0419s) ARP who has 10.2.0.2? Tell 172.26.145.112
 +
RCVD (4.1078s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32
 +
SENT (5.0439s) ARP who has 10.2.0.2? Tell 172.26.145.112
 +
 +
root@zabeth17:/home/pifou# cat /etc/network/interfaces
 +
# This file describes the network interfaces available on your system
 +
# and how to activate them. For more information, see interfaces(5).
 +
 +
source /etc/network/interfaces.d/*
 +
 +
# The loopback network interface
 +
auto lo
 +
iface lo inet loopback
 +
 +
auto wlx000fb5922374
 +
iface wlx000fb5922374 inet static
 +
wireless-keymode open
 +
wireless-mode managed
 +
address 10.2.0.100
 +
netmask 255.255.0.0
 +
wireless-essid banane
 +
wireless-key 01234567891011121314151617
 +
 +
 +
airmon-ng start wlx000fb5922374
 +
root@zabeth17:/home/pifou# iwconfig
 +
docker0  no wireless extensions.
 +
 +
vmnet1    no wireless extensions.
 +
 +
vmnet8    no wireless extensions.
 +
 +
lo        no wireless extensions.
 +
 +
vethea48f02  no wireless extensions.
 +
 +
vethc680cf4  no wireless extensions.
 +
 +
enp6s0    no wireless extensions.
 +
 +
veth27a815a  no wireless extensions.
 +
 +
veth3773236  no wireless extensions.
 +
 +
vethf9b8093  no wireless extensions.
 +
 +
enp0s25  no wireless extensions.
 +
 +
wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.447 GHz  Tx-Power=15 dBm 
 +
          Retry short limit:7  RTS thr:off  Fragment thr:off
 +
          Power Management:off
 +
         
 +
bridge    no wireless extensions.
 +
 +
vethb5bee00  no wireless extensions.
 +
 +
veth12b76b4  no wireless extensions.
 +
 +
 +
 +
root@zabeth17:/home/pifou# airodump-ng --encrypt wep wlan0mon
 +
 +
CH  8 ][ Elapsed: 6 s ][ 2017-12-12 15:04                                       
 +
                                                                                                       
 +
BSSID              PWR  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
 +
                                                                                                       
 +
C4:14:3C:12:61:C2  -67      26        0    0  9  54e. WEP  WEP        BORNE_TEST3                 
 +
C4:14:3C:12:61:C1  -61      28        0    0  9  54e. WEP  WEP        BORNE_TEST2                 
 +
C4:14:3C:40:78:60  -70      21        0    0  3  54e. WEP  WEP        ananas                       
 +
C4:14:3C:40:78:63  -76      20        0    0  3  54e. WEP  WEP        goyave                       
 +
C4:14:3C:12:61:C4  -68      25        0    0  9  54e. WEP  WEP        BORNE_TEST5                 
 +
C4:14:3C:12:61:C0  -68      27        0    0  9  54e. WEP  WEP        BORNE_TEST1                 
 +
C4:14:3C:12:61:C3  -63      25        0    0  9  54e. WEP  WEP        BORNE_TEST4                 
 +
C4:14:3C:40:78:61  -73      16        0    0  3  54e. WEP  WEP        banane                       
 +
C4:14:3C:40:78:64  -68      14        0    0  3  54e. WEP  WEP        groseille                   
 +
C4:14:3C:40:78:65  -74      22        0    0  3  54e. WEP  WEP        reseau1                     
 +
C4:14:3C:12:61:C5  -59      24        0    0  9  54e. WEP  WEP        BORNE_TEST6                   
 +
C4:14:3C:40:78:62  -72      16        0    0  3  54e. WEP  WEP        durian                       
 +
C4:14:3C:40:78:67  -77      16        0    0  3  54e. WEP  WEP        tomate                       
 +
                                                                                                       
 +
BSSID              STATION            PWR  Rate    Lost    Frames  Probe                             
 +
                                                                                                       
 +
(not associated)  AC:AF:B9:B0:DF:32  -75    0 - 1      0        1  PolytechLille                     
 +
(not associated)  B8:08:D7:16:6E:69  -73    0 - 1      0        1                                     
 +
(not associated)  60:F4:45:D0:DA:DB  -73    0 - 1      0        2  PolytechLille 
 +
 +
 +
 +
airodump-ng --bssid C4:14:3C:40:78:61 -c 3 -w crack_wep wlan0mon
 +
# -c 3 précise que le réseau est sur le channel 3.
 +
# -w crack_wep est le fichier qui va stocker les paquets capturé.
 +
 +
 +
 +
 +
 +
 +
 +
  
 
====<span style="color:#4169E1">Mise en réseau et création de conteneurs sous Machine Virtuelle Linux</span>====
 
====<span style="color:#4169E1">Mise en réseau et création de conteneurs sous Machine Virtuelle Linux</span>====

Version du 12 décembre 2017 à 16:09

Présentation générale

Mise en contexte

Le projet de Réseau Avancé est composé d'une partie commune et d'une tâche particulière par binôme. Ce projet consiste en la configuration d'une architecture réseau avec différentes parties, en plus du câblage et de la configuration des routeurs et commutateurs.


La partie commune consiste en la création et la mise en réseau d'une machine virtuelle; ainsi que la création d'un site sécurisé avec la configuration du serveur SSH, DNS sécurisé et du certificat SSL. La virtualisation permet de faire fonctionner sur une même machine plusieurs OS isolés ou des logiciels grâce aux machines virtuelles. Au-delà de la réduction des coûts, la virtualisation permet aussi de manipuler et gérer plus facilement des OS. Cependant, on s'oriente de plus en plus vers l'isolation par des conteneurs car ils permettent au sein d'un même OS, d'isoler les ressources matérielles et d'éviter des surcharges.

Notre tâche particulière est donc de réaliser la gestion des conteneurs au sein d'une machine virtuelle configurée en réseau.

Tâches à effectuer

  • Création d'une machine virtuelle sur le serveur de virtualisation Cordouan
  • Mettre la machine virtuelle en réseau
  • Configuration des services Internet (Serveur SSH, DNS, DNSSEC, Certificat SSL)
  • Crackage de clé Wi-Fi
  • Créer les différents conteneurs et configurer leur accès au réseau (tâche particulière)

Travail effectué

Création d'une machine virtuelle Xen sur Cordouan

On commence par créer une machine virtuelle Xen sur le serveur de virtualisation cordouan.insecserv.deule.net. On se connecte tout d'abord en SSH sur le serveur cordouan.

      ssh root@cordouan.insecserv.deule.net
      Mot de passe: mot de passe root habituel

On précise:

  • le nom de machine virtuelle: IMA5-BANANE
  • son adresse IP sur le réseau: 193.48.57.179/28
  • le répertoire où créer les disques virtuels: /usr/local/xen
  • le miroir Debian: http://debian.polytech-lille.fr/debian
  • la distribution: jessie (qui est la distribution stable courante)
      xen-create-image --hostname=<IMA5-BANANE> --ip 193.48.57.179/28 --dir /usr/local/xen --netmask=255.255.255.240 --gateway=193.48.57.177 --mirror=http://debian.polytech-lille.fr/debian/ --dist=jessie

On modifie le fichier de configuration de la machine virtuelle pour faire en sorte que les répertoires var et home de la machine virtuelle soient sur des partitions LVM de l'hôte. Installez les paquetages nécessaires pour SSH, le serveur Web apache2 et le serveur DNS bind (voir la partie services).

      xl create /etc/xen/IMA5-BANANE.cfg
      vi /etc/xen/IMA5-BANANE.cfg
      lvcreate -L 10G -n /dev/virtual/IMA5-BANANE-home -v
      lvcreate -L 10G -n /dev/virtual/IMA5-BANANE-var -v
      root@cordouan:~# cat /etc/xen/IMA5-BANANE.cfg
      #
      # Configuration file for the Xen instance IMA5-BANANE, created
      # by xen-tools 4.5 on Mon Sep 11 19:01:21 2017.
      #
      #
      #  Kernel + memory size
      #
      kernel      = '/boot/vmlinuz-3.16.0-4-amd64'
      extra       = 'elevator=noop'
      ramdisk     = '/boot/initrd.img-3.16.0-4-amd64'
      vcpus       = '1'
      memory      = '512'
      #
      #  Disk device(s).
      #
      root        = '/dev/xvda2 ro'
      disk        = [
                 'file:/usr/local/xen/domains/IMA5-BANANE/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/IMA5-BANANE/swap.img,xvda1,w',
                 'phy:/dev/virtual/IMA5-BANANE-home,xvdb1,w',
 		  'phy:/dev/virtual/IMA5-BANANE-var,xvdc1,w',		 
      #
      #  Physical volumes
      #
      #
      #  Hostname
      #
      name        = 'IMA5-BANANE'  
      #
      #  Networking
      #
      vif         = [ 'ip=193.48.57.179/28 ,mac=00:16:3E:56:71:47,bridge=IMA5sc' ]       
      #
      #  Behaviour
      on_poweroff = 'destroy'
      on_reboot   = 'restart'
      on_crash    = 'restart'

IMA5-BANANE.png

On modifie le fichier de configuration en faisant en sorte que les répertoires var et home de la machine virtuelle soient sur des partitions LVM de l'hôte:

  • la mémoire attribuée: 512 Mo
  • l'adresse ip de la MV: 193.48.57.179/28
  • bridge: IMA5sc
      xl list
      root@cordouan:~# xl list
      Name                                        ID   Mem VCPUs	State	Time(s)
      Domain-0                                     0  1993     8     r-----   52219.3
      karmeliett                                   1   128     1     -b----    2483.6
      duvel                                        2   512     1     -b----    4225.6
      deus                                         3   512     1     -b----    4226.4
      trappe                                       4   512     1     -b----    4082.4
      Rincecochon                                  6   512     1     -b----    3788.2
      IMA5-Durian                                 62   512     1     -b----    3237.7
      IMA5-BANANE                                 84   512     1     -b----     152.9
      IMA5-Papaye                                 89   512     1     -b----      35.4
      IMA5-Ananas                                 91   512     1     -b----      27.0

On vérifie que la MV IMA5-BANANE a bien été créée.

      xl console IMA5-BANANE

On lance IMA5-BANANE en utilisant le log root et le mot de passe configuré.

Commandes de base pour démarrer la VM proprement:

   ssh root@cordouan.insecserv.deule.net
   xl create /etc/xen/IMA5-BANANE.cfg
   ssh username@weppes
   ssh root@193.48.57.179

Services Internet (SSH, DNS sécurisé et certificat SSL)

On configure à présent les services Internet après avoir acheté un nom de domaine (https://www.banane.space) sur gandi.net pour créer notre site Web sécurisé.

Serveur SSH

Sur notre machine virtuelle, nous avons configuré le fichier sshd_config (PubkeyAuthentication ) :

   root@IMA5-BANANE:~# vim /etc/ssh/sshd_config
      
   RSAAuthentication yes
   PubkeyAuthentication yes
   #AuthorizedKeysFile     %h/.ssh/authorized_keys
   PermitRootLogin yes
      
   root@IMA5-BANANE:~# service ssh restart
Certification SSL

Nous commencons par acheter un certificat SSL. Puis, sur la VM nous générons le CSR grâce à cette commande:

   root@IMA5-BANANE:/etc/apache2/sites-available/clef# openssl req -nodes -newkey rsa:2048 -sha256 -keyout banane.key -out banane.csr
   Generating a 2048 bit RSA private key
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:FR
   State or Province Name (full name) [Some-State]:Nord
   Locality Name (eg, city) []:Lille
   Organization Name (eg, company) [Internet Widgits Pty Ltd]:PolytechLille
   Organizational Unit Name (eg, section) []:IMA
   Common Name (e.g. server FQDN or YOUR name) []:banane.space
   Email Address []:
   A challenge password []:
   An optional company name []:
   root@IMA5-BANANE:/etc/apache2/sites-available/clef# ls banane.csr banane.key
   root@IMA5-BANANE:/etc/apache2/sites-available/clef# cat banane.csr
   -----BEGIN CERTIFICATE REQUEST-----
   <CSR à renseigner sur Gandi lors de l'achat du certificat>
   -----END CERTIFICATE REQUEST-----

Pour recevoir le mail contenant le lien pour activer le certificat, nous installons les packages suivants :

   root@IMA5-BANANE:~# apt-get install postfix mailx

Une fois le certificat récupéré, nous les copions tous dans le bon répertoire, puis nous hashons le tout :

   root@IMA5-BANANE:/etc/bind# cp certificat.crt /etc/ssl/certs/banane.space.crt
   root@IMA5-BANANE:/etc/bind# cp serveur.key /etc/ssl/private/banane.space.key
   root@IMA5-BANANE:/etc/bind# cp GandiStandardSSLCA2.pem /etc/ssl/certs/GandiStandardSSLCA2.pem
   root@IMA5-BANANE:/etc/bind# c_rehash /etc/ssl/certs

Enfin, la dernière étape consiste en la modification des fichiers 000-banane.space-ssl.conf et ports.conf :

   root@IMA5-BANANE:/etc/apache2/sites-available# cat 000-banane.space-ssl.conf 
    <VirtualHost *:443>
        ServerName www.banane.space
        ServerAlias banane.space
        DocumentRoot /var/www/
        CustomLog /var/log/apache2/secure_access.log combined
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/banane.space.crt
        SSLCertificateKeyFile /etc/ssl/private/banane.space.key
        SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
        SSLVerifyClient None
    </VirtualHost>
   root@IMA5-BANANE:/etc/apache2# cat ports.conf 
   Listen 80
   <IfModule ssl_module>
   Listen 443
   </IfModule>
   <IfModule mod_gnutls.c>
   Listen 443
   </IfModule>

Un redémarrage du service apache2 est maintenant nécessaire :

   root@IMA5-BANANE:/etc/apache2# service apache2 stop
   root@IMA5-BANANE:/etc/apache2# service apache2 start
   root@IMA5-BANANE:/etc/apache2# service apache2 reload

Nous pouvons voir que notre site est maintenant sécurisé, un cadenas vert est bien présent.

Serveur DNS

On commence par modifier les informations de notre nom de domaine sur le site de Gandi. Ensuite, dans "Gérer les Glue Records", nous modifions les informations concernant notre nom de domaine.

  • nom du serveur: ns.banane.space
  • adresse IP: 193.48.57.179
  • serveurs de nom:
    • DNS1: ns.banane.space
    • DNS2: ns6.gandi.net (serveur secondaire de Gandi)

Une fois ces étapes effectuées, nous pouvons passer à la configuration du DNS avec bind. On se place alors dans le dossier /etc/bind de notre machine virtuelle. Nous modifions dans un premier temps le fichier named.conf.local afin d'y créer nos zones :

   root@IMA5-BANANE:/etc/bind# vim /etc/bind/named.conf.local
zone "banane.space" IN {
            type master;
            file "/etc/bind/db.banane.space";
       };

On créée ensuite le fichier db.banane.space:

$TTL    604800
@       IN      SOA     ns.banane.space. root.banane.space. (
                      2016113007       ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.banane.space. 
@       IN      NS      ns6.gandi.net.
ns      IN      A       193.48.57.179
www     IN      A       193.48.57.179
@       IN      A       193.48.57.179

   root@IMA5-BANANE:/etc/bind# vim /etc/resolv.conf
   search banane.space
   nameserver 193.48.57.179
DNS SEC

Génération des clefs asymétriques:

   root@IMA5-BANANE: dnssec-keygen -a RSASHA1 -b 2048 -r /dev/urandom -f KSK -n ZONE banane.space
   root@IMA5-BANANE: dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE banane.space

On modifie le nom des clefs:

   root@IMA5-BANANE:/etc/bind/banane.space.dnssec# ls
   banane.space-ksk.key	  banane.space-zsk.key	    dsset-banane.space.
   banane.space-ksk.private  banane.space-zsk.private


Nous signons ensuite les zones:

   root@IMA5-BANANE: dnssec-signzone -o banane.space -k banane.space-ksk ../db.banane.space banane.space-zsk

Pour finir nous ajoutons la clef KSK sur Gandi avec l'algorithme RSA/SHA1. On vérifie que le DNSSEC est bien mis en place.

DNSSEC.png

Sécurisation des données

Nous créons trois nouvelles partitions qui vont représenter nos disques.

      vi /etc/xen/IMA5-BANANE.cfg
      lvcreate -L 10G -n /dev/virtual/banane-1 -v
      lvcreate -L 10G -n /dev/virtual/banane-2 -v
      lvcreate -L 10G -n /dev/virtual/banane-3 -v

Nous ajoutons ces partitions dans la machine virtuelle via le fichier IMA5-BANANE.conf

      root@cordouan:~# cat /etc/xen/IMA5-BANANE.cfg
      #
      # Configuration file for the Xen instance IMA5-BANANE, created
      # by xen-tools 4.5 on Mon Sep 11 19:01:21 2017.
      #
      #
      #  Kernel + memory size
      #
      kernel      = '/boot/vmlinuz-3.16.0-4-amd64'
      extra       = 'elevator=noop'
      ramdisk     = '/boot/initrd.img-3.16.0-4-amd64'
      vcpus       = '1'
      memory      = '512'
      #
      #  Disk device(s).
      #
      root        = '/dev/xvda2 ro'
      disk        = [
                 'file:/usr/local/xen/domains/IMA5-BANANE/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/IMA5-BANANE/swap.img,xvda1,w',
                 'phy:/dev/virtual/IMA5-BANANE-home,xvdb1,w',
 		  'phy:/dev/virtual/IMA5-BANANE-var,xvdc1,w',
                 'phy:/dev/virtual/banane-1,xvdd,w',
                 'phy:/dev/virtual/banane-2,xvde,w',
                 'phy:/dev/virtual/banane-3,xvdf,w',		 
      #
      #  Physical volumes
      #
      #
      #  Hostname
      #
      name        = 'IMA5-BANANE'  
      #
      #  Networking
      #
      vif         = [ 'ip=193.48.57.179/28 ,mac=00:16:3E:56:71:47,bridge=IMA5sc' ]       
      #
      #  Behaviour
      on_poweroff = 'destroy'
      on_reboot   = 'restart'
      on_crash    = 'restart'


On installe mdadm dans notre MV

   apt-get install mdadm

Nous avons ensuite installé l paquetage mdadm puis rebooté la MV.

   mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=3 /dev/xvdd /dev/xvde /dev/xvdf

Nous créons le volume /dev/md0 pour créer un RAID5 logiciel avec les trois partitions obtenues. On sauvegarde ensuite la configuration actelle.

   root@IMA5-BANANE:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf
   root@IMA5-BANANE:~# mkfs /dev/md0
   root@IMA5-BANANE:~# mkdir /datamd0
   root@IMA5-BANANE:/datamd0# mount /dev/md0 /datamd0/

Ensuite il faut éditer le fichier /etc/fstab en rajoutant la ligne suivante à la fin du fichier afin d'être sûr que la partition soit encore montée après le reboot:

   /dev/md0 /datamd0

Nous créons un fichier texte sur le raid5:

   root@IMA5-BANANE:/datamd0# vim raid5test.txt

Pour avoir le détail de la configuration actuelle:

   root@IMA5-BANANE:~# mdadm --detail /dev/md0
 /dev/md0:
       Version : 1.2
 Creation Time : Wed Oct 25 18:27:13 2017
    Raid Level : raid5
    Array Size : 2095104 (2046.34 MiB 2145.39 MB)
 Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
  Raid Devices : 3
 Total Devices : 3
   Persistence : Superblock is persistent
   Update Time : Wed Oct 25 17:03:20 2017
         State : clean 
Active Devices : 3
Working Devices : 3
Failed Devices : 0
 Spare Devices : 0
        Layout : left-symmetric
    Chunk Size : 512K
          Name : IMA5-BANANE:0  (local to host IMA5-BANANE)
          UUID : b70ad336:fb198d84:a5909f1c:f4b33229
        Events : 2
   Number   Major   Minor   RaidDevice State
      0     202       48        0      active sync   /dev/xvdd
      1     202       64        1      active sync   /dev/xvde
      2     202       80        2      active sync   /dev/xvdf


Nous arrêtons la MV, mettons en commentaire la 1ère partition dans le fichier de configuration, puis redémarrons la machine. On constaste que la premiere partition a été "removed":

   root@IMA5-BANANE:~# mdadm --detail /dev/md0
 /dev/md0:
       Version : 1.2
 Creation Time : Wed Oct 25 18:27:13 2017
    Raid Level : raid5
    Array Size : 2095104 (2046.34 MiB 2145.39 MB)
 Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
  Raid Devices : 3
 Total Devices : 2
   Persistence : Superblock is persistent
   Update Time : Wed Oct 25 18:51:56 2017
         State : clean, degraded 
Active Devices : 2
Working Devices : 2
Failed Devices : 0
 Spare Devices : 0
        Layout : left-symmetric
    Chunk Size : 512K
          Name : IMA5-BANANE:0  (local to host IMA5-BANANE)
          UUID : b70ad336:fb198d84:a5909f1c:f4b33229
        Events : 12
   Number   Major   Minor   RaidDevice State
      0       0        0        0      removed
      1     202       64        1      active sync   /dev/xvde
      2     202       80        2      active sync   /dev/xvdf


On voit bien qu'une partition a été supprimée mais que le fichier créé auparavant est toujours présent:

   root@IMA5-BANANE:~# ls /datamd0/
   raid5test.txt

Pour remettre la partition dans le raid5 il faut taper la commande suivante

   root@IMA5-BANANE:~# mdadm --add /dev/md0 /dev/xvdd

Pour le test de réparation, afin de bien voir l'avancement de la reconstruction, nous avons procédé comme dans l'exemple du cours: Suppression de la partition xvdd:

   root@IMA5-BANANE:~# mdadm --set-faulty /dev/md0 /dev/xvdd
   root@IMA5-BANANE:~# mdadm --remove /dev/md0 /dev/xvdd
La partition est bien supprimée:
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

On remet à présent la partition supprimée:

   root@IMA5-BANANE:~# mdadm --add /dev/md0 /dev/xvdd

On essaie ensuite de remonter le RAID5 et on peut constater l'avancement de la reconstruction en lançant la même commande assez régulièrement:

   root@IMA5-BANANE:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[3] xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
     [===========>.........]  recovery = 59.7% (627140/1047552) finish=0.2min speed=28506K/sec
unused devices: <none>
root@IMA5-BANANE:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[3] xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
     [============>........]  recovery = 64.5% (676392/1047552) finish=0.2min speed=29408K/sec     
unused devices: <none>
root@IMA5-BANANE:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[3] xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
     [=============>.......]  recovery = 66.2% (695080/1047552) finish=0.2min speed=28961K/sec     
unused devices: <none>
root@IMA5-BANANE:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[3] xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
     [=============>.......]  recovery = 68.1% (714664/1047552) finish=0.1min speed=28586K/sec
unused devices: <none>
root@IMA5-BANANE:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[3] xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
     [==================>..]  recovery = 94.6% (991996/1047552) finish=0.0min speed=29206K/sec   
unused devices: <none>
root@IMA5-BANANE:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 xvdd[3] xvde[1] xvdf[2]
     2095104 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]     
unused devices: <none>

Cryptage des données

Nous n'avons qu'une carte SD pour tous les binômes. On crée donc un disque logiciel localement sur /dev/mmcblk1 nous-mêmes pour effectuer son cryptage en AES avec un hachage SHA256 et on renseigne un mot de passe de cryptage.

   cryptsetup luksFormat -c aes -h sha256 /dev/mmcblk1

Nous ouvrons la partition Luks, puis nous formatons le disque :

   cryptsetup luksOpen /dev/sdb1 banane-crypt
   mkfs.ext4 /dev/mapper/banane-crypt

On monte le disque et on crée un fichier avec du texte dessus.

   mount /dev/mapper/banane-crypt /mnt
   vi /mnt/test.txt

On démonte ensuite le disque et on ferme la partition Luks.

   umount /mnt
   cryptsetup luksClose banane-crypt

Pour vérifier le cryptage de notre disque, on tente d'accéder de nouveau au disque et on s'aperçoit qu'on nous demande le mot de passe.

   cryptsetup luksOpen /dev/sdb1 banane-crypt


Crackage de clef WEP sur Point d'accès Wi-Fi

root@zabeth17:/home/pifou# nping --arp-type ARP -c 11000 --flags rst --ttl 2 10.2.0.2

Starting Nping 0.7.60 ( https://nmap.org/nping ) at 2017-12-12 15:13 GMT SENT (0.0373s) ARP who has 10.2.0.2? Tell 172.26.145.112 RCVD (0.2238s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32 SENT (1.0378s) ARP who has 10.2.0.2? Tell 172.26.145.112 RCVD (1.2438s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32 SENT (2.0387s) ARP who has 10.2.0.2? Tell 172.26.145.112 RCVD (2.0638s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32 SENT (3.0399s) ARP who has 10.2.0.2? Tell 172.26.145.112 RCVD (3.0839s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32 SENT (4.0419s) ARP who has 10.2.0.2? Tell 172.26.145.112 RCVD (4.1078s) ARP reply 10.2.0.2 is at 00:00:0C:9F:F0:32 SENT (5.0439s) ARP who has 10.2.0.2? Tell 172.26.145.112

root@zabeth17:/home/pifou# cat /etc/network/interfaces

  1. This file describes the network interfaces available on your system
  2. and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

  1. The loopback network interface

auto lo iface lo inet loopback

auto wlx000fb5922374 iface wlx000fb5922374 inet static

wireless-keymode open
wireless-mode managed
address 10.2.0.100
netmask 255.255.0.0
wireless-essid banane
wireless-key 01234567891011121314151617


airmon-ng start wlx000fb5922374 root@zabeth17:/home/pifou# iwconfig docker0 no wireless extensions.

vmnet1 no wireless extensions.

vmnet8 no wireless extensions.

lo no wireless extensions.

vethea48f02 no wireless extensions.

vethc680cf4 no wireless extensions.

enp6s0 no wireless extensions.

veth27a815a no wireless extensions.

veth3773236 no wireless extensions.

vethf9b8093 no wireless extensions.

enp0s25 no wireless extensions.

wlan0mon IEEE 802.11 Mode:Monitor Frequency:2.447 GHz Tx-Power=15 dBm

         Retry short limit:7   RTS thr:off   Fragment thr:off
         Power Management:off
         

bridge no wireless extensions.

vethb5bee00 no wireless extensions.

veth12b76b4 no wireless extensions.


root@zabeth17:/home/pifou# airodump-ng --encrypt wep wlan0mon

CH  8 ][ Elapsed: 6 s ][ 2017-12-12 15:04                                         
                                                                                                       
BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                                                       
C4:14:3C:12:61:C2  -67       26        0    0   9  54e. WEP  WEP         BORNE_TEST3                   
C4:14:3C:12:61:C1  -61       28        0    0   9  54e. WEP  WEP         BORNE_TEST2                   
C4:14:3C:40:78:60  -70       21        0    0   3  54e. WEP  WEP         ananas                        
C4:14:3C:40:78:63  -76       20        0    0   3  54e. WEP  WEP         goyave                         
C4:14:3C:12:61:C4  -68       25        0    0   9  54e. WEP  WEP         BORNE_TEST5                   
C4:14:3C:12:61:C0  -68       27        0    0   9  54e. WEP  WEP         BORNE_TEST1                   
C4:14:3C:12:61:C3  -63       25        0    0   9  54e. WEP  WEP         BORNE_TEST4                   
C4:14:3C:40:78:61  -73       16        0    0   3  54e. WEP  WEP         banane                        
C4:14:3C:40:78:64  -68       14        0    0   3  54e. WEP  WEP         groseille                     
C4:14:3C:40:78:65  -74       22        0    0   3  54e. WEP  WEP         reseau1                       
C4:14:3C:12:61:C5  -59       24        0    0   9  54e. WEP  WEP         BORNE_TEST6                    
C4:14:3C:40:78:62  -72       16        0    0   3  54e. WEP  WEP         durian                        
C4:14:3C:40:78:67  -77       16        0    0   3  54e. WEP  WEP         tomate                        
                                                                                                       
BSSID              STATION            PWR   Rate    Lost    Frames  Probe                               
                                                                                                       
(not associated)   AC:AF:B9:B0:DF:32  -75    0 - 1      0        1  PolytechLille                       
(not associated)   B8:08:D7:16:6E:69  -73    0 - 1      0        1                                      
(not associated)   60:F4:45:D0:DA:DB  -73    0 - 1      0        2  PolytechLille  


airodump-ng --bssid C4:14:3C:40:78:61 -c 3 -w crack_wep wlan0mon

  1. -c 3 précise que le réseau est sur le channel 3.
  2. -w crack_wep est le fichier qui va stocker les paquets capturé.





Mise en réseau et création de conteneurs sous Machine Virtuelle Linux

On se propose dans cette partie de réaliser la création et la mise en réseau de conteneurs sous Linux.

Après avoir créé un système de fichiers avec debootstrap puis une machine virtuelle (IMA5-BANANE en l'occurence) sur le serveur de virtualisation Cordouan, on crée trois conteneurs C1, C2 et C3 distincts au sein celle-ci.

Connecter les conteneurs en réseau :

   créer une double interface Ethernet virtuelle ;
   sur l’hôte ajouter l’interface dans un pont virtuel ;
   envoyer le pair dans l’espace réseau du conteneur ;
   configurer l’adresse IP sur l’interface du conteneur ...
   ... il peut être nécessaire d’utiliser nsenter. 

Pour la création d'un conteneur, on utilise la commande unshare couplée à des options et à une fonction serverx.sh qui ne fait que repeter une fonction sleep 5 en boucle. Elle permet de lancer séparément une commande (ici /bin/serverx.sh) en définissant un root différent.

   unshare -n -u -m -p -f chroot ./chroot /bin/serverx.sh

Si on veut entrer dans le conteneur après en être sorti, on utilise la commande:

   nsenter -n -u -m -p -t <PID> chroot ./chroot /bin/bash

On ajoute alors toutes nos interfaces virtuelles eth0@vifX de type veth. Les Ponts "monpont" et "carrefour" ont déjà été définis dans /etc/network/interfaces

   ip link add vif1 type veth peer name eth0@vif1
   ip link add vif2 type veth peer name eth0@vif2
   ip link add vif3 type veth peer name eth0@vif3
   ip link add vif4 type veth peer name eth0@vif4

On ajoute les vifx aux ponts correspondants

   ip link set vif1 master monpont
   ip link set vif2 master carrefour 
   ip link set vif3 master carrefour
   ip link set vif4 master carrefour

On peut vérifier la création à chaque commande grâce aux la commande:

   ip l show et brctl show

L'adresse ip de "monpont" est défini dans le fichier interfaces avec l'adresse 193.48.57.179 et est connecté au réseau via eth0 Nous avons choisis le reseau local entre les conteneur sur la plage 192.168.0.0/24. L'adresse de "carrefour" est 192.168.0.1.

On peut alors définir eth0@vif1 (renommée eth0) comme étant l'interface entre le reverse proxy et "monpont".

   ip link set eth0@vif1 netns /proc/<PID>/ns/net name eth0

On peut alors définir eth0@vif2 (renommée eth1) comme étant l'interface entre le reverse proxy et les carrefour.

   ip link set eth0@vif2 netns /proc/<PID>/ns/net name eth1

On peut alors définir eth0@vif3 et eth0@vif4 (renommées eth0) comme étant les interfaces respectives entre le server1, serveur 2 et le pont carrefour.

   ip link set eth0@vif3 netns /proc/<PID>/ns/net name eth0
   ip link set eth0@vif4 netns /proc/<PID>/ns/net name eth0

Dans le conteneur "chroot", on ajoute alors l'adresse IP 193.48.57.189/28 à eth0 et on active eth0, vif1 et "monpont".

   ip addr add 193.48.57.189/28 dev eth0
   ip link set dev eth0 up
   ip link set vif1 up
   ip link set dev monpont up

Dans le conteneurs serverX et dans le reverse proxy, on ajoute alors les adresse IP 192.168.0.100/24 et 192.168.0.200/24 et 192.168.0.150/24 aux eth0 respectifs puis on active vif2 vif3 vif4 et "carrefour".