TP sysres IMA2a5 2019/2020 G4 : Différence entre versions

De Wiki d'activités IMA
(Sécurisation des données avec RAID5)
Ligne 169 : Ligne 169 :
  
  
=== Scurisation des données avec RAID5 ===
+
=== Sécurisation des données avec RAID5 ===
  
  
Aprés avoir quitté la VM, on crée trois partitions LVM de 1Go avec des noms liés à celui de notre serveur donc ima2a5-wateck
+
A partir de Cordouan, nous avons créé trois partitions LVM de 1Go :
  
 
     lvcreate -L1G -n ima2a5-wateck-d1 virtual
 
     lvcreate -L1G -n ima2a5-wateck-d1 virtual
Ligne 178 : Ligne 178 :
 
     lvcreate -L1G -n ima2a5-wateck-d3 virtual
 
     lvcreate -L1G -n ima2a5-wateck-d3 virtual
  
Puis  
+
Puis bous avons créé les systèmes de fichiers pour chacune des partitions nouvellement créée.
  
 
     mke2fs /dev/virtual/ima2a5-wateck-d1
 
     mke2fs /dev/virtual/ima2a5-wateck-d1
Ligne 185 : Ligne 185 :
  
  
On ajoute ces partitions à la définition de la machine VM en modifiant le fichier .cfg
+
Ensuite nous avons modifié le fichier de configuration de la VM (/etc/xen/ima2a5-wateck.cfg) en ajoutant ces partitions.
 
Dans la définiton de la VM , ajouter :
 
Dans la définiton de la VM , ajouter :
 
     [...]
 
     [...]
Ligne 203 : Ligne 203 :
 
     [...]
 
     [...]
  
On ... la bonne configuration
+
Pour que les partitions soient montées au démarrage de la VM il faut aussi modifier le fichier /etc/fstab :
 +
 
 +
    [...]
 +
    # /etc/fstab: static file system information.
 +
    #
 +
    # <file system> <mount point>  <type>  <options>      <dump>  <pass>
 +
    proc            /proc          proc    defaults        0      0
 +
    devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
 +
    /dev/xvda1 none swap sw 0 0
 +
    /dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
 +
    /dev/xvdb1 /home ext4 defaults 0 2
 +
    /dev/xvdb2 /var ext4 defaults 0 2
 +
    /dev/md0 /media/raid ext4 defaults 0 1  # Ligne à rajouter
 +
    [...]
 +
 
 +
Il faut ensuite redémarrer la machine pour que les modifications soient prises en compte et pour monter 
 +
    xl shutdown ima2a5-wateck
 +
 
 
     xlcreate ima2a5-wateck.cfg
 
     xlcreate ima2a5-wateck.cfg
 +
Nous n'avons pas permis le lancement du serveur ssh au démarrage il faut donc y accèder via xl console et lancer le serveur ssh :
 +
   
 +
    xl à
  
On relance la VM pour activer SSH
 
    xlconsole pour relancer
 
    service ssh start
 
  
 
On quitte la console avec:
 
On quitte la console avec:
Ligne 214 : Ligne 231 :
  
 
On se reconnecte à la machine en SSH, puis on crée un RAID5 logiciel avec les trois partitions obtenues avec paquetage <code>mdadm</code>.  
 
On se reconnecte à la machine en SSH, puis on crée un RAID5 logiciel avec les trois partitions obtenues avec paquetage <code>mdadm</code>.  
 +
 
     apt-get install mdadm
 
     apt-get install mdadm
 
     mdadm –create/dev/md0 –level=5 –raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
 
     mdadm –create/dev/md0 –level=5 –raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5

Version du 29 novembre 2019 à 14:08

Descriptif du projet

L'objectif du projet consiste à réaliser une maquette réseau pour la manipulation des protocoles de redondance réseau ainsi que le protocole IPv6. Pour cela, il nous faut d'abord installer une machine virtuelle Xen. Suite à cela, on mettra en place un réseau ainsi qu'un site web sécurisé. Ce projet nous permettra de mettre en pratique les notions vues en cours qui sont, entre autres:

  • installation d'une machine virtuelle
  • découpage et paramétrage réseau
  • réservation de nom de domaine avec Gandi
  • gestion de certificats SSL
  • cassage de clés WEP et WPA-PSK avec l'utilitaire AirCrack
  • mise en place de services internet (serveur Web avec Apache2, DNS avec bind9)

Le groupe est constitué de :

  • Malick SECK
  • Gael WATBLED

Architecture réseau

Afin d'avoir un réseau redondant, nous utilisons deux routeurs, deux commutateurs et deux points d'accés Wi-Fi. Les points d’accès sont connectés chacun à un commutateur, les routeurs sont connectés sur les deux commutateurs et chaque commutateur est connecté au réseau d’interconnexion avec l’école. Enfin, le serveur de virtualisation est connecté aux deux commutateurs. L'architecture globale est représentée sur la figure suivante:

Nous utilisons par ailleurs le réseau IPv4 routé 193.48.57.160/27 que nous avons découpé en deux sous-réseaux en réservant une plage aux étudiants en IMA5 classique.

De plus, nous disposons d'un sous-réseau privé pour la connexion du client Wi-Fi. Le tableau ci-dessous détaille les infos concernant le découpage réseau pour notre groupe (groupe 4).


Description Détails
ID VLAN 4
Réseau VLAN 10.60.4.0/24
Adresse IPv4 193.48.57.164/28
Adresse de broadcast 193.48.57.175/28
Adresse du Routeur 1 193.48.57.173/28
Adresse du Routeur 2 193.48.57.174/28
Adresse du Routeur virtuel 193.48.57.172/28
Nom du PC Morue
Poste de travail Zabeth08


Machine virtuelle Xen

Installation

Afin d'installer la machine virtuelle, nous nous connectons d'abord au serveur cordouan en ssh via la commande:code ssh root@cordouan.insecserv.deule.net (mot de passe= glopglop).

Puis nous lançons la commande xen-create-image --hostname=ima2a5-wateck --dhcp --dir=/usr/local/xen --dist= ascii –apt-proxy=http://proxy.polytech-lille.fr/3128 –force. xen-create-image est un scriptvqui permet de créer facilement une instance Xen avec une image qui aura 2 volumes (1 image Logical Volumes et 1 image system root disk). Le script en question prendra les arguments suivants:

ARGUMENT SIGNIFICATION
--hostname pour spécifier le nom de la machine
--dhcp pour permettre au client (guest) d'être configuré via dhcp
--dir pour spécifier le répertoire où les disques virtuels doivent être créés
--dist pour spécifier la distribution que l'on souhaite installer
-force pour autoriser l'écrasement des images existantes ou la suppression des volumes logiques LVM qui dépendent de la nouvelle instanciation

Puis nous lançons la commande tail -f /var/log/xen-tools/ima2a5-wateck.log pour voir sur un autre terminal si l’installation se fait correctement et pour voir l'état d'avancement

Par la suite, nous modifions 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. Pour cela, nous modifions le fichier /etc/xen/ima2a5-wateck.cfg pour mettre nom du bridge (déja configuré) en IMA2a5 comme spécifié lorsque l'on utilise la commande brctl show afin de permettre à notre VM de se connecter à internet. Nous avons aussi pris le soin de modifier le mot de passe de la machine via la commande Passwd en "gloplop", le login étant "root"

Le fichier de configuration est comme suit: ... voir copie fichier de conf (pour changement)...''Texte italique

    [...]
    #
    #  Disk device(s).
    #
    root    	= '/dev/xvda2 ro'
    disk    	= [
                  	'file:/usr/local/xen/domains/ ima2a5-wateck /disk.img,xvda2,w',
                  	'file:/usr/local/xen/domains/ ima2a5-wateck /swap.img,xvda1,w',               
                       'phy:/dev/virtual/ ima2a5-wateck -home,xvdb1,w',
                       'phy:/dev/virtual/ ima2a5-wateck -var,xvdb2,w',
                 ]
    [...]

... (voir fichier . cfg anyway) ...

Nous parsons notre machine via son fichier de configuration avec la commande xl create /etc/xen/ima2a5-watech.cfg avant de lancer cette dernière avec xl console /etc/xen/ima2a5

Montage de Var et Home dans cordouan

Nous avons créé des volumes logiques de 10Go pour les répertoires var et home comme suit:

  • lvcreate -L10G -n ima2a5-wateck -home virtual
  • lvcreate -L10G -n ima2a5-wateck-var virtual

Création du système de fichiers

Nous formatons ainsi chaque partions pour avoir des volumes logiques (système de fichier)

  • mke2fs /dev/virtual/ ima2a5-wateck -home
  • mke2fs /dev/virtual/ ima2a5-wateck -var


Enfin nous vérifions que le montage des volumes a bien fonctionné grâce à fdisk -l

Le résultat obtenu est:

    root@ima2a5-wateck:~# fdisk -l
    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: 512 MiB, 536870912 bytes, 1048576 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/xvdb2: 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

Ce qui montre que nos volumes ont été bel et biens crées

Nous avons aussi modifié le fichier /etc/fstab comme suit afin que les volumes soient pris en compte à chaque démarrage de la VM :

    /dev/xvdb1		/home		ext4		defaults				0		2
    /dev/xvdb2		/var		ext4		defaults				0		2


Sécurisation des données avec RAID5

A partir de Cordouan, nous avons créé trois partitions LVM de 1Go :

    lvcreate -L1G -n ima2a5-wateck-d1 virtual
    lvcreate -L1G -n ima2a5-wateck-d2 virtual
    lvcreate -L1G -n ima2a5-wateck-d3 virtual

Puis bous avons créé les systèmes de fichiers pour chacune des partitions nouvellement créée.

    mke2fs /dev/virtual/ima2a5-wateck-d1
    mke2fs /dev/virtual/ima2a5-wateck-d2
    mke2fs /dev/virtual/ima2a5-wateck-d3


Ensuite nous avons modifié le fichier de configuration de la VM (/etc/xen/ima2a5-wateck.cfg) en ajoutant ces partitions. Dans la définiton de la VM , ajouter :

    [...]
    #
    #  Disk device(s).
    #
    root    	= '/dev/xvda2 ro'
    disk    	= [
                  	'file:/usr/local/xen/domains/ ima2a5-wateck /disk.img,xvda2,w',
                  	'file:/usr/local/xen/domains/ ima2a5-wateck /swap.img,xvda1,w',               
                       'phy:/dev/virtual/ ima2a5-wateck -home,xvdb1,w',
                       'phy:/dev/virtual/ ima2a5-wateck -var,xvdb2,w',
                       'phy:/dev/virtual/ ima2a5-wateck-d1,xvdb3,w',
                       'phy:/dev/virtual/ ima2a5-wateck-d1,xvdb4,w',
                       'phy:/dev/virtual/ ima2a5-wateck-d1,xvdb5,w',
                 ]
    [...]

Pour que les partitions soient montées au démarrage de la VM il faut aussi modifier le fichier /etc/fstab :

    [...]
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
    /dev/xvda1 none swap sw 0 0
    /dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
    /dev/xvdb1 /home ext4 defaults 0 2
    /dev/xvdb2 /var ext4 defaults 0 2 
    /dev/md0 /media/raid ext4 defaults 0 1   # Ligne à rajouter
    [...]

Il faut ensuite redémarrer la machine pour que les modifications soient prises en compte et pour monter

    xl shutdown ima2a5-wateck
    xlcreate ima2a5-wateck.cfg

Nous n'avons pas permis le lancement du serveur ssh au démarrage il faut donc y accèder via xl console et lancer le serveur ssh :

    xl à


On quitte la console avec:

     ctrl + altgr+ ) 

On se reconnecte à la machine en SSH, puis on crée un RAID5 logiciel avec les trois partitions obtenues avec paquetage mdadm.

    apt-get install mdadm
    mdadm –create/dev/md0 –level=5 –raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
    kfs.ext4 /dev/md0
    kdir /media/raid

Mise en place de services internet

Installation des paquets SSH

Configuration du serveur web Apache2

Pour la configuration du serveur web, nous installons d'abord les paquets apache2

  • Apt-get install apache 2

Puis nous lançons le serveur

  • Service apache2 start

Configuration du serveur DNS avec Bind9

Nous commençons tout d'abord par installer bind9 via la commande: apt-get install bind9


Création et configurationde la zone principale

La zone principale permet de faire pointer un nom de domaine pleinement qualifié (FQDN) sur une adresse IP.

Nous modifions d'abord le fichier /etc/bind/named.conf.local qui contient la configuration locale du serveur DNS et on y déclare les zones associées au domaine ainsi qu'un fichier de description de la zone Puis nous créons le fichier de description/configuration lui-même ima2a5-wateck.site.db que nous allons remplir


Définitions des hôtes

Une fois la zone principale configurée, nous renseignons dans sa description les noms des différentes machines pour lesquels on souhaite résoudre le nom.

... voir fichier named.conf.local... ... voir fichier ima2a5-wateck.site.db...

Après avoir enregistré les modifications dans les fichiers précédemment évoaués, nous redémarrons le service bind9 grâce à la commande service bind9 restart. Le service bind9 doit être redémarré à chaque modification, pour qu’elle soit prise en compte.

Création de site web avec Gandi.net

Réservation du nom de domaine

Grâce au registrar gandi.net, nous avons réservé le nom de domaine ima2a5-wateck.site. L'extension .site est une option trés interessante à cause du prix relativement faible (1€/an)

Mygandi.png

Configuration du nameserver

Les serveurs de noms permettent d'accéder à un réseau ou du contenu sur internet depuis un nom de domaine. Le nameserver utilisé est spécifié dans notre fichier de configuration pour bind9. La figure suivante montre le choix de nos narmeservers via gandi:

Wiki.png

Enregistrement Glue Records

Il faut créer un enregistrement Glue records lorsque le serveur de noms fait référence au nom de domaine. Si vous souhaitez mettre en place plusieurs serveurs de noms, faisant référence au nom de domaine, il faudra créer pour chacun un enregistrement glue record. AInsi nous utilisons les enregistrements Glue records fournis par gandi pour associer un hostname (nom de serveur ou DNS) à l'adresse IP de notre machine. NB:Les modifications seront effectives entre 12 et 24 heures. La figure suivante motre l'enregistrement glue records que nous avons effectué:

Glue record.png

Certificat SSL

Le SSL (Secure Socket Layer) / TLS (Transport Layer Security) est le protocole de sécurité le plus répandu qui créé un canal sécurisé entre deux machines communiquant sur Internet ou un réseau interne. Dans notre société centrée sur un Internet vulnérable, le SSL est généralement utilisé lorsqu'un navigateur doit se connecter de manière sécurisée à un serveur web.

Pour commander un certificat, il faut générer une demande de certificat pour finaliser la commande.Nous le faisons comme suit:

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

Ceci nous permet de générer un jeu de 2 clefs privée et publique respectivement stockées dans des fichiers .key et un .csr grâce à l'utilitaire OpenSSL.


Argument explication
req Gestion X.509 Certificate Signing Request (CSR).
-nodes Pas de chiffrage sur la clef privée (option arbitraire no des)
-newkey rsa:2048 demande de Génération d'une paire de clef RSA de 2048 bits et d'une demande de certificat.
-keyout ima2a5-wateck.key spécification du nom de notre .key
-out ima2a5-wateck.csr spécification du nom de notre demande de certificat .csr

A la suite de la commande openssl, nous répondons à quelques questions afin de générer et d'obtenir le csr:

     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]:Polytech Lille
     Organizational Unit Name (eg, section) []:IMA2A5
     Common Name (e.g. server FQDN or YOUR name) []:ima2a5-wateck.site
     Email Address []:gael.watbled@polytech-lille.net
     
     Please enter the following 'extra' attributes
     to be sent with your certificate request
     A challenge password []:glopglop!
     Optionnal informations :


La commande précédemment utilisée nous permet d'avoir la clé publique stockée dans le fichier ima2a5-wateck.csr Le CSR doit être renseigné dans gandi afin d'obtenir notre certficat SSL

Contenu du CSR

     -----BEGIN CERTIFICATE REQUEST-----
 
     -----END CERTIFICATE REQUEST-----

Cassage de la clé WEP

Installation du paquetage AirCrack-ng

Avant d'effectuer des installations, nous avons d'abord effectué les configs réseau

... voir fichier /etc/network.interfaces ...Texte italique

Puis nous effectuons une mise à jour des paquets via apt-get update

Puis nous lançons la comme apt-get install aircrack-ng pour installer l'utilitaire aircrack

Utilisation de AirCrack

Lister les interfaces WiFi disponibles sur l'ordinateur : airmon-ng

Choisir l'interface souhaitée pour l'écoute puis la déclarer en mode écoute avec la commande suivante : airmong-ng start wlan0mon

La commande airodump-ng permet d'écoute tous les réseaux WiFi présents. Afin de sélectionner le réseau ciblé, l'utilisation des commandes suivantes est impérative :

airodump-ng --encrypt wep wlan0mon

Airodump-ng -w crack1.txt -c 2 --bssid @MAC wlan0mon

  • -c: pour indiquer le canal d'écoute (canal 2 dans notre cas car tous les réseaux Cracotte y sont)
  • -i: pour préciser l'interface réseau utiliser
  • -w: pour indiquer le fichier de sauvegarde des trames écoutées



Réalisations sur eeePC

Configuration Internet

On modifie le ficher /etc/network.interfaces, comme suit:

     auto lo
     iface lo inet loopback
     
     auto enp4s0
        address 172.26.145.75
        netmask 255.255.255.0
        gateway 172.26.145.254

Cryptage de données

Sécurisation Wifi par clef WEP

Sécurisation Wifi par clef WPA-PSK

Sécurisation réseau filaire par EAP-TLS

Sécurisation Wifi par WPA2-EAP