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

De Wiki d'activités IMA
(Configuration du Certificat/Securisation du site internet sous HTTPS)
(Informations importantes)
 
(216 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
[[Fichier:Rex4ever.PNG|500px|right|frameless|© Copyright Ginette]]
 
[[Fichier:Rex4ever.PNG|500px|right|frameless|© Copyright Ginette]]
 
== Accueil/Descriptif du groupe ==
 
== Accueil/Descriptif du groupe ==
Bienvenue sur la page du groupe 3. Le découpage en groupe par numéro permet de se repérer plus facielemnt dans l'adressage des différents réseaux nécessaire.Ce groupe est constitué de :
+
Bienvenue sur la page du groupe 3. Le découpage en groupe par numéro permet de se repérer plus facilement dans l'adressage des différents réseaux nécessaire.Ce groupe est constitué de :
  
 
*Pascal Coint
 
*Pascal Coint
Ligne 20 : Ligne 20 :
 
|-
 
|-
 
! scope="row" style="width: 40%"|Réseau IP V6
 
! scope="row" style="width: 40%"|Réseau IP V6
|style="width: 60%"|2001.660.4401.60B3::/64
+
|style="width: 60%"|2001:660:4401:60B3::/64
 
|-
 
|-
 
! scope="row" style="width: 40%"|Nom de l'ordinateur portable
 
! scope="row" style="width: 40%"|Nom de l'ordinateur portable
Ligne 26 : Ligne 26 :
 
|-
 
|-
 
! scope="row" style="width: 40%"|Repérage à l'étiqueteuse
 
! scope="row" style="width: 40%"|Repérage à l'étiqueteuse
|style="width: 60%"|IMA2A5 CW
+
|style="width: 60%"|IMA2A5 - CW
 +
|-
 +
! scope="row" style="width: 40%"|Numéro de poste
 +
|style="width: 60%"|Zabeth03
 +
|-
 +
! scope="row" style="width: 40%"|Adresse du site internet version HTTP
 +
|style="width: 60%"|http://www.ima2a5-rex4ever.site/
 +
|-
 +
! scope="row" style="width: 40%"|Adresse du site internet version HTTPS
 +
|style="width: 60%"|https://www.ima2a5-rex4ever.site/
 +
|-
 +
|}
 +
 
 +
== La machine Virtuelle sous XEN : ima2a5-rex4ever ==
 +
=== Note importante ===
 +
Comme indiqué dans le sujet, nous allons créer une machine virtuelle via l'utilitaire [https://wiki.xenproject.org/wiki/Xen_Project_4.11_Man_Pages Xen] Linux sur le '''dom0 cordouan.insecserv.deule.net''' via la commande '''ssh''' et le compte administrateur usuel.Sur notre machine virtuelle nous créerons par la suite un compte pifou et un compte root identique au Zabeth.
 +
 
 +
=== Création de notre machine virtuelle XEN ===
 +
Après s'être connecté, il faut maintenant creer la machine virtuelle :     
 +
      xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force
 +
L'installation se lance alors :
 +
 
 +
      root@cordouan:~# xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force
 +
      Use of uninitialized value within %DIST in pattern match (m//) at /usr/bin/xen-create-image line 1803.
 +
     
 +
      General Information
 +
      --------------------
 +
      Hostname      :  ima2a5-rex4ever
 +
      Distribution  :  ascii
 +
      Mirror        :  http://fr.deb.devuan.org/merged/
 +
      Partitions    :  swap            512M  (swap)
 +
                        /              4G    (ext4)
 +
      Image type    :  sparse
 +
      Memory size    :  256M
 +
      Kernel path    :  /boot/vmlinuz-4.9.0-6-amd64
 +
      Initrd path    :  /boot/initrd.img-4.9.0-6-amd64
 +
     
 +
      Networking Information
 +
      ----------------------
 +
      IP Address    : DHCP [MAC: xxxxxxx]
 +
     
 +
     
 +
      Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/swap.img
 +
      Done
 +
     
 +
      Creating swap on /usr/local/xen/domains/ima2a5-rex4ever/swap.img
 +
      Done
 +
     
 +
      Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/disk.img
 +
      Done
 +
     
 +
      Creating ext4 filesystem on /usr/local/xen/domains/ima2a5-rex4ever/disk.img
 +
      Done
 +
      Installation method: debootstrap
 +
 
 +
L'installation peut sembler bloquer sur cette dernière ligne mais il est possible de voir ce qui se passe en arrière plan via un second terminal en SSH et la commande SSH
 +
      tail -f /var/xen-tools/ima2a5-rex4ever.log
 +
 
 +
A la fin de l'installation,on obtient le mot de passe root et des informations importantes :
 +
      Installation Summary
 +
      ---------------------
 +
      Hostname        :  ima2a5-rex4ever
 +
      Distribution    :  ascii
 +
      MAC Address    :  xxxxxxxxxxx
 +
      IP Address(es)  :  dynamic
 +
      SSH Fingerprint :  SHA256:xxxxxxx (DSA)
 +
      SSH Fingerprint :  SHA256:xxxxxxx (ECDSA)
 +
      SSH Fingerprint :  SHA256:xxxxxxx (ED25519)
 +
      SSH Fingerprint :  SHA256:xxxxxxx (RSA)
 +
      Root Password  :  sZzrYYPFZEwxsfmFghddGW5
 +
 
 +
=== Ajout du bridge à ima2a5-rex4ever.cfg ===
 +
Dans un premier lieu, on regarde l'existence du brige sur l'hote distant via :
 +
      brctl show
 +
Ce qui nous retourne :
 +
      bridge name bridge id STP enabled interfaces
 +
      IMA2a5 8000.000af75e3dc0 no eth1
 +
      eth2
 +
      if3.0
 +
      IMA5sc 8000.000af75e3dc2 no eth3
 +
      eth5
 +
      Insecure 8000.c81f66c22b83 no vlan6
 +
      L3MRIT 8000.000af763ae2d no eth4
 +
      StudentsInfo 8000.c81f66c22b83 no vlan50
 +
On voit bien l'existence du bridge '''IMA2a5''', il faut donc l'ajouter à notre .cfg qui est le fichier de configuration de la VM ('''/etc/xen/ima2a5-rex4ever.cfg''')
 +
et on modifie la ligne commençant par '''vif =''' et on ajoute le bridge de la manière suivante :
 +
      vif = ['MAC:xxxxx,bridge = IMA2a5']
 +
Après avoir modifié ce fichier, il faut le parser : xl create /etc/xen/ima2a5-rex4ever.cfg
 +
Une erreur '''NUMA placement failed, performance might be affected''' peut apparaître mais elle indique juste que xen n'arrive pas à disposer les VM comme il veut sur les procs, mais cela n'impactera que les performances nous passons outre ce problème.
 +
 
 +
=== Démarrer la VM et accès console ===
 +
On lance alors la commande pour accéder à la machine virtuelle:
 +
      xl create /etc/xen/ima2a5-rex4ever.cfg
 +
On lance alors la commande pour accéder à la machine virtuelle:
 +
      xl console ima2a5-rex4ever
 +
 
 +
il demande alors le login (root) et le mdp (longue chaine précédemment générée). Après nous être logué,on change le mot de passe qui devient le même que le mot de passe du root de '''corduan''' ou d'une zabeth.
 +
 
 +
=== Montage des répertoires /var et /home ===
 +
==== Creation des disques logique ====
 +
Il faut d'abord créer les partitions logiques sur corduan via :
 +
    root@cordouan:~#lvcreate -L10G -n ima2a5-rex4ever-home virtual
 +
    root@cordouan:~#lvcreate -L10G -n ima2a5-rex4ever-var virtual
 +
Il est possible qu'il affiche l'avertissement suivant : '''WARNING: ext2 signature detected on /dev/virtual/ima2a5-rex4ever-home at offset 1080. Wipe it? [y/n]'''
 +
repondre alors oui(y).
 +
Il est possible de verifier que votre partition a bien été crée via la commande :
 +
      lvdisplay
 +
On obtient alors dans la liste de toutes les partitions, nous deux partitions précedemment créées
 +
      --- Logical volume ---
 +
      LV Path                '''/dev/virtual/ima2a5-rex4ever-home'''
 +
      LV Name                ima2a5-rex4ever-home
 +
      VG Name                virtual
 +
      LV UUID                mhJqFx-zO1m-PlOU-Zmeu-8NGx-7UUO-c2g9dP
 +
      LV Write Access        read/write
 +
      LV Creation host, time cordouan, 2019-11-08 08:47:26 +0000
 +
      LV Status              available
 +
      # open                0
 +
      LV Size                10.00 GiB
 +
      Current LE            2560
 +
      Segments              1
 +
      Allocation            inherit
 +
      Read ahead sectors    auto
 +
      - currently set to    256
 +
      Block device          254:3
 +
    --- Logical volume ---
 +
    LV Path                '''/dev/virtual/ima2a5-rex4ever-var'''
 +
    LV Name                ima2a5-rex4ever-var
 +
    VG Name                virtual
 +
    LV UUID                9Bnl6S-6CE5-CtO2-hD8f-RidD-sps5-b1mrWg
 +
    LV Write Access        read/write
 +
    LV Creation host, time cordouan, 2019-11-08 08:50:57 +0000
 +
    LV Status              available
 +
    # open                0
 +
    LV Size                10.00 GiB
 +
    Current LE            2560
 +
    Segments              1
 +
    Allocation            inherit
 +
    Read ahead sectors    auto
 +
    - currently set to    256
 +
    Block device          254:4
 +
Il faut maintenant faire pointer le système de fichier sur nos deux nouveaux repertoires pour finir la création :
 +
    mke2fs /dev/virtual/ima2a5-rex4ever-home
 +
    mke2fs /dev/virtual/ima2a5-rex4ever-var
 +
Nos deux disques sont maintenant prêt, il ne reste plus qu'a les connecter avec la VM. Pour cela, il faut modifier le '''.cfg''' de nouveau.
 +
 
 +
==== Modification du fichier de configuration ====
 +
Retournons donc dans le fichier '''/etc/xen/ima2a5-rex4ever.cfg''' et dans la section disk modifier tel que :
 +
 
 +
    disk    = [
 +
                  'file:/usr/local/xen/domains/ima2a5-rex4ever/disk.img,xvda2,w',
 +
                  'file:/usr/local/xen/domains/ima2a5-rex4ever/swap.img,xvda1,w',             
 +
                        'phy:/dev/virtual/ima2a5-rex4ever-home,xvdb1,w',
 +
                        'phy:/dev/virtual/ima2a5-rex4ever-var,xvdb2,w',
 +
                  ]
 +
 
 +
Pour prendre effet il faut redémarrer la VM à l'aide des commandes
 +
    xl shutdown ima2a5-rex4ever
 +
    xl create /etc/xen/ima2a5-rex4ever.cfg
 +
 
 +
==== Configuration pour forcer le montage à chaque démarrage de la VM ====
 +
Il faut ensuite aller dans la VM dans '''/etc/fstab''' et ajouter
 +
    /dev/xvdb1 /home ext4 defaults 0 2
 +
    #/dev/xvdb2 /var ext4 defaults 0 2
 +
 
 +
Ces deux lignes permettent d'assurer que les 2 disques /var et /home soient pris en compte au démarrage de la VM.('''ATTENTION POUR LE MOMENT BIEN LAISSER # DEVANT LA 2eme LIGNE''')
 +
Relancer la machine comme précédemment expliqué et testé que le /home fonctionne.
 +
Pour le /var c'est un peu plus compliqué comme manipulation et il faut faire EXTREMENT attention , une fausse manipulation peut tuer la machine.
 +
    mount /dev/xvdb2 /mnt
 +
    rm -rf /mnt/lock
 +
    rm -rf /mnt/log
 +
    rm -rf /mnt/run
 +
    mv /var/* /mnt
 +
    vi /etc/fstab
 +
Maintenant decommentez la deuxième ligne que vous aviez ajouté précedemment. Puis il faut lancer la commande :
 +
    umount /mnt   
 +
    mount -a
 +
A l'aide de la commande '''fdisk -l''' depuis la VM, on peut verifier que nos quatres disques sont bien montés.De même avec '''df''' on obtient bien dans la liste les lignes :
 +
      Filesystem 1K-blocks Used Available Use% Mounted on
 +
    udev 75004 0 75004 0% /dev
 +
    tmpfs          23824 76 23748 1% /run
 +
    /dev/xvda2  4062912 459920 3376896 12% /
 +
    tmpfs          5120 0  5120 0% /run/lock
 +
    tmpfs        152500  0 152500 0% /run/shm
 +
    /dev/xvdb1  10321208 23028  9773892 1% /home
 +
    /dev/xvdb2  10321208 71076  9725844 1% /var
 +
La machine est donc prête, on peut passer à l'installation des paquetages linux nécessaires
 +
=== Mise en place de l'adresse statique ===
 +
Précedemment nous avions mis l'adresse en DHCP or il est demandé d'avoir une adresse statique (pour notre groupe il s'agit de  ''' 193.48.57.163/28 ''' )
 +
 
 +
=== Paquetage Linux ===
 +
Pour commencer, on va tout d'abord mettre le système à jour via :
 +
    sudo apt-get update
 +
==== Paquetages nécessaires pour le SSH ====
 +
'''OpenSSH''' est un ensemble d'outils libres pour établir des communications chiffrées, donc sécurisées, sur un réseau informatique grâce au protocole '''SSH''' (Secure SHell).
 +
Il chiffre tout le trafic (mots de passe y compris), via une combinaison astucieuse de chiffrement symétrique et asymétrique. '''OpenSSH''' fournit également d'autres méthodes d'authentification alternatives au traditionnel mot de passe.
 +
Comme son nom l'indique, OpenSSH est développé dans le cadre du projet '''OpenBSD'''.
 +
 
 +
{| class="wikitable" style="text-align: center;width: 85%;margin: auto;"
 +
! Nom de la bibliothèque !! Descriptif !! Commande
 +
|-
 +
! scope="row" style="width: 20%"|OpenSSh Client
 +
|style="width: 40%"| Utilitaires de connexion SSH partie Client
 +
|style="width: 40%"| sudo apt-get install openssh-client
 +
|-
 +
! scope="row" style="width: 20%"|OpenSSh Server
 +
|style="width: 40%"| Utilitaires de connexion SSH partie Server
 +
|style="width: 40%"| sudo apt install openssh-server
 
|-
 
|-
 
|}
 
|}
  
== Site Web & Nom de domaine ==  
+
Dans notre cas, SSH est déjà présent sur la machine virtuelle.
 +
 
 +
==== Paquetages nécessaires pour le serveur Web Apache2 ====
 +
Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C'est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache.
 +
Pour l'installer, il faut taper la commande :
 +
    apt install apache2
 +
 
 +
==== Paquetages nécessaires pour le serveur DNS/DNSSEC bind ====
 +
Le service DNS (Domain Name System) est un service TCP/IP permettant la correspondance entre un nom de domaine qualifié (FQDN : Fully Qualified Domain Name) et une adresse IP. Ainsi, grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP.Un serveur qui héberge le service DNS est appelé "serveur de noms". Ubuntu est livré par défaut avec BIND (Berkley Internet Naming Daemon), le serveur DNS le plus utilisé sur Internet. Pour installer bind9 :
 +
    apt install bind9
 +
 
 +
==== Paquetages nécessaires le gestionnaire de RAID Logiciel Mdadm ====
 +
Mdadm est une solution de RAID logiciel très fiable et très répandue dans la communauté Linux. Ce paquetage sera nécessaire pour la création d'un RAID5
 +
  apt install mdadm
 +
 
 +
==== Paquetages nécessaires la gestion d'authentification Wifi WPA-EAK ====
 +
 
 +
== Le Site Web : HTTP ==
 +
=== Achat d'un nom de domaine ===
 +
Pour la réalisation de ce TP, nous avons dû acheter un nom de domaine via le site [https://www.gandi.net/fr Gandi.net] . On retiendra que notre nom de domaine est : [https://www.ima2a5-rex4ever.site rex4ever.site].
 +
 
 +
=== Paramétrage apache2 ===
 +
Après avoir installé Apache2 sur la machine ( [https://wiki-ima.plil.fr/mediawiki//index.php/TP_sysres_IMA2a5_2019/2020_G3#Paquetages_n.C3.A9cessaires_pour_le_serveur_Web_Apache2 voir ici]), il faut le paramétrer correctement (je me suis servi de [https://doc.ubuntu-fr.org/apache2 ce site]).Pour cela, on commence configurer le '''.conf''' Pour cela, on le crée via la commande '''nano /etc/sites-available/ima2a5-rex4ever.site.conf''' et on renseigne alors dans le fichier les détails suivants :
 +
    <VirtualHost *:80>
 +
        ServerName ima2a5-rex4ever.site
 +
        ServerAlias www.ima2a5-rex4ever.site
 +
        DocumentRoot "/var/www/ima2a5-rex4ever"
 +
        <Directory "/var/www/ima2a5-rex4ever">
 +
                Options +FollowSymLinks
 +
                AllowOverride all
 +
                Require all granted
 +
        </Directory>
 +
        ErrorLog /var/log/apache2/error.ima2a5-rex4ever.site.log
 +
        CustomLog /var/log/apache2/access.ima2a5-rex4ever.site.com.log combined
 +
    </VirtualHost>
 +
Maintenant qu'il est configuré, on peut déployer le site via :
 +
    a2ensite ima2a5-rex4ever.site
 +
Puis, on recharge la configuration de l'utilitaire Apache 2 :
 +
    service apache2 reload
 +
 
 +
=== Paramétrage du DNS ===
 +
Le DNS (Domain Name Server) est un serveur qui permet de rattacher un nom à une IP et ainsi c'est lui qui permet de faire le lien entre le nom d'un site et son contenu
 +
==== Glue Records sur Gandi ====
 +
Le Glue Record permet de créer des alias et ainsi de lier des IP et à des noms.C'est fort pratique pour simplifier la configuration.Pour se faire il faut se rendre dans Domain , cliquer sur le nom de notre site , aller dans l'onglet Glue Records et cliquer sur ADD
 +
  name : dns.ima2a5-rex4ever.site
 +
  ip adresse(s) : 193.48.57.163
 +
==== Affecter le DNS du coté de Gandi.net ====
 +
Par défaut, les serveurs de noms (DNS) sont 3 serveurs de DNS Live Gandi, il faut ajouter les serveurs externes :
 +
*ns6.gandi.net  '''217.70.177.40'''
 +
*dns.ima2a5-rex4ever.site  '''193.48.57.163'''
 +
'''Note:''' il faut compter 12 à 24 heures pour la propagation sur Internet.
 +
==== Le paramétrage de bind9 ====
 +
Le paramétrage repose sur la configuration de ses 3 fichiers :
 +
===== Le fichier /etc/bind/named.conf.options =====
 +
Ce fichier permet de gérer les DNS authorisés (de manière générale) à récuperer des informations de notre site. On le modifie pour permettre au dns de gandi de récuperer les données :
 +
 
 +
    options {
 +
   
 +
        // forwarders {
 +
        //    0.0.0.0;
 +
        // };
 +
        // dnssec-validation auto;
 +
        auth-nxdomain no;    # conform to RFC1035
 +
        listen-on-v6 { any; };
 +
        '''allow-transfer { "allowed_to_transfer"; };'''
 +
    };
 +
   
 +
    '''acl "allowed_to_transfer" {'''
 +
        ''' 217.70.177.40/32; // adresse IP du dns6.gandi.net'''
 +
    };
  
 +
===== Le fichier /etc/bind/named.conf.local =====
 +
Il faut maintenant déclarer à Bind9 le nom de notre fichier de configuration de DNS sous forme de zone , on le fait via ce fichier. On lui renseigne la zone :
 +
   
 +
    zone "ima2a5-rex4ever.site" {
 +
        type master;
 +
        file "/etc/bind/db.ima2a5-rex4ever.site";
 +
    };
  
 +
===== le fichier /etc/bind/db.ima2a5-rex4ever.site=====
 +
Enfin, il faut créer le fichier de configuration précedemment appelé :
  
 +
  ;
 +
  ; BIND data file for local loopback interface
 +
  ;
 +
  $TTL    604800
 +
  @      IN      SOA    dns.ima2a5-rex4ever.site. root@ima2a5-rex4ever.site. (  <= METTRE UNE ADRESSE BIDON , pas necessaire
 +
                          21112019        ; Serial
 +
                            604800        ; Refresh
 +
                            86400        ; Retry
 +
                          2419200        ; Expire
 +
                            604800 )      ; Negative Cache TTL
 +
  ;
 +
  @      IN      NS      dns.ima2a5-rex4ever.site.  <= DN du site
 +
  @      IN      NS      ns6.gandi.net.<= DNS de gandi
 +
  dns    IN      A      193.48.57.163 <= IP DE NOTRE DNS
 +
  www    IN      A      193.48.57.163 <= IP DE NOTRE SITE
  
=== Nom de domaine ===
+
Après 5 minutes de cuisson et avoir relancé bind9, c'est prêt le site en http est accessible et visualisable! On peut acceder au site internet http://www.ima2a5-rex4ever.site !
Pour la réalisation de ce TP, nous avons dû acheter un nom de domaine via le site [https://www.gandi.net/fr Gandi.net] . On retiendra que notre nom de domaine est : [https://www.ima2a5-rex4ever.site rex4ever.site]
 
  
=== Configuration du Certificat/Securisation du site internet sous HTTPS ===
+
== Le Site Web : HTTPS ==
 
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.
 
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.
  
'''Génération du certificat'''
+
=== Generation d'un certificat ===
La première étape pour générer un certificat est de concevoir
 
  
-----BEGIN CERTIFICATE REQUEST-----
+
La première étape pour générer un certificat est de concevoir un jeu de 2 clefs qui sont un '''.key''' et un '''.csr'''
MIIDBTCCAe0CAQAwgaUxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD
+
Pour obtenir ces deux fichiers, nous utilisons l'utilitaire '''OpenSSL'''.
VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDzANBgNVBAsMBklN
+
      openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-rex4ever.key -out ima2a5-rex4ever.csr
QTJBNTEdMBsGA1UEAwwUaW1hMmE1LXJleDRldmVyLnNpdGUxLjAsBgkqhkiG9w0B
+
 
CQEWH3Bhc2NhbC5jb2ludEBwb2x5dGVjaC1saWxsZS5uZXQwggEiMA0GCSqGSIb3
+
'''Mais alors comment marche cette commande?'''
DQEBAQUAA4IBDwAwggEKAoIBAQDBKS9p8572UiXo2W1dAiKEKLq+B6ge/si0AhMH
+
Après avoir lu le descriptif que l'on peut obtenir via [http://www.delafond.org/traducmanfr/man/man1/openssl.1.html man openssl], il en ressort que les arguments sont :
fLtovMz7Xvy/9oQnq25SvkWaNRuAJrvzROGS2mzkG9IEhnEpWSTNvspTO60PgNPo
+
 
EUYcgKAeEuVVJyom3K3ioBOvllucQfiOIB/ykvP80s+9Wjo2vf2PkESPTjfM0zKP
+
{| class="wikitable" style="text-align: center;width: 85%;margin: auto;"
2JMT9cGQV6auD7NU+Ygz7w5dW/NKkU2KZA9HQ7i95+/ST3r2T0D8xP/ltEBC0Q7i
+
! Argument !! explication
U/OVkAKn6CPJ6KtkbQYvgKVG95IM5SQb/WxRVNnHKS4f+erNFYpx5iNiHhv6larV
+
|-
G0oR9uNsg7tOhdhcVVnooGSAsoxtgmDLwzuuho+3fS4t1K83AgMBAAGgGjAYBgkq
+
! scope="row" style="width: 40%"|req
hkiG9w0BCQcxCwwJZ2xvcGdsb3AhMA0GCSqGSIb3DQEBCwUAA4IBAQB7jtWizvBQ
+
|style="width: 60%"| Gestion X.509 Certificate Signing Request (CSR).
dNEyyVRhS563mKFo34RWW4g5tpnPC6wepQ7tvHo6gZZtzljobsWF55lRK7/Pi8eh
+
|-
ANyQxb1Lo9FcHJcUOEMc8heeutSZQoCslTdRNMe+uBhQ/qCLXjy+fgdptqPi9cXP
+
! scope="row" style="width: 40%"|-nodes
zi8gBbrAQ9sHqJPK/RwhzuhCkBSzYgoNbYLjrHf8lCe60+7+0HBKM3jpTUDmzrzg
+
|style="width: 60%"| Pas de chiffrage sur la clef privée (option arbitraire no des)
Kmb8GmkgcrzKSNhlOFZpiQqBJUfK5zJEucdhJ0j7Tupwf+J2oO+TccnCNH7o1Ykc
+
|-
7ANKYKpf8AoCcZenLutCXt3YGjT8INuh5SnpsyR3BZUK9hNzZGK9Ilv9hwiEnmaS
+
! scope="row" style="width: 40%"|-newkey rsa:2048
PQWRkLUGQdh+
+
|style="width: 60%"|demande de Génération d'une paire de clef RSA de 2048 bits et d'une demande de certificat.
-----END CERTIFICATE REQUEST-----
+
|-
 +
! scope="row" style="width: 40%"|-keyout ima2a5-rex4ever.key
 +
|style="width: 60%"|spécification du nom de notre .key
 +
|-
 +
! scope="row" style="width: 40%"|-out ima2a5-rex4ever.csr
 +
|style="width: 60%"|spécification du nom de notre demande de certificat .csr
 +
|-
 +
|}
 +
Pour générer en bon éduforme notre demande,l'utilitaire a besoin des informations, voici ce que nous avons répondu:
  
=== Paramétrage du certificat ===
+
      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-rex4ever.site'''
 +
      Email Address []:'''pascal.coint@polytech-lille.net'''
 +
     
 +
      Please enter the following 'extra' attributes
 +
      to be sent with your certificate request
 +
      A challenge password []:'''glopglop!'''
 +
      Optionnal informations :
  
== Machine virtuelle ==
+
==== Affectation du certificat sur Gandi.net ====
 +
Après avoir répondu , il génère alors 2 fichiers. Le '''.key''' est notre clef privée elle restera donc en notre unique possession. On partage avec gandhi (qui est également un générateur de certificat) notre '''.csr'''. Il va donc étudier la validité de notre domaine et le certifier ou non.
  
== Client Wifi ==
+
''' Contenu de notre CSR'''
 +
      -----BEGIN CERTIFICATE REQUEST-----
 +
      MIIDBTCCAe0CAQAwgaUxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD
 +
      VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDzANBgNVBAsMBklN
 +
      QTJBNTEdMBsGA1UEAwwUaW1hMmE1LXJleDRldmVyLnNpdGUxLjAsBgkqhkiG9w0B
 +
      CQEWH3Bhc2NhbC5jb2ludEBwb2x5dGVjaC1saWxsZS5uZXQwggEiMA0GCSqGSIb3
 +
      DQEBAQUAA4IBDwAwggEKAoIBAQDBKS9p8572UiXo2W1dAiKEKLq+B6ge/si0AhMH
 +
      fLtovMz7Xvy/9oQnq25SvkWaNRuAJrvzROGS2mzkG9IEhnEpWSTNvspTO60PgNPo
 +
      EUYcgKAeEuVVJyom3K3ioBOvllucQfiOIB/ykvP80s+9Wjo2vf2PkESPTjfM0zKP
 +
      2JMT9cGQV6auD7NU+Ygz7w5dW/NKkU2KZA9HQ7i95+/ST3r2T0D8xP/ltEBC0Q7i
 +
      U/OVkAKn6CPJ6KtkbQYvgKVG95IM5SQb/WxRVNnHKS4f+erNFYpx5iNiHhv6larV
 +
      G0oR9uNsg7tOhdhcVVnooGSAsoxtgmDLwzuuho+3fS4t1K83AgMBAAGgGjAYBgkq
 +
      hkiG9w0BCQcxCwwJZ2xvcGdsb3AhMA0GCSqGSIb3DQEBCwUAA4IBAQB7jtWizvBQ
 +
      dNEyyVRhS563mKFo34RWW4g5tpnPC6wepQ7tvHo6gZZtzljobsWF55lRK7/Pi8eh
 +
      ANyQxb1Lo9FcHJcUOEMc8heeutSZQoCslTdRNMe+uBhQ/qCLXjy+fgdptqPi9cXP
 +
      zi8gBbrAQ9sHqJPK/RwhzuhCkBSzYgoNbYLjrHf8lCe60+7+0HBKM3jpTUDmzrzg
 +
      Kmb8GmkgcrzKSNhlOFZpiQqBJUfK5zJEucdhJ0j7Tupwf+J2oO+TccnCNH7o1Ykc
 +
      7ANKYKpf8AoCcZenLutCXt3YGjT8INuh5SnpsyR3BZUK9hNzZGK9Ilv9hwiEnmaS
 +
      PQWRkLUGQdh+
 +
      -----END CERTIFICATE REQUEST-----
 +
 
 +
Puis, Gandi.net va demander une méthode de vérification sur le serveur web cible afin de savoir s'il s'agit bien de notre serveur.Il existe trois possibilités:
 +
*Par verification DNS
 +
*Par Mail
 +
*Par fichier
 +
Nous avons choisi la méthode par fichier, certes un peu longue mais ne nécessitant pas l'intervention de Monsieur Redon.
 +
On copie ainsi un fichier temporaire à l'endroit indiqué par gandi et on attend que gandi valide la demande.
 +
Après une verification de la part de Gandi (qui nécessite plusieurs dizaines de minutes), on obtient un certificat ('''.csr''') et le certificat intermédiaire ('''.pem''')
 +
Ils sont nécessaires pour la configuration du site en HTTPS.
 +
 
 +
=== S'assurer qu'Apache écoute le port 443 (protocole https) ===
 +
On sait que le protocole HTTPS se sert du port 443 pour communiquer , verifions alors que c'est bien le cas :
 +
    root@ima2a5-rex4ever:/etc/apache2# netstat -tanpu |grep "LISTEN" |grep "443"
 +
    tcp6      0      0 :::443                  :::*                    LISTEN      10706/apache2
 +
Le résultat indique en effet que le port 443 est ecouté par apache2, ce qui signifie qu'il ne faut pas faire de configuration supplémentaire.
 +
 
 +
=== Activation du protocole SSL ===
 +
Il faut activer le module qui gère le protocole SSL via la commande :
 +
  a2enmode ssl
 +
  service apache2 restart
 +
 
 +
=== Configuration du VirtualHost Apache pour le protocole HTTPS ===
 +
Afin de ne pas saboter la configuration HTTP déjà en place, on va dupliquer la configuration disponible dans /sites-available:
 +
    cp ima2a5-rex4ever.site.conf ima2a5-rex4ever.site-ssl.conf
 +
Modification :
 +
  <VirtualHost *:443>
 +
  #  General setup for the virtual host
 +
    DocumentRoot "/var/www/ima2a5-rex4ever"
 +
    ServerName ima2a5-rex4ever.site:443                                                                                                                                                                                                          ServerAdmin pascal.coint@polytech-lille.net                                                                                                                                                                                                  ErrorLog "/usr/local/apache2/logs/error_log"                                                                                                                                                                                                TransferLog "/usr/local/apache2/logs/access_log"                                                                                                                                                                                          # Activation du SSL                                                                                                                                                                                                                                SSLEngine On
 +
   
 +
    # Activation de tous les protocoles sécurisés (TLS v1.0, v1.1 et TLS v1.2) touut en désactivant les protocoles non sécurisés (SSL v2, SSL v3)
 +
    SSLProtocol All -SSLv3 -SSLv2
 +
    # Le navigateur devra choisir une méthode de chiffrement en respectant l'ordre indiquée dans SSLCipherSuite
 +
    SSLHonorCipherOrder on
 +
   
 +
    # Chemin vers le certificat SSL de votre nom de domaine
 +
    SSLCertificateFile "/etc/apache2/certificate/ima2a5-rex4ever.cer"
 +
    SSLCACertificateFile "/etc/apache2/certificate/ima2a5-rex4ever.pem"
 +
    # Chemin vers la clée privée du certificat SSL de votre nom de domaine
 +
    SSLCertificateKeyFile "/etc/apache2/certificate/ima2a5-rex4ever.key"   
 +
    </VirtualHost>
 +
On peut maintenant permuter les fichiers .conf et renommer notre ancien .conf en "ima2a5-rex4ever.site-http.conf"
 +
'''Note :''' Comme vous aurez pu le remarquer, j'ai créer un dossier certificate dans lequel j'ai mis le .cer,le .csr,le.key et le .pem afin de ne pas les perdre.
 +
On va ensuite décharger puis recharger le site :
 +
  a2dissite ima2a5-rex4ever.site
 +
  a2ensite ima2a5-rex4ever.site
 +
  service apache2 restart
 +
 
 +
Ensuite on va regarder quels sont nos sites actifs à l'aide de apache2ctl -S , ce qui retourne :
 +
    *:80                  ima2a5-rex4ever.site (/etc/apache2/sites-enabled/000-default.conf:1)
 +
    *:443                  ima2a5-rex4ever.site (/etc/apache2/sites-enabled/ima2a5-rex4ever.site.conf:13)
 +
Le site est prêt pour le HTTPS
 +
 
 +
=== Securisation du DNS : Le DNSSEC ===
 +
Avoir un site sécurisé c'est bien , avoir toute la chaine de transmission pour éviter les fraude c'est encore mieux. Pour cela, il est possible de concevoir un DNSSEC (contraction de DNS SECURISED)
 +
 
 +
==== Génération de paires de clefs KSK et ZSK ====
 +
 
 +
Tout comme pour le certification HTTPS,il faut générer deux paires de clefs pour notre DNSSEC. On peut le faire avec la méthode RSAHA1 suivante :
 +
  dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE ima2a5-rex4ever.site
 +
  dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE ima2a5-rex4ever.site
 +
On obtient alors deux paires de clefs que l'on renomme et que l'on place dans un dossier (que l'on créé evidemment) à l'emplacement '''/etc/bind/ima2a5-rex4ever.site.dnssec'''
 +
 
 +
==== Modification de /etc/bind/db.ima2a5-rex4ever.site ====
 +
Pour une raison que j'ignore, les commandes liées au DNS ont du mal avec les fichiers en db.quelquechose, on renomme donc '''db.ima2a5-rex4ever.site''' en '''ima2a5-rex4ever.site'''
 +
Puis on ouvre ce fichier fraichement renommé et on ajoute les lignes de la manière suivante :
 +
  ;
 +
  ; BIND data file for local loopback interface
 +
  ;
 +
  $TTL 604800
 +
  '''$include /etc/bind/ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-ksk.key'''
 +
  '''$include /etc/bind/ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-zsk.key'''
 +
  @ IN SOA dns.ima2a5-rex4ever.site. root@ima2a5-rex4ever.site. (
 +
  29112025 ; Serial
 +
  604800 ; Refresh
 +
      86400 ; Retry
 +
  2419200 ; Expire
 +
  604800 ) ; Negative Cache TTL
 +
  ;
 +
  @  IN NS dns.ima2a5-rex4ever.site.
 +
  @      IN      NS      ns6.gandi.net.
 +
  dns IN A 193.48.57.163
 +
  www    IN      A      193.48.57.163
 +
 
 +
Il faut maintenant faire signer le document grâce à la commande suivante (on créé ainsi le document '''ima2a5-rex4ever.site.signed'''):
 +
  dnssec-signzone -o ima2a5-rex4ever.site -k ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-ksk ima2a5-rex4ever.site ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-zsk
 +
 
 +
==== Modification de /etc/bind/named.conf.local ====
 +
Maintenant que le document est signé, il faut dire à Bind de pointer sur celui-ci plutot que sur db....
 +
Pour ce faire il faut modifier named.conf.local de cette manière :
 +
 
 +
//
 +
// Do any local configuration here
 +
//
 +
 
 +
// Consider adding the 1918 zones here, if they are not used in your
 +
// organization
 +
//include "/etc/bind/zones.rfc1918";
 +
 
 +
zone "ima2a5-rex4ever.site" {
 +
type master;
 +
file "/etc/bind/ima2a5-rex4ever.site.signed";
 +
};
 +
 
 +
==== Modification de /etc/bind/named.conf.options ====
 +
De même que pour le DNS, il faut modifier de la manière suivante pour le DNSSEC :
 +
  '''dnssec-validation auto;'''
 +
  '''dnssec-enable yes;'''
 +
  '''dnssec-lookaside auto;'''
 +
        auth-nxdomain no;    # conform to RFC1035
 +
        listen-on-v6 { any; };
 +
        allow-transfer { "allowed_to_transfer"; };
 +
    };
 +
   
 +
    acl "allowed_to_transfer" {
 +
        217.70.177.40/32; // adresse IP du dns6.gandi.net
 +
    };
 +
 
 +
Il ne reste plus qu'a relancer , et on peut voir le résultat grâce à [https://dnsviz.net DNSVIZ]
 +
 
 +
== Attaque d'une installation Wi-fi ==
 
=== Description ===
 
=== Description ===
Notre Client Wi-fi est un ordinateur portable fourni par Monsieur Redon. Il ne nécessite pas nécessairement de configuration. Cependant, la clef Wi-Fi fournie avec elle doit être paramétrée (la datasheet peut se trouver à l'adresse suivant ; [https://www.farnell.com/datasheets/1669935.pdf Datasheet]).
+
Notre Client Wi-fi est un ordinateur portable fourni par Monsieur Redon. Il ne nécessite pas nécessairement de configuration. Cependant, la clef Wi-Fi fournie avec elle doit être paramétrée (la datasheet peut se trouver à l'adresse suivant ; [https://www.farnell.com/datasheets/1669935.pdf Datasheet]). De plus, il faut installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA
=== Paramétrage du réseau Wifi ===
+
 
=== Paramétrage du réseau Wifi ===
+
=== Installation du paquetage AirCrack-ng ===
=== Paramétrage du réseau Wifi ===
+
Pour installer [https://doc.ubuntu-fr.org/aircrack-ng AirCrack] (utilitaire qui permet de casser les clefs WEP et WPA), il suffit de taper la commande :
=== Paramétrage du réseau Wifi ===
+
    apt-get install aircrack-ng
=== Paramétrage du réseau Wifi ===
+
'''Note:''' il faut auparavant configurer le réseau pour se connecter à internet.
=== Paramétrage du réseau Wifi ===
+
 
=== Paramétrage du réseau Wifi ===
+
=== Utilisation de AirCrack pour clef WEP ===
=== Paramétrage du réseau Wifi ===
+
Après avoir branché la clef WiFi, on se sert de '''airmon-ng''' qui est un utilitaire qui espionne le réseau et permet d'obtenir les types d'interfaces communicantes/espionnable.
 +
  airmon-ng
 +
Pour tenter de s'y connecter en tant qu'espion, il faut alors taper (nous le tapons ici avec wlan0mon):
 +
  airmong-ng start NOMRESEAUESPIONNABLE
 +
Puis, pour observer et découvrir les canaux associés au réseau et leurs SSID,il faut taper:
 +
  airodump-ng --encrypt wep NOMRESEAUESPIONNABLE
 +
Puis à l'aide d'un second terminal, on peut stocker les informations volées dans un .txt :
 +
  Airodump-ng FICHIER.txt -c 2 --bssid ADDRESSBSSID NOMRESEAUESPIONNABLE
 +
Ce qui donne dans notre cas :
 +
  airmon-ng
 +
  airmong-ng start wlan0mon
 +
  airodump-ng --encrypt wep wlan0mon
 +
  Airodump-ng -w reseau_1.txt -c 2 --bssid 04:DA:D2:50:53 wlan0mon  (<== pour le réseau cracotte 3)
 +
 
 +
Commence alors le craquage de la clef Wifi en Wep. On estime qu'il faut capturer plus ou moins 50 000 datas pour approximer 50% de chance de craquer la clef.
 +
Après 40 000 datas volées , on réussit à craquer la clef, il nous aura fallu environ '''14 minutes'''.
 +
 
 +
    KEY FOUND! [BA:BE:EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:44:44 ]
 +
    Decrypted correctly : 100%
 +
 
 +
=== Utilisation de AirCrack pour clef WPA2-PSK ===
 +
De même que précedemment, on recommence en changeant le --encrypt et on obtient :
 +
  airmon-ng
 +
  airmong-ng start wlan0mon
 +
  airodump-ng --encrypt wpa wlan0mon
 +
On obtient les informations suivantes sur notre réseau cible :
 +
Channel: 2
 +
SSIDName: kracotte03
 +
BSSIDAdress: 04:DA:D2:9C:50:5A
 +
 
 +
On peut alors espionner et voler des informations avec les '''handshakes''':
 +
airodump-ng -w kracotte03 -c 2 --bssid 04:DA:D2:9C:50:5A
 +
 
 +
'''-w kracotte03''' indique que l'on souhaite tout enregistrer dans un fichier nommé '''kracotte03.'''. On obtient alors après un moment les datas volées et les informations sont extraites sous plusieurs formats.
 +
Le format '''.cap''' est compatible avec l'utilitaire que nous allons utiliser, on le copie donc sur une clef USB et on va cracker la clef sur une zabeth (vitesse de calcul plus elevée).
 +
Pour se faire , on construit un dictionnaire (ensemble possible de toutes les combinaisons) avec l'utilitaire Crunch via la commande :
 +
  crunch 8 8 123456789 >> Dico.txt
 +
Notre dictionnaire est largement simplifié car nous sommes au courant qu'il s'agit d'un ensemble de 8 chiffres de 1 a 9 , ce qui permet de préciser à crunch une taille min et max de 8 et les caractères admissibles de 1 à 9
 +
Le dictionnaire est maintenant prêt, on lance alors le cassage de clef par force brute :
 +
aircrack-ng psk-01.cap -w Dico.txt
 +
 
 +
Après TREEEEEEEEEEEEEEEEEEEEEEEEEEEEEES Longtemps , on obtient la clef :
 +
      [00:21:41] 10233332/102795810 keys tested (7985.18 k/s)
 +
     
 +
      Time left: 3 hours, 13 minutes, 12 seconds                9.96%
 +
                          KEY FOUND! [ 10233333 ]
 +
      Master Key    : 5A D9 A4 39 7A 4E 14 A6 44 DE C4 AB FF 1E 63 D7
 +
                      46 7B F8 02 23 ED EA A9 82 3F 6A FC 68 DE F2 5D
 +
      Transient Key  : 29 DA 59 3B EC 25 DB 6A 62 AD 50 2C 17 52 BC F8
 +
                      C9 CD 7C 85 A5 07 7E 44 84 B5 A6 EB 2E 47 B3 D0
 +
                      1C CC CC F8 24 EB 00 0A C0 7B B8 60 13 AE 57 74
 +
                      1E 15 A9 FC D7 A8 E5 C6 14 9B 01 60 E4 C4 96 43
 +
      EAPOL HMAC    : 15 99 D7 E0 33 B3 E1 4C 57 6F 8E E4 69 AF B0 08
 +
 
 +
== Diverses commandes ==
 +
=== Creation du Raid5 avec mdadm ===
 +
Nous commencons par créer un RAID5 comme demandé dans la partie 6.1 du sujet.
 +
La manipulation des disques dur restera toujours une opération délicate demandant un maximum d'attention et ne devant pas se faire à la va-vite. Rien de mieux qu'un bon dimanche pluvieux pour s'aventurer dans ces contrées. Ne jamais oublier que les erreurs de manipulation sur les disques sont souvent irréversibles. Vous l'aurez compris, je vous dis tout ça afin de vous désigner comme seul responsable en cas de problèmes qui pourraient survenir sur votre matériel.
 +
 
 +
Pour se faire on commence par créer 3 disques de 1Go chacun:
 +
  lvcreate -L1G -n ima2a5-rex4ever-disk1 virtual
 +
  lvcreate -L1G -n ima2a5-rex4ever-disk2 virtual
 +
  lvcreate -L1G -n ima2a5-rex4ever-disk3 virtual
 +
On éteint la machine et on recommence la même manipulation que pour la partie 3.5.1 du wiki pour attacher disk1,disk2 et disk3.
 +
Nos 3 disques sont maintenant reliées à notre machine comme on le peut voir avec la commande '''fdisk -l'''
 +
 
 +
  Disk /dev/xvdb3: 1 GiB, 1073741824 bytes, 2097152 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/xvdb4: 1 GiB, 1073741824 bytes, 2097152 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/xvdb5: 1 GiB, 1073741824 bytes, 2097152 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
 +
 
 +
On nous propose de réaliser le raid5 logiciel avec l'utilitaire mdadm ([https://doc.ubuntu-fr.org/raid_logiciel mdadm])
 +
Assemblons maintenant nos 3 disques en un RAID5 via la commande :
 +
  mdadm --create /dev/md0 --level=5  --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
 +
'''Note:''' Ne pas essayer de renommer md0
 +
Pour automatiser le raid5 à chaque démarrage:
 +
  mdadm --monitor --daemonise /dev/md0
 +
Puis le formatage du volume RAID nouvellement créé:
 +
  mkfs.ext4 /dev/md0
 +
Déclarez ce volume dans `/etc/fstab` pour que le système le monte au démarrage (le système de fichier, pas le volume en lui même). Pour ce faire Editez le fichier /etc/fstab et ajoutez à sa fin la ligne :
 +
  /dev/md0 /media/raid ext4 defaults 0 1
 +
Puis créer le fichier /media/raid qui est le fichier sur lequel le raid est monté :
 +
  mkdir /media/raid
 +
En retirant un disque (mise en commentaire /etc/fstab), le disque md0 est toujours actif et utilisable.
 +
 
 +
=== Cryptage de données ===
 +
Le cryptage des données s'effectue grâce à l'utilitaire [https://doc.ubuntu-fr.org/cryptsetup cryptsetup].
 +
==== Remettre à zero la clef USB ====
 +
Pour se faire, on commence par chercher le nom de la clef USB cible dans le gestionnaire :
 +
      lsblk
 +
Dans notre cas,le périphérique cible est nommé '''sda''' (il peut aussi s'appeler sdb ,sdc ...)
 +
On va acceder aux partitions via :
 +
      fdisk /dev/sda
 +
Le menu suivant apparait alors :
 +
  Welcome to fdisk (util-linux 2.25.2).
 +
  Changes will remain in memory only, until you decide to write them.
 +
  Be careful before using the write command.
 +
  Command (m for help):
 +
On va d'abord nettoyer la clef avant d'y crypter nos données, pour cela on entre le choix 'd' et on supprime les partitions existantes.
 +
 
 +
Puis pour créer une nouvelle partition on entre le choix 'n' puis 'p' qui correspond à :
 +
'''n''' nouvelle partition
 +
'''p''' partition primaire
 +
 
 +
Command (m for help): n
 +
Partition type
 +
  p  primary (0 primary, 0 extended, 4 free)
 +
  e  extended (container for logical partitions)
 +
Select (default p):
 +
 
 +
Using default response p.
 +
Partition number (1-4, default 1): '''1'''
 +
First sector (1-1953525167, default 2048):'''1'''
 +
Last sector, +sectors or +size{K,M,G,T,P} (2048-1953525167, default 1953525167):
 +
Created a new partition 1 of type 'Linux' and of size 7.1GiB.
 +
 
 +
Puis on sauvegarde :
 +
 
 +
Command (m for help): w
 +
The partition table has been altered.
 +
Calling ioctl() to re-read partition table.
 +
Syncing disks.
 +
 
 +
==== Cryptage de la Clef ====
 +
La clef est prête, on peut desormais crypter et l'utiliser avec l'utilitaire cyptsetup.
 +
Pour créer le cryptage au format Luks :
 +
    cryptsetup luksFormat -c aes -h sha256 /dev/sdb
 +
 
 +
==== Accès à la partition cryptée ====
 +
Maintenant que la clef est cryptée, on peut l'utiliser. Pour commencer, on va monter le répertoire pour pouvoir l'ouvrir. Commencez par créer un repertoire '''/mnt/clef_usb_cryptee''' puis taper la suite de commande :
 +
    cryptsetup open --type luks /dev/sdb home -- ouverture de la clef
 +
    mkfs.ext4 /dev/mapper/home -- Système de fichier relié
 +
    mount -t ext4 /dev/mapper/home /mnt/clef_usb_cryptee
 +
 
 +
On peut maintenant acceder au contenu de la clef et le modifier via le dossier '''/mnt/clef_usb_cryptee'''
 +
 
 +
==== Debrancher la partition cryptée ====
 +
Pour débrancher la clef, il faut au préalable démonter la partition et refermer l'utilitaire via les commandes:
 +
  umount /mnt/clef_usb_cryptee -- Demonter le repertoire
 +
  cryptsetup close --type luks home
 +
Et voila, vous pouvez désormais retirer la clef.
 +
 
 +
=== Réseau WPA2-EAK ===
 +
 
 +
== Architecture Réseau ==
 +
 
 +
Dans cette partie, vous trouverez comment nous avons configuré les routeurs ainsi que les commutateurs qui se trouve dans les salles E304 et E306.
 +
 
 +
=== Bridge Cordouan ===
 +
 
 +
Nous avons due modifier le bridge de cordouan afin de relier les 2 ports ethernets ensemble
 +
 
 +
nano /ect/network/interfaces
 +
   
 +
    # Bridge for IMA2a5
 +
   
 +
    auto eth1
 +
    auto eth4
 +
    iface eth1 inet manual
 +
        post-up ifconfig $IFACE up
 +
        post-down ifconfig $IFACE down
 +
    iface eth4 inet manual
 +
        post-up ifconfig $IFACE up
 +
        post-down ifconfig $IFACE down
 +
     
 +
    auto IMA2a5
 +
    iface IMA2a5 inet manual
 +
      bridge_ports eth1 eth4
 +
 
 +
Puis on réveille les ports à l'aide de Ifdown et Ifup
 +
 
 +
=== Configuration des 2 commutateurs ===
 +
 
 +
===== Connexion =====
 +
 
 +
Pour accéder au commutateur, nous avons utilisé minicom avec un cable série directement branché sur la prise console du commutateur :
 +
 
 +
    minicom -os ( avec '''ttyUSB0''', une vitesse de transfert de '''9600 bauds''' et le '''flow control désactivé''')    // les paramètres sont modifiable directement depuis les options de minicom
 +
 
 +
===== Commande de base =====
 +
 
 +
Voici quelque commandes de base qui nous ont servi pour la configuration des commutateurs
 +
 
 +
    enable          // passage en admin pour pouvoir accéder aux données du commutateur
 +
 
 +
    write            // Sauvegarde de la configuration et l’implanter dans le commutateur
 +
 
 +
    show interface status OU sh int status  // Montre l'état de toutes les interfaces présentes sur le commutateur ainsi que les données associées
 +
 
 +
    configuration terminal    // permets d'accéder aux interfaces et ainsi pouvoir les modifier
 +
 
 +
    exit            // permets de sortir du configurateur actuel (par exemple sortir de l'interface)
 +
 
 +
==== Configuration des ports du commutateur ====
 +
 
 +
Nous avons 4 connexions qui sont dirigées vers le commutateur de la salle E304 ainsi que celui en E306
 +
- Un lien vers le routeur
 +
- Un lien vers la borne wifi
 +
- Un lien vers Corduan
 +
- Un lien vers l'autre commutateur
 +
 
 +
{| class="wikitable" style="text-align: center;width: 85%;margin: auto;"
 +
! Connexion !! E306 !! E304
 +
|-
 +
! scope="row" style="width: 20%"|Corduan
 +
|style="width: 40%"| Gigabitethernet 5/1
 +
|style="width: 40%"| Gigabitethernet 1/2
 +
|-
 +
! scope="row" style="width: 20%"|Borne Wifi
 +
|style="width: 40%"| Gigabitethernet 5/3
 +
|style="width: 40%"| Gigabitethernet 2/2
 +
|-
 +
! scope="row" style="width: 20%"|Router
 +
|style="width: 40%"| Ge 5/1(E306) & Ge 1/1(E304)
 +
|style="width: 40%"| Ge 1/1(E306) & Ge 2/2(E304)
 +
|-
 +
|}
 +
}
 +
 
 +
===== Création du lien pour la borne wifi =====
 +
 
 +
    enable
 +
    configure terminal (ou conf t)
 +
    interface XXXX (ou int XXXX)
 +
    switchport    //Rendre accessible la modification du port
 +
    switchport trunk encapsulation dot1q  //Encapsule avec la trame le numéro du Vlan associé, ce qui permettra de d'avoir de quel équipement viens le paquet ainsi la réponse sera dirigé vers le bon port
 +
    switchport mode trunk  //Configure le port du switch en mode trunk, ce qui permets de ne pas avoir de restriction sur les Vlan, tous les Vlan peuvent passer à travers ce port
 +
    no shut    //Démarre le port ou de le garder actif
 +
    exit
 +
    exit
 +
    write
 +
 
 +
 
 +
===== Création du lien pour Corduan =====
 +
 
 +
    enable
 +
    configure terminal
 +
    interface XXXX
 +
    switchport
 +
    switchport mode access //Rendre modifiable le port
 +
    switchport access vlan42 //Autoriser le vlan 42 à transister à travers ce port
 +
    no shutdown
 +
    exit
 +
    exit
 +
    write
 +
 
 +
===== Création du lien pour le router =====
 +
 
 +
    enable
 +
    configure terminal (ou conf t)
 +
    interface XXXX (ou int XXXX)
 +
    switchport   
 +
    switchport trunk encapsulation dot1q 
 +
    switchport mode trunk 
 +
    no shut   
 +
    exit
 +
    exit
 +
    write
 +
 
 +
===== Création du lien pour l'autre routeur =====
 +
 
 +
    enable
 +
    configure terminal (ou conf t)
 +
    interface XXXX (ou int XXXX)
 +
    switchport   
 +
    switchport trunk encapsulation dot1q 
 +
    switchport mode trunk 
 +
    no shut   
 +
    exit
 +
    exit
 +
    write
 +
 
 +
===== Création des Vlan =====
 +
 
 +
    enable
 +
    conf t
 +
    vlan 42
 +
    name Corduan
 +
    exit
 +
    exit
 +
    write
 +
 
 +
    enable
 +
    conf t
 +
    vlan 2 à 7
 +
    name groupe 1 à 6
 +
    exit
 +
    exit
 +
    write
 +
 
 +
    enable
 +
    conf t
 +
    vlan 130
 +
    name interconnexion
 +
    exit
 +
    exit
 +
    write
 +
 
 +
Pour supprimer un vlan il suffit de faire :
 +
    no vlan X
 +
 
 +
=== Configuration du router E304 ===
 +
 
 +
===== Connexion =====
 +
 
 +
Pour accéder au routeur, nous avons utilisé minicom avec un USB directement branché sur la prise console du commutateur :
 +
 
 +
    minicom -os ( avec '''ttyACM0''', une vitesse de transfert de '''9600 bauds''' et le ''''flow control désactivé''')    // les paramètres sont modifiable directement depuis les options de minicom
 +
 
 +
===== Commande de base =====
 +
 
 +
Ce sont exactement les mêmes que celles utilisées pour les commutateurs
 +
 
 +
==== Configuration des ports ====
 +
 
 +
==== Interconnexion du réseau IPV4 ====
 +
 +
 
 +
  configure terminal
 +
  ip routing
 +
  router ospf 1        //création d'un opsf (Open Shortest Path First)                                     
 +
  router-id 10.60.0.254 
 +
  log-adjacency-changes
 +
  summary-address 193.48.57.160 255.255.255.240 //donne l'addresse IP la plus base du réseau routé
 +
  summary-address 10.60.0.1 255.255.0.0 not-advertise //donne l'addresse Ip la plus base du réseau non routé/ privé
 +
  redistribute connected subnets
 +
  network 192.168.222.6 0.0.0.7 area 1
 +
  exit
 +
  exit
 +
  write
 +
 
 +
==== Interconnexion du réseau IPV6 ====
 +
 
 +
  ipv6 unicast-routing
 +
  conf t
 +
  ipv6 router rip tpima2a5                //Création d'une route IPV6 sous le nom tpima2a5
 +
  redistribute connected metric 1
 +
  redistribute rip 1 metric 1
 +
  redistribute static metric 1
 +
  exit
 +
  exit
 +
  write
 +
 
 +
======  Vers les commutateurs ======
 +
 
 +
La configuration est la même pour les 2 ports correspondant aux commutateurs
 +
Nous avons besoin de 6 Vlan pour nos groupes et d'un Vlan d'interconnexion
 +
 
 +
  enable                                                 
 +
 +
  configure terminal
 +
 +
  interface XXXX                       
 +
  no ip address                            //Pas d'addresse IP associé
 +
  negotiation auto                        //Détermine automatiquement la vitesse de transfert
 +
  media-type RJ45                          //Type de connexion (ici RJ45)
 +
 
 +
Voici les vlan associé à nos groupes :
 +
 +
  service instance 2 ethernet              // création d'un vlan 2 dans cette interface
 +
  encapsulation dot1q 2                    // Permets d'assurer une continuité d'un VLAN issue d'un switch sur un routeur via un lien trunk
 +
  rewrite ingress tag pop 1 symmetric      // retire le tag du vlan
 +
  bridge-domain 2                          //création d'un bridge domaine interface (BDI) attribué au chiffre 2
 +
   
 +
  service instance 3 ethernet
 +
  encapsulation dot1q 3
 +
  rewrite ingress tag pop 1 symmetric
 +
  bridge-domain 3
 +
   
 +
  service instance 4 ethernet
 +
  encapsulation dot1q 4
 +
  rewrite ingress tag pop 1 symmetric
 +
  bridge-domain 4
 +
 
 +
  service instance 5 ethernet
 +
  encapsulation dot1q 5
 +
  rewrite ingress tag pop 1 symmetric
 +
  bridge-domain 5
 +
   
 +
  service instance 6 ethernet
 +
  encapsulation dot1q 6
 +
  rewrite ingress tag pop 1 symmetric
 +
  bridge-domain 6
 +
 
 +
  service instance 7 ethernet
 +
  encapsulation dot1q 7
 +
  rewrite ingress tag pop 1 symmetric
 +
  bridge-domain 7
 +
 
 +
Voici le vlan associé à l'interconnexion :
 +
 +
  service instance 42 ethernet
 +
  encapsulation dot1q 42
 +
  rewrite ingress tag pop 1 symmetric
 +
  bridge-domain 42
 +
 
 +
======  Vers le SR 32 ======
 +
  interface XXXX                       
 +
  no ip address
 +
  negotiation auto
 +
  service instance 130 ethernet
 +
  encapsulation dot1q 130
 +
  bridge-domain 130
 +
 
 +
 
 +
===== Configuration des BDI =====
 +
 
 +
  conf t
 +
   
 +
  interface BDI1
 +
  ip address 10.60.0.254 255.255.255.0
 +
  exit
 +
 
 +
  interface BDI2
 +
  ip address 10.60.1.254 255.255.255.000          //Attribut l'addresse IPV4 pour le routeur ainsi que son mask
 +
  standby version 2                                //Activation du HSRP (Host service Routing protocole) version 2 plus stable que la 1
 +
  standby 2 ip 10.60.1.252                      //Donne l'addresse  IPV4 du routeur virtuelle pour le HSRP                           
 +
  standby 2 preempt                              // Activation du HSRP       
 +
  ipv6 address 2001:660:4401:60B2::/64 eui-64      //Attribut l'addresse IPV6                           
 +
  ipv6 enable                                      //Active l'addressage IPV6                             
 +
  ipv6 nd prefix 2001:660:4401:60B2::/64 1000 900  //Donner un préfixe IPV6 à chaque machine                             
 +
  ipv6 nd router-preference high                    //IPV6 sera la route de préférence par défaut avec une forte probabilitée
 +
  exit
 +
 
 +
  interface BDI3
 +
  ip address 10.60.2.254 255.255.255.000         
 +
  standby version 2
 +
  standby 3 ip 10.60.2.252                                                   
 +
  standby 3 preempt                                     
 +
  ipv6 address 2001:660:4401:60B3::/64 eui-64                                 
 +
  ipv6 enable                                                                   
 +
  ipv6 nd prefix 2001:660:4401:60B3::/64 1000 900                               
 +
  ipv6 nd router-preference High                   
 +
  exit                     
 +
 
 +
  interface BDI4
 +
  ip address 10.60.3.254 255.255.255.000         
 +
  standby version 2
 +
  standby 4 ip 10.60.3.252                                                   
 +
  standby 4 preempt                                     
 +
  ipv6 address 2001:660:4401:60B4::/64 eui-64                                   
 +
  ipv6 enable                                                                   
 +
  ipv6 nd prefix 2001:660:4401:60B4::/64 1000 900                               
 +
  ipv6 nd router-preference High                 
 +
  exit
 +
 
 +
  interface BDI5
 +
  ip address 10.60.4.254 255.255.255.000         
 +
  standby version 2
 +
  standby 5 ip 10.60.4.252                                                   
 +
  standby 5 preempt                                     
 +
  ipv6 address 2001:660:4401:60B5::/64 eui-64                                 
 +
  ipv6 enable                                                                   
 +
  ipv6 nd prefix 2001:660:4401:60B5::/64 1000 900                               
 +
  ipv6 nd router-preference High                 
 +
  exit
 +
 
 +
  interface BDI6
 +
  ip address 10.60.5.254 255.255.255.000         
 +
  standby version 2
 +
  standby 6 ip 10.60.5.252                                                     
 +
  standby 6 preempt                                     
 +
  ipv6 address 2001:660:4401:60B6::/64 eui-64                                   
 +
  ipv6 enable                                                                   
 +
  ipv6 nd prefix 2001:660:4401:60B6::/64 1000 900                               
 +
  ipv6 nd router-preference High                   
 +
  exit 
 +
 
 +
  interface BDI7
 +
  ip address 10.60.6.254 255.255.255.000         
 +
  standby version 2
 +
  standby 7 ip 10.60.6.252                                                     
 +
  standby 7 preempt                                     
 +
  ipv6 address 2001:660:4401:60B7::/64 eui-64                                   
 +
  ipv6 enable                                                                   
 +
  ipv6 nd prefix 2001:660:4401:60B7::/64 1000 900                               
 +
  ipv6 nd router-preference High                   
 +
  exit                               
 +
 +
  interface BDI42
 +
  ip address 193.48.57.173 255.255.255.240       
 +
  standby version 2
 +
  standby 42 ip 193.48.57.172                                                   
 +
  standby 42 preempt                                     
 +
  ipv6 address 2001:660:4401:60B1::/64 eui-64                                   
 +
  ipv6 enable                                                                   
 +
  ipv6 nd prefix 2001:660:4401:60B1::/64 1000 900                             
 +
  ipv6 nd router-preference High                   
 +
  exit
 +
 
 +
  int vlan 130
 +
  ip address 192.168.222.1 255.255.255.248       
 +
  ipv6 address fe80::2 link-local                 
 +
  ipv6 enable
 +
  ipv6 rip tpima2a5 enable                       
 +
  exit
 +
  ip rooting
 +
 
 +
  exit
 +
  write
 +
 
 +
=== Configuration du router E306 ===
 +
 
 +
===== Connexion =====
 +
 
 +
Pour accéder au routeur, nous avons utilisé minicom avec un USB directement branché sur la prise console du commutateur :
 +
 
 +
    minicom -os ( avec '''ttyUSB0''', une vitesse de transfert de '''9600 bauds''' et le ''''flow control désactivé''')    // les paramètres sont modifiable directement depuis les options de minicom
 +
 
 +
===== Commande de base =====
 +
 
 +
Ce sont exactement les mêmes que celles utilisées pour les commutateurs
 +
 
 +
==== Configuration des ports ====
 +
 
 +
La configuration est la même pour les 2 ports correspondant aux commutateurs
 +
Nous avons besoin de 6 Vlan pour nos groupes et d'un Vlan d'interconnexion
 +
 
 +
===== Création du lien pour SR32 =====
 +
 
 +
    enable
 +
    configure terminal
 +
    interface XXXX
 +
    switchport
 +
    switchport mode access //Rendre modifiable le port
 +
    switchport access vlan130 //Autoriser le vlan 130 à transister à travers ce port
 +
    no shutdown
 +
    exit
 +
    exit
 +
    write
 +
 
 +
===== Création du lien pour les commutateurs =====
 +
 
 +
    enable
 +
    configure terminal (ou conf t)
 +
    interface XXXX (ou int XXXX)
 +
    switchport   
 +
    switchport trunk encapsulation dot1q 
 +
    switchport mode trunk 
 +
    no shut   
 +
    exit
 +
    exit
 +
    write
 +
 
 +
==== Interconnexion du réseau IPV4 ====
 +
 
 +
 
 +
  configure terminal
 +
  router ospf 1        //création d'un opsf (Open Shortest Path First)                                     
 +
  router-id 10.60.0.253 
 +
  log-adjacency-changes
 +
  summary-address 193.48.57.160 255.255.255.240 //donne l'addresse IP la plus base du réseau routé
 +
  summary-address 10.60.0.1 255.255.0.0 not-advertise //donne l'addresse Ip la plus base du réseau non routé/ privé
 +
  redistribute connected subnets
 +
  network 192.168.222.8 0.0.0.7 area 1
 +
  exit
 +
  exit
 +
  write
 +
 
 +
==== Interconnexion du réseau IPV6 ====
 +
 
 +
  conf t
 +
  ipv6 router rip tpima2a5                //Création d'une route IPV6 sous le nom tpima2a5
 +
  redistribute connected metric 1
 +
  redistribute rip 1 metric 1
 +
  redistribute static metric 1
 +
  exit
 +
  exit
 +
  write
 +
 
 +
======  Vers les commutateurs ======
 +
 
 +
 
 +
  conf t
 +
   
 +
  interface Vlan1
 +
  ip address 10.60.0.253 255.255.255.0
 +
  exit
 +
   
 +
  interface Vlan2
 +
  ip address 10.60.1.253 255.255.255.0
 +
  ipv6 address 2001:660:4401:60B2::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2001:660:4401:60B2::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 2 ip 10.60.1.252
 +
  standby 2 preempt
 +
  exit
 +
   
 +
  interface Vlan3
 +
  ip address 10.60.2.253 255.255.255.0
 +
  ipv6 address 2001:660:4401:60B3::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2001:660:4401:60B3::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 3 ip 10.60.2.252
 +
  standby 3 preempt
 +
  exit
 +
 
 +
  interface Vlan4
 +
  ip address 10.60.3.253 255.255.255.0
 +
  ipv6 address 2001:660:4401:60B4::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2001:660:4401:60B4::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 4 ip 10.60.3.252
 +
  standby 4 preempt
 +
  exit 
 +
 
 +
  interface Vlan5
 +
  ip address 10.60.4.253 255.255.255.0
 +
  ipv6 address 2001:660:4401:60B5::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2001:660:4401:60B5::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 5 ip 10.60.4.252
 +
  standby 5 preempt
 +
  exit 
 +
 
 +
  interface Vlan6
 +
  ip address 10.60.5.253 255.255.255.0
 +
  ipv6 address 2001:660:4401:60B6::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2001:660:4401:60B6::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 6 ip 10.60.5.252
 +
  standby 6 preempt
 +
  exit 
 +
 
 +
  interface Vlan7
 +
  ip address 10.60.6.253 255.255.255.0
 +
  ipv6 address 2201:660:4401:60B7::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2201:660:4401:60B7::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 7 ip 10.60.6.252
 +
  standby 7 preempt
 +
  exit 
 +
 
 +
  interface Vlan42
 +
  ip address 193.48.57.174 255.255.255.0
 +
  ipv6 address 2001:660:4401:60B1::/64 eui-64
 +
  ipv6 enable
 +
  ipv6 nd prefix 2001:660:4401:60B1::/64 1000 900
 +
  ipv6 nd router-preference High
 +
  standby version 2
 +
  standby 42 ip 193.48.57.172
 +
  standby 42 preempt
 +
  exit
 +
         
 +
  interface Vlan130
 +
  ip address 192.168.222.2 255.255.255.248
 +
  ipv6 address FE80::42:3 link-local
 +
  ipv6 enable
 +
  exit
 +
 
 +
  exit
 +
  write

Version actuelle datée du 29 novembre 2019 à 14:52

© Copyright Ginette

Sommaire

Accueil/Descriptif du groupe

Bienvenue sur la page du groupe 3. Le découpage en groupe par numéro permet de se repérer plus facilement dans l'adressage des différents réseaux nécessaire.Ce groupe est constitué de :

  • Pascal Coint
  • Quentin Weisbecker

Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système nous avons à installer une machine virtuelle Xen avec l'OS Devian ainsi qu'implanter un auto-commutateur et un point d'accès. Nous effectuerons pas la suite des tests d'intrusion sur ces points d'accès afin de voir la vulnérabilité des différents protocoles de clé. Pour notre cas, nous nous étendrons sur les protocoles WEP et WPA-PSK.

Informations importantes

Description Détails
ID VLAN 4
Réseau IP V4 10.60.3.0/24
Réseau IP V6 2001:660:4401:60B3::/64
Nom de l'ordinateur portable Requin
Repérage à l'étiqueteuse IMA2A5 - CW
Numéro de poste Zabeth03
Adresse du site internet version HTTP http://www.ima2a5-rex4ever.site/
Adresse du site internet version HTTPS https://www.ima2a5-rex4ever.site/

La machine Virtuelle sous XEN : ima2a5-rex4ever

Note importante

Comme indiqué dans le sujet, nous allons créer une machine virtuelle via l'utilitaire Xen Linux sur le dom0 cordouan.insecserv.deule.net via la commande ssh et le compte administrateur usuel.Sur notre machine virtuelle nous créerons par la suite un compte pifou et un compte root identique au Zabeth.

Création de notre machine virtuelle XEN

Après s'être connecté, il faut maintenant creer la machine virtuelle :

     xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force

L'installation se lance alors :

     root@cordouan:~# xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force
     Use of uninitialized value within %DIST in pattern match (m//) at /usr/bin/xen-create-image line 1803.
     
     General Information
     --------------------
     Hostname       :  ima2a5-rex4ever
     Distribution   :  ascii
     Mirror         :  http://fr.deb.devuan.org/merged/
     Partitions     :  swap            512M  (swap)
                       /               4G    (ext4)
     Image type     :  sparse
     Memory size    :  256M
     Kernel path    :  /boot/vmlinuz-4.9.0-6-amd64
     Initrd path    :  /boot/initrd.img-4.9.0-6-amd64
     
     Networking Information
     ----------------------
     IP Address     : DHCP [MAC: xxxxxxx]
     
     
     Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/swap.img
     Done
     
     Creating swap on /usr/local/xen/domains/ima2a5-rex4ever/swap.img
     Done
     
     Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/disk.img
     Done
     
     Creating ext4 filesystem on /usr/local/xen/domains/ima2a5-rex4ever/disk.img
     Done
     Installation method: debootstrap

L'installation peut sembler bloquer sur cette dernière ligne mais il est possible de voir ce qui se passe en arrière plan via un second terminal en SSH et la commande SSH

     tail -f /var/xen-tools/ima2a5-rex4ever.log

A la fin de l'installation,on obtient le mot de passe root et des informations importantes :

     Installation Summary
     ---------------------
     Hostname        :  ima2a5-rex4ever
     Distribution    :  ascii
     MAC Address     :  xxxxxxxxxxx
     IP Address(es)  :  dynamic
     SSH Fingerprint :  SHA256:xxxxxxx (DSA)
     SSH Fingerprint :  SHA256:xxxxxxx (ECDSA)
     SSH Fingerprint :  SHA256:xxxxxxx (ED25519)
     SSH Fingerprint :  SHA256:xxxxxxx (RSA)
     Root Password   :  sZzrYYPFZEwxsfmFghddGW5

Ajout du bridge à ima2a5-rex4ever.cfg

Dans un premier lieu, on regarde l'existence du brige sur l'hote distant via :

     brctl show

Ce qui nous retourne :

     bridge name	bridge id		STP enabled	interfaces
     IMA2a5		8000.000af75e3dc0	no		eth1
     eth2
     if3.0
     IMA5sc		8000.000af75e3dc2	no		eth3
     eth5
     Insecure		8000.c81f66c22b83	no		vlan6
     L3MRIT		8000.000af763ae2d	no		eth4
     StudentsInfo		8000.c81f66c22b83	no		vlan50

On voit bien l'existence du bridge IMA2a5, il faut donc l'ajouter à notre .cfg qui est le fichier de configuration de la VM (/etc/xen/ima2a5-rex4ever.cfg) et on modifie la ligne commençant par vif = et on ajoute le bridge de la manière suivante :

     vif = ['MAC:xxxxx,bridge = IMA2a5']

Après avoir modifié ce fichier, il faut le parser : xl create /etc/xen/ima2a5-rex4ever.cfg Une erreur NUMA placement failed, performance might be affected peut apparaître mais elle indique juste que xen n'arrive pas à disposer les VM comme il veut sur les procs, mais cela n'impactera que les performances nous passons outre ce problème.

Démarrer la VM et accès console

On lance alors la commande pour accéder à la machine virtuelle:

     xl create /etc/xen/ima2a5-rex4ever.cfg

On lance alors la commande pour accéder à la machine virtuelle:

     xl console ima2a5-rex4ever

il demande alors le login (root) et le mdp (longue chaine précédemment générée). Après nous être logué,on change le mot de passe qui devient le même que le mot de passe du root de corduan ou d'une zabeth.

Montage des répertoires /var et /home

Creation des disques logique

Il faut d'abord créer les partitions logiques sur corduan via :

    root@cordouan:~#lvcreate -L10G -n ima2a5-rex4ever-home virtual
    root@cordouan:~#lvcreate -L10G -n ima2a5-rex4ever-var virtual

Il est possible qu'il affiche l'avertissement suivant : WARNING: ext2 signature detected on /dev/virtual/ima2a5-rex4ever-home at offset 1080. Wipe it? [y/n] repondre alors oui(y). Il est possible de verifier que votre partition a bien été crée via la commande :

     lvdisplay

On obtient alors dans la liste de toutes les partitions, nous deux partitions précedemment créées

     --- Logical volume ---
     LV Path                /dev/virtual/ima2a5-rex4ever-home
     LV Name                ima2a5-rex4ever-home
     VG Name                virtual
     LV UUID                mhJqFx-zO1m-PlOU-Zmeu-8NGx-7UUO-c2g9dP
     LV Write Access        read/write
     LV Creation host, time cordouan, 2019-11-08 08:47:26 +0000
     LV Status              available
     # open                 0
     LV Size                10.00 GiB
     Current LE             2560
     Segments               1
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     256
     Block device           254:3
    --- Logical volume ---
    LV Path                /dev/virtual/ima2a5-rex4ever-var
    LV Name                ima2a5-rex4ever-var
    VG Name                virtual
    LV UUID                9Bnl6S-6CE5-CtO2-hD8f-RidD-sps5-b1mrWg
    LV Write Access        read/write
    LV Creation host, time cordouan, 2019-11-08 08:50:57 +0000
    LV Status              available
    # open                 0
    LV Size                10.00 GiB
    Current LE             2560
    Segments               1
    Allocation             inherit
    Read ahead sectors     auto
    - currently set to     256
    Block device           254:4

Il faut maintenant faire pointer le système de fichier sur nos deux nouveaux repertoires pour finir la création :

    mke2fs /dev/virtual/ima2a5-rex4ever-home
    mke2fs /dev/virtual/ima2a5-rex4ever-var

Nos deux disques sont maintenant prêt, il ne reste plus qu'a les connecter avec la VM. Pour cela, il faut modifier le .cfg de nouveau.

Modification du fichier de configuration

Retournons donc dans le fichier /etc/xen/ima2a5-rex4ever.cfg et dans la section disk modifier tel que :

    disk    	= [
                  	'file:/usr/local/xen/domains/ima2a5-rex4ever/disk.img,xvda2,w',
                  	'file:/usr/local/xen/domains/ima2a5-rex4ever/swap.img,xvda1,w',               
                       'phy:/dev/virtual/ima2a5-rex4ever-home,xvdb1,w',
                       'phy:/dev/virtual/ima2a5-rex4ever-var,xvdb2,w',
                 ]

Pour prendre effet il faut redémarrer la VM à l'aide des commandes

   xl shutdown ima2a5-rex4ever
   xl create /etc/xen/ima2a5-rex4ever.cfg

Configuration pour forcer le montage à chaque démarrage de la VM

Il faut ensuite aller dans la VM dans /etc/fstab et ajouter

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

Ces deux lignes permettent d'assurer que les 2 disques /var et /home soient pris en compte au démarrage de la VM.(ATTENTION POUR LE MOMENT BIEN LAISSER # DEVANT LA 2eme LIGNE) Relancer la machine comme précédemment expliqué et testé que le /home fonctionne. Pour le /var c'est un peu plus compliqué comme manipulation et il faut faire EXTREMENT attention , une fausse manipulation peut tuer la machine.

   mount /dev/xvdb2 /mnt
   rm -rf /mnt/lock
   rm -rf /mnt/log
   rm -rf /mnt/run
   mv /var/* /mnt
   vi /etc/fstab

Maintenant decommentez la deuxième ligne que vous aviez ajouté précedemment. Puis il faut lancer la commande :

   umount /mnt    
   mount -a

A l'aide de la commande fdisk -l depuis la VM, on peut verifier que nos quatres disques sont bien montés.De même avec df on obtient bien dans la liste les lignes :

     Filesystem		1K-blocks	Used	Available	Use%	Mounted on
    udev		75004		0 	75004		0%	/dev
    tmpfs          	23824		76 	23748		1%	/run
    /dev/xvda2   	4062912		459920	3376896		12%	/
    tmpfs           	5120		0  	5120		0%	/run/lock
    tmpfs         	152500  	0	152500		0%	/run/shm
    /dev/xvdb1  	10321208	23028   9773892		1%	/home
    /dev/xvdb2  	10321208	71076   9725844		1%	/var

La machine est donc prête, on peut passer à l'installation des paquetages linux nécessaires

Mise en place de l'adresse statique

Précedemment nous avions mis l'adresse en DHCP or il est demandé d'avoir une adresse statique (pour notre groupe il s'agit de 193.48.57.163/28 )

Paquetage Linux

Pour commencer, on va tout d'abord mettre le système à jour via :

   sudo apt-get update

Paquetages nécessaires pour le SSH

OpenSSH est un ensemble d'outils libres pour établir des communications chiffrées, donc sécurisées, sur un réseau informatique grâce au protocole SSH (Secure SHell). Il chiffre tout le trafic (mots de passe y compris), via une combinaison astucieuse de chiffrement symétrique et asymétrique. OpenSSH fournit également d'autres méthodes d'authentification alternatives au traditionnel mot de passe. Comme son nom l'indique, OpenSSH est développé dans le cadre du projet OpenBSD.

Nom de la bibliothèque Descriptif Commande
OpenSSh Client Utilitaires de connexion SSH partie Client sudo apt-get install openssh-client
OpenSSh Server Utilitaires de connexion SSH partie Server sudo apt install openssh-server

Dans notre cas, SSH est déjà présent sur la machine virtuelle.

Paquetages nécessaires pour le serveur Web Apache2

Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C'est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Pour l'installer, il faut taper la commande :

   apt install apache2

Paquetages nécessaires pour le serveur DNS/DNSSEC bind

Le service DNS (Domain Name System) est un service TCP/IP permettant la correspondance entre un nom de domaine qualifié (FQDN : Fully Qualified Domain Name) et une adresse IP. Ainsi, grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP.Un serveur qui héberge le service DNS est appelé "serveur de noms". Ubuntu est livré par défaut avec BIND (Berkley Internet Naming Daemon), le serveur DNS le plus utilisé sur Internet. Pour installer bind9 :

   apt install bind9

Paquetages nécessaires le gestionnaire de RAID Logiciel Mdadm

Mdadm est une solution de RAID logiciel très fiable et très répandue dans la communauté Linux. Ce paquetage sera nécessaire pour la création d'un RAID5

  apt install mdadm

Paquetages nécessaires la gestion d'authentification Wifi WPA-EAK

Le Site Web : HTTP

Achat d'un nom de domaine

Pour la réalisation de ce TP, nous avons dû acheter un nom de domaine via le site Gandi.net . On retiendra que notre nom de domaine est : rex4ever.site.

Paramétrage apache2

Après avoir installé Apache2 sur la machine ( voir ici), il faut le paramétrer correctement (je me suis servi de ce site).Pour cela, on commence configurer le .conf Pour cela, on le crée via la commande nano /etc/sites-available/ima2a5-rex4ever.site.conf et on renseigne alors dans le fichier les détails suivants :

   <VirtualHost *:80>
       ServerName ima2a5-rex4ever.site
       ServerAlias www.ima2a5-rex4ever.site
       DocumentRoot "/var/www/ima2a5-rex4ever"
       <Directory "/var/www/ima2a5-rex4ever">
               Options +FollowSymLinks
               AllowOverride all
               Require all granted
       </Directory>
       ErrorLog /var/log/apache2/error.ima2a5-rex4ever.site.log
       CustomLog /var/log/apache2/access.ima2a5-rex4ever.site.com.log combined
   </VirtualHost>

Maintenant qu'il est configuré, on peut déployer le site via :

   a2ensite ima2a5-rex4ever.site

Puis, on recharge la configuration de l'utilitaire Apache 2 :

   service apache2 reload

Paramétrage du DNS

Le DNS (Domain Name Server) est un serveur qui permet de rattacher un nom à une IP et ainsi c'est lui qui permet de faire le lien entre le nom d'un site et son contenu

Glue Records sur Gandi

Le Glue Record permet de créer des alias et ainsi de lier des IP et à des noms.C'est fort pratique pour simplifier la configuration.Pour se faire il faut se rendre dans Domain , cliquer sur le nom de notre site , aller dans l'onglet Glue Records et cliquer sur ADD

  name : dns.ima2a5-rex4ever.site
  ip adresse(s) : 193.48.57.163

Affecter le DNS du coté de Gandi.net

Par défaut, les serveurs de noms (DNS) sont 3 serveurs de DNS Live Gandi, il faut ajouter les serveurs externes :

  • ns6.gandi.net 217.70.177.40
  • dns.ima2a5-rex4ever.site 193.48.57.163

Note: il faut compter 12 à 24 heures pour la propagation sur Internet.

Le paramétrage de bind9

Le paramétrage repose sur la configuration de ses 3 fichiers :

Le fichier /etc/bind/named.conf.options

Ce fichier permet de gérer les DNS authorisés (de manière générale) à récuperer des informations de notre site. On le modifie pour permettre au dns de gandi de récuperer les données :

    options {
    
        // forwarders {
        //     0.0.0.0;
        // };
        // dnssec-validation auto;
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        allow-transfer { "allowed_to_transfer"; };
    };
    
    acl "allowed_to_transfer" {
        217.70.177.40/32; // adresse IP du dns6.gandi.net
    };
Le fichier /etc/bind/named.conf.local

Il faut maintenant déclarer à Bind9 le nom de notre fichier de configuration de DNS sous forme de zone , on le fait via ce fichier. On lui renseigne la zone :

    zone "ima2a5-rex4ever.site" {
        type master;
        file "/etc/bind/db.ima2a5-rex4ever.site";
    };
le fichier /etc/bind/db.ima2a5-rex4ever.site

Enfin, il faut créer le fichier de configuration précedemment appelé :

  ;
  ; BIND data file for local loopback interface
  ;
  $TTL    604800
  @       IN      SOA     dns.ima2a5-rex4ever.site. root@ima2a5-rex4ever.site. (  <= METTRE UNE ADRESSE BIDON , pas necessaire
                          21112019        ; Serial
                           604800         ; Refresh
                            86400         ; Retry
                          2419200         ; Expire
                           604800 )       ; Negative Cache TTL
  ;
  @       IN      NS      dns.ima2a5-rex4ever.site.  <= DN du site 
  @       IN      NS      ns6.gandi.net.<= DNS de gandi
  dns     IN      A       193.48.57.163 <= IP DE NOTRE DNS
  www     IN      A       193.48.57.163 <= IP DE NOTRE SITE

Après 5 minutes de cuisson et avoir relancé bind9, c'est prêt le site en http est accessible et visualisable! On peut acceder au site internet http://www.ima2a5-rex4ever.site !

Le Site Web : HTTPS

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.

Generation d'un certificat

La première étape pour générer un certificat est de concevoir un jeu de 2 clefs qui sont un .key et un .csr Pour obtenir ces deux fichiers, nous utilisons l'utilitaire OpenSSL.

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

Mais alors comment marche cette commande? Après avoir lu le descriptif que l'on peut obtenir via man openssl, il en ressort que les arguments sont :

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-rex4ever.key spécification du nom de notre .key
-out ima2a5-rex4ever.csr spécification du nom de notre demande de certificat .csr

Pour générer en bon éduforme notre demande,l'utilitaire a besoin des informations, voici ce que nous avons répondu:

     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-rex4ever.site
     Email Address []:pascal.coint@polytech-lille.net
     
     Please enter the following 'extra' attributes
     to be sent with your certificate request
     A challenge password []:glopglop!
     Optionnal informations :

Affectation du certificat sur Gandi.net

Après avoir répondu , il génère alors 2 fichiers. Le .key est notre clef privée elle restera donc en notre unique possession. On partage avec gandhi (qui est également un générateur de certificat) notre .csr. Il va donc étudier la validité de notre domaine et le certifier ou non.

Contenu de notre CSR

     -----BEGIN CERTIFICATE REQUEST-----
     MIIDBTCCAe0CAQAwgaUxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD
     VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDzANBgNVBAsMBklN
     QTJBNTEdMBsGA1UEAwwUaW1hMmE1LXJleDRldmVyLnNpdGUxLjAsBgkqhkiG9w0B
     CQEWH3Bhc2NhbC5jb2ludEBwb2x5dGVjaC1saWxsZS5uZXQwggEiMA0GCSqGSIb3 
     DQEBAQUAA4IBDwAwggEKAoIBAQDBKS9p8572UiXo2W1dAiKEKLq+B6ge/si0AhMH
     fLtovMz7Xvy/9oQnq25SvkWaNRuAJrvzROGS2mzkG9IEhnEpWSTNvspTO60PgNPo
     EUYcgKAeEuVVJyom3K3ioBOvllucQfiOIB/ykvP80s+9Wjo2vf2PkESPTjfM0zKP
     2JMT9cGQV6auD7NU+Ygz7w5dW/NKkU2KZA9HQ7i95+/ST3r2T0D8xP/ltEBC0Q7i
     U/OVkAKn6CPJ6KtkbQYvgKVG95IM5SQb/WxRVNnHKS4f+erNFYpx5iNiHhv6larV
     G0oR9uNsg7tOhdhcVVnooGSAsoxtgmDLwzuuho+3fS4t1K83AgMBAAGgGjAYBgkq
     hkiG9w0BCQcxCwwJZ2xvcGdsb3AhMA0GCSqGSIb3DQEBCwUAA4IBAQB7jtWizvBQ
     dNEyyVRhS563mKFo34RWW4g5tpnPC6wepQ7tvHo6gZZtzljobsWF55lRK7/Pi8eh
     ANyQxb1Lo9FcHJcUOEMc8heeutSZQoCslTdRNMe+uBhQ/qCLXjy+fgdptqPi9cXP
     zi8gBbrAQ9sHqJPK/RwhzuhCkBSzYgoNbYLjrHf8lCe60+7+0HBKM3jpTUDmzrzg
     Kmb8GmkgcrzKSNhlOFZpiQqBJUfK5zJEucdhJ0j7Tupwf+J2oO+TccnCNH7o1Ykc
     7ANKYKpf8AoCcZenLutCXt3YGjT8INuh5SnpsyR3BZUK9hNzZGK9Ilv9hwiEnmaS
     PQWRkLUGQdh+
     -----END CERTIFICATE REQUEST-----

Puis, Gandi.net va demander une méthode de vérification sur le serveur web cible afin de savoir s'il s'agit bien de notre serveur.Il existe trois possibilités:

  • Par verification DNS
  • Par Mail
  • Par fichier

Nous avons choisi la méthode par fichier, certes un peu longue mais ne nécessitant pas l'intervention de Monsieur Redon. On copie ainsi un fichier temporaire à l'endroit indiqué par gandi et on attend que gandi valide la demande. Après une verification de la part de Gandi (qui nécessite plusieurs dizaines de minutes), on obtient un certificat (.csr) et le certificat intermédiaire (.pem) Ils sont nécessaires pour la configuration du site en HTTPS.

S'assurer qu'Apache écoute le port 443 (protocole https)

On sait que le protocole HTTPS se sert du port 443 pour communiquer , verifions alors que c'est bien le cas :

   root@ima2a5-rex4ever:/etc/apache2# netstat -tanpu |grep "LISTEN" |grep "443"
   tcp6       0      0 :::443                  :::*                    LISTEN      10706/apache2

Le résultat indique en effet que le port 443 est ecouté par apache2, ce qui signifie qu'il ne faut pas faire de configuration supplémentaire.

Activation du protocole SSL

Il faut activer le module qui gère le protocole SSL via la commande :

  a2enmode ssl
  service apache2 restart

Configuration du VirtualHost Apache pour le protocole HTTPS

Afin de ne pas saboter la configuration HTTP déjà en place, on va dupliquer la configuration disponible dans /sites-available:

   cp ima2a5-rex4ever.site.conf ima2a5-rex4ever.site-ssl.conf

Modification :

  <VirtualHost *:443>
 #   General setup for the virtual host
    DocumentRoot "/var/www/ima2a5-rex4ever"
    ServerName ima2a5-rex4ever.site:443                                                                                                                                                                                                          ServerAdmin pascal.coint@polytech-lille.net                                                                                                                                                                                                  ErrorLog "/usr/local/apache2/logs/error_log"                                                                                                                                                                                                 TransferLog "/usr/local/apache2/logs/access_log"                                                                                                                                                                                          # Activation du SSL                                                                                                                                                                                                                                SSLEngine On
   
   # Activation de tous les protocoles sécurisés (TLS v1.0, v1.1 et TLS v1.2) touut en désactivant les protocoles non sécurisés (SSL v2, SSL v3)
   SSLProtocol All -SSLv3 -SSLv2
   # Le navigateur devra choisir une méthode de chiffrement en respectant l'ordre indiquée dans SSLCipherSuite
   SSLHonorCipherOrder on
   
   # Chemin vers le certificat SSL de votre nom de domaine
   SSLCertificateFile "/etc/apache2/certificate/ima2a5-rex4ever.cer"
   SSLCACertificateFile "/etc/apache2/certificate/ima2a5-rex4ever.pem"
   # Chemin vers la clée privée du certificat SSL de votre nom de domaine
   SSLCertificateKeyFile "/etc/apache2/certificate/ima2a5-rex4ever.key"    
   </VirtualHost>

On peut maintenant permuter les fichiers .conf et renommer notre ancien .conf en "ima2a5-rex4ever.site-http.conf" Note : Comme vous aurez pu le remarquer, j'ai créer un dossier certificate dans lequel j'ai mis le .cer,le .csr,le.key et le .pem afin de ne pas les perdre. On va ensuite décharger puis recharger le site :

  a2dissite ima2a5-rex4ever.site
  a2ensite ima2a5-rex4ever.site
  service apache2 restart

Ensuite on va regarder quels sont nos sites actifs à l'aide de apache2ctl -S , ce qui retourne :

   *:80                   ima2a5-rex4ever.site (/etc/apache2/sites-enabled/000-default.conf:1)
   *:443                  ima2a5-rex4ever.site (/etc/apache2/sites-enabled/ima2a5-rex4ever.site.conf:13)

Le site est prêt pour le HTTPS

Securisation du DNS : Le DNSSEC

Avoir un site sécurisé c'est bien , avoir toute la chaine de transmission pour éviter les fraude c'est encore mieux. Pour cela, il est possible de concevoir un DNSSEC (contraction de DNS SECURISED)

Génération de paires de clefs KSK et ZSK

Tout comme pour le certification HTTPS,il faut générer deux paires de clefs pour notre DNSSEC. On peut le faire avec la méthode RSAHA1 suivante :

 dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE ima2a5-rex4ever.site
 dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE ima2a5-rex4ever.site

On obtient alors deux paires de clefs que l'on renomme et que l'on place dans un dossier (que l'on créé evidemment) à l'emplacement /etc/bind/ima2a5-rex4ever.site.dnssec

Modification de /etc/bind/db.ima2a5-rex4ever.site

Pour une raison que j'ignore, les commandes liées au DNS ont du mal avec les fichiers en db.quelquechose, on renomme donc db.ima2a5-rex4ever.site en ima2a5-rex4ever.site Puis on ouvre ce fichier fraichement renommé et on ajoute les lignes de la manière suivante :

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL	604800
 $include /etc/bind/ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-ksk.key
 $include /etc/bind/ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-zsk.key
 @	IN	SOA	dns.ima2a5-rex4ever.site. root@ima2a5-rex4ever.site. (
 			29112025	; Serial
 			 604800		; Refresh
   			  86400		; Retry
 			2419200		; Expire
 			 604800 )	; Negative Cache TTL
 ;
 @  	IN	NS	dns.ima2a5-rex4ever.site.
 @       IN      NS      ns6.gandi.net.
 dns	IN	A	193.48.57.163
 www     IN      A       193.48.57.163

Il faut maintenant faire signer le document grâce à la commande suivante (on créé ainsi le document ima2a5-rex4ever.site.signed):

  dnssec-signzone -o ima2a5-rex4ever.site -k ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-ksk ima2a5-rex4ever.site ima2a5-rex4ever.site.dnssec/ima2a5-rex4ever.site-zsk

Modification de /etc/bind/named.conf.local

Maintenant que le document est signé, il faut dire à Bind de pointer sur celui-ci plutot que sur db.... Pour ce faire il faut modifier named.conf.local de cette manière :

// // Do any local configuration here //

// Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918";

zone "ima2a5-rex4ever.site" { type master; file "/etc/bind/ima2a5-rex4ever.site.signed"; };

Modification de /etc/bind/named.conf.options

De même que pour le DNS, il faut modifier de la manière suivante pour le DNSSEC :

  dnssec-validation auto;
  dnssec-enable yes;
  dnssec-lookaside auto;
       auth-nxdomain no;    # conform to RFC1035
       listen-on-v6 { any; };
       allow-transfer { "allowed_to_transfer"; };
   };
   
   acl "allowed_to_transfer" {
       217.70.177.40/32; // adresse IP du dns6.gandi.net
   };

Il ne reste plus qu'a relancer , et on peut voir le résultat grâce à DNSVIZ

Attaque d'une installation Wi-fi

Description

Notre Client Wi-fi est un ordinateur portable fourni par Monsieur Redon. Il ne nécessite pas nécessairement de configuration. Cependant, la clef Wi-Fi fournie avec elle doit être paramétrée (la datasheet peut se trouver à l'adresse suivant ; Datasheet). De plus, il faut installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA

Installation du paquetage AirCrack-ng

Pour installer AirCrack (utilitaire qui permet de casser les clefs WEP et WPA), il suffit de taper la commande :

   apt-get install aircrack-ng

Note: il faut auparavant configurer le réseau pour se connecter à internet.

Utilisation de AirCrack pour clef WEP

Après avoir branché la clef WiFi, on se sert de airmon-ng qui est un utilitaire qui espionne le réseau et permet d'obtenir les types d'interfaces communicantes/espionnable.

  airmon-ng

Pour tenter de s'y connecter en tant qu'espion, il faut alors taper (nous le tapons ici avec wlan0mon):

  airmong-ng start NOMRESEAUESPIONNABLE

Puis, pour observer et découvrir les canaux associés au réseau et leurs SSID,il faut taper:

  airodump-ng --encrypt wep NOMRESEAUESPIONNABLE

Puis à l'aide d'un second terminal, on peut stocker les informations volées dans un .txt :

  Airodump-ng FICHIER.txt -c 2 --bssid ADDRESSBSSID NOMRESEAUESPIONNABLE

Ce qui donne dans notre cas :

  airmon-ng
  airmong-ng start wlan0mon
  airodump-ng --encrypt wep wlan0mon 
  Airodump-ng -w reseau_1.txt -c 2 --bssid 04:DA:D2:50:53 wlan0mon   (<== pour le réseau cracotte 3)

Commence alors le craquage de la clef Wifi en Wep. On estime qu'il faut capturer plus ou moins 50 000 datas pour approximer 50% de chance de craquer la clef. Après 40 000 datas volées , on réussit à craquer la clef, il nous aura fallu environ 14 minutes.

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

Utilisation de AirCrack pour clef WPA2-PSK

De même que précedemment, on recommence en changeant le --encrypt et on obtient :

  airmon-ng
  airmong-ng start wlan0mon
  airodump-ng --encrypt wpa wlan0mon 

On obtient les informations suivantes sur notre réseau cible : Channel: 2 SSIDName: kracotte03 BSSIDAdress: 04:DA:D2:9C:50:5A

On peut alors espionner et voler des informations avec les handshakes: airodump-ng -w kracotte03 -c 2 --bssid 04:DA:D2:9C:50:5A

-w kracotte03 indique que l'on souhaite tout enregistrer dans un fichier nommé kracotte03.. On obtient alors après un moment les datas volées et les informations sont extraites sous plusieurs formats. Le format .cap est compatible avec l'utilitaire que nous allons utiliser, on le copie donc sur une clef USB et on va cracker la clef sur une zabeth (vitesse de calcul plus elevée). Pour se faire , on construit un dictionnaire (ensemble possible de toutes les combinaisons) avec l'utilitaire Crunch via la commande :

  crunch 8 8 123456789 >> Dico.txt 

Notre dictionnaire est largement simplifié car nous sommes au courant qu'il s'agit d'un ensemble de 8 chiffres de 1 a 9 , ce qui permet de préciser à crunch une taille min et max de 8 et les caractères admissibles de 1 à 9 Le dictionnaire est maintenant prêt, on lance alors le cassage de clef par force brute : aircrack-ng psk-01.cap -w Dico.txt

Après TREEEEEEEEEEEEEEEEEEEEEEEEEEEEEES Longtemps , on obtient la clef :

     [00:21:41] 10233332/102795810 keys tested (7985.18 k/s) 
     
     Time left: 3 hours, 13 minutes, 12 seconds                 9.96%
                          KEY FOUND! [ 10233333 ]
     Master Key     : 5A D9 A4 39 7A 4E 14 A6 44 DE C4 AB FF 1E 63 D7 
                      46 7B F8 02 23 ED EA A9 82 3F 6A FC 68 DE F2 5D 
     Transient Key  : 29 DA 59 3B EC 25 DB 6A 62 AD 50 2C 17 52 BC F8 
                      C9 CD 7C 85 A5 07 7E 44 84 B5 A6 EB 2E 47 B3 D0 
                      1C CC CC F8 24 EB 00 0A C0 7B B8 60 13 AE 57 74 
                      1E 15 A9 FC D7 A8 E5 C6 14 9B 01 60 E4 C4 96 43 
     EAPOL HMAC     : 15 99 D7 E0 33 B3 E1 4C 57 6F 8E E4 69 AF B0 08

Diverses commandes

Creation du Raid5 avec mdadm

Nous commencons par créer un RAID5 comme demandé dans la partie 6.1 du sujet. La manipulation des disques dur restera toujours une opération délicate demandant un maximum d'attention et ne devant pas se faire à la va-vite. Rien de mieux qu'un bon dimanche pluvieux pour s'aventurer dans ces contrées. Ne jamais oublier que les erreurs de manipulation sur les disques sont souvent irréversibles. Vous l'aurez compris, je vous dis tout ça afin de vous désigner comme seul responsable en cas de problèmes qui pourraient survenir sur votre matériel.

Pour se faire on commence par créer 3 disques de 1Go chacun:

  lvcreate -L1G -n ima2a5-rex4ever-disk1 virtual
  lvcreate -L1G -n ima2a5-rex4ever-disk2 virtual
  lvcreate -L1G -n ima2a5-rex4ever-disk3 virtual

On éteint la machine et on recommence la même manipulation que pour la partie 3.5.1 du wiki pour attacher disk1,disk2 et disk3. Nos 3 disques sont maintenant reliées à notre machine comme on le peut voir avec la commande fdisk -l

  Disk /dev/xvdb3: 1 GiB, 1073741824 bytes, 2097152 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/xvdb4: 1 GiB, 1073741824 bytes, 2097152 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/xvdb5: 1 GiB, 1073741824 bytes, 2097152 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

On nous propose de réaliser le raid5 logiciel avec l'utilitaire mdadm (mdadm) Assemblons maintenant nos 3 disques en un RAID5 via la commande :

  mdadm --create /dev/md0 --level=5  --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5

Note: Ne pas essayer de renommer md0 Pour automatiser le raid5 à chaque démarrage:

  mdadm --monitor --daemonise /dev/md0

Puis le formatage du volume RAID nouvellement créé:

  mkfs.ext4 /dev/md0

Déclarez ce volume dans `/etc/fstab` pour que le système le monte au démarrage (le système de fichier, pas le volume en lui même). Pour ce faire Editez le fichier /etc/fstab et ajoutez à sa fin la ligne :

  /dev/md0 	/media/raid	ext4	defaults 	0	1

Puis créer le fichier /media/raid qui est le fichier sur lequel le raid est monté :

  mkdir /media/raid

En retirant un disque (mise en commentaire /etc/fstab), le disque md0 est toujours actif et utilisable.

Cryptage de données

Le cryptage des données s'effectue grâce à l'utilitaire cryptsetup.

Remettre à zero la clef USB

Pour se faire, on commence par chercher le nom de la clef USB cible dans le gestionnaire :

     lsblk

Dans notre cas,le périphérique cible est nommé sda (il peut aussi s'appeler sdb ,sdc ...) On va acceder aux partitions via :

     fdisk /dev/sda

Le menu suivant apparait alors :

  Welcome to fdisk (util-linux 2.25.2).
  Changes will remain in memory only, until you decide to write them.
  Be careful before using the write command.
  Command (m for help):

On va d'abord nettoyer la clef avant d'y crypter nos données, pour cela on entre le choix 'd' et on supprime les partitions existantes.

Puis pour créer une nouvelle partition on entre le choix 'n' puis 'p' qui correspond à : n nouvelle partition p partition primaire

Command (m for help): n Partition type

  p   primary (0 primary, 0 extended, 4 free)
  e   extended (container for logical partitions)

Select (default p):

Using default response p. Partition number (1-4, default 1): 1 First sector (1-1953525167, default 2048):1 Last sector, +sectors or +size{K,M,G,T,P} (2048-1953525167, default 1953525167): Created a new partition 1 of type 'Linux' and of size 7.1GiB.

Puis on sauvegarde :

Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

Cryptage de la Clef

La clef est prête, on peut desormais crypter et l'utiliser avec l'utilitaire cyptsetup. Pour créer le cryptage au format Luks :

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

Accès à la partition cryptée

Maintenant que la clef est cryptée, on peut l'utiliser. Pour commencer, on va monter le répertoire pour pouvoir l'ouvrir. Commencez par créer un repertoire /mnt/clef_usb_cryptee puis taper la suite de commande :

   cryptsetup open --type luks /dev/sdb home -- ouverture de la clef
   mkfs.ext4 /dev/mapper/home -- Système de fichier relié 
   mount -t ext4 /dev/mapper/home /mnt/clef_usb_cryptee

On peut maintenant acceder au contenu de la clef et le modifier via le dossier /mnt/clef_usb_cryptee

Debrancher la partition cryptée

Pour débrancher la clef, il faut au préalable démonter la partition et refermer l'utilitaire via les commandes:

 umount /mnt/clef_usb_cryptee -- Demonter le repertoire
 cryptsetup close --type luks home

Et voila, vous pouvez désormais retirer la clef.

Réseau WPA2-EAK

Architecture Réseau

Dans cette partie, vous trouverez comment nous avons configuré les routeurs ainsi que les commutateurs qui se trouve dans les salles E304 et E306.

Bridge Cordouan

Nous avons due modifier le bridge de cordouan afin de relier les 2 ports ethernets ensemble

nano /ect/network/interfaces

   # Bridge for IMA2a5
   
   auto eth1 
   auto eth4
   iface eth1 inet manual
       post-up ifconfig $IFACE up
       post-down ifconfig $IFACE down
   iface eth4 inet manual
       post-up ifconfig $IFACE up
       post-down ifconfig $IFACE down
     
   auto IMA2a5
   iface IMA2a5 inet manual
     bridge_ports eth1 eth4

Puis on réveille les ports à l'aide de Ifdown et Ifup

Configuration des 2 commutateurs

Connexion

Pour accéder au commutateur, nous avons utilisé minicom avec un cable série directement branché sur la prise console du commutateur :

   minicom -os ( avec ttyUSB0, une vitesse de transfert de 9600 bauds et le flow control désactivé)     // les paramètres sont modifiable directement depuis les options de minicom
Commande de base

Voici quelque commandes de base qui nous ont servi pour la configuration des commutateurs

   enable           // passage en admin pour pouvoir accéder aux données du commutateur
   write            // Sauvegarde de la configuration et l’implanter dans le commutateur
   show interface status OU sh int status  // Montre l'état de toutes les interfaces présentes sur le commutateur ainsi que les données associées
   configuration terminal    // permets d'accéder aux interfaces et ainsi pouvoir les modifier
   exit             // permets de sortir du configurateur actuel (par exemple sortir de l'interface)

Configuration des ports du commutateur

Nous avons 4 connexions qui sont dirigées vers le commutateur de la salle E304 ainsi que celui en E306

- Un lien vers le routeur
- Un lien vers la borne wifi
- Un lien vers Corduan
- Un lien vers l'autre commutateur
Connexion E306 E304
Corduan Gigabitethernet 5/1 Gigabitethernet 1/2
Borne Wifi Gigabitethernet 5/3 Gigabitethernet 2/2
Router Ge 5/1(E306) & Ge 1/1(E304) Ge 1/1(E306) & Ge 2/2(E304)

}

Création du lien pour la borne wifi
   enable
   configure terminal (ou conf t)
   interface XXXX (ou int XXXX)
   switchport    //Rendre accessible la modification du port
   switchport trunk encapsulation dot1q   //Encapsule avec la trame le numéro du Vlan associé, ce qui permettra de d'avoir de quel équipement viens le paquet ainsi la réponse sera dirigé vers le bon port
   switchport mode trunk   //Configure le port du switch en mode trunk, ce qui permets de ne pas avoir de restriction sur les Vlan, tous les Vlan peuvent passer à travers ce port
   no shut    //Démarre le port ou de le garder actif
   exit
   exit
   write


Création du lien pour Corduan
   enable
   configure terminal
   interface XXXX
   switchport
   switchport mode access //Rendre modifiable le port
   switchport access vlan42 //Autoriser le vlan 42 à transister à travers ce port
   no shutdown
   exit
   exit 
   write
Création du lien pour le router
   enable
   configure terminal (ou conf t)
   interface XXXX (ou int XXXX)
   switchport    
   switchport trunk encapsulation dot1q   
   switchport mode trunk  
   no shut    
   exit
   exit
   write
Création du lien pour l'autre routeur
   enable
   configure terminal (ou conf t)
   interface XXXX (ou int XXXX)
   switchport    
   switchport trunk encapsulation dot1q   
   switchport mode trunk  
   no shut    
   exit
   exit
   write
Création des Vlan
   enable
   conf t
   vlan 42
   name Corduan
   exit
   exit
   write
   enable
   conf t
   vlan 2 à 7
   name groupe 1 à 6
   exit
   exit
   write
   enable
   conf t
   vlan 130
   name interconnexion
   exit
   exit
   write

Pour supprimer un vlan il suffit de faire :

   no vlan X

Configuration du router E304

Connexion

Pour accéder au routeur, nous avons utilisé minicom avec un USB directement branché sur la prise console du commutateur :

   minicom -os ( avec ttyACM0, une vitesse de transfert de 9600 bauds et le 'flow control désactivé)     // les paramètres sont modifiable directement depuis les options de minicom
Commande de base

Ce sont exactement les mêmes que celles utilisées pour les commutateurs

Configuration des ports

Interconnexion du réseau IPV4

  configure terminal
  ip routing
  router ospf 1        //création d'un opsf (Open Shortest Path First)                                      
  router-id 10.60.0.254   
  log-adjacency-changes
  summary-address 193.48.57.160 255.255.255.240 //donne l'addresse IP la plus base du réseau routé
  summary-address 10.60.0.1 255.255.0.0 not-advertise //donne l'addresse Ip la plus base du réseau non routé/ privé
  redistribute connected subnets
  network 192.168.222.6 0.0.0.7 area 1
  exit
  exit
  write

Interconnexion du réseau IPV6

  ipv6 unicast-routing
  conf t
  ipv6 router rip tpima2a5                 //Création d'une route IPV6 sous le nom tpima2a5
  redistribute connected metric 1
  redistribute rip 1 metric 1
  redistribute static metric 1
  exit
  exit
  write
Vers les commutateurs

La configuration est la même pour les 2 ports correspondant aux commutateurs Nous avons besoin de 6 Vlan pour nos groupes et d'un Vlan d'interconnexion

 enable                                                  

 configure terminal

 interface XXXX                         
 no ip address                            //Pas d'addresse IP associé
 negotiation auto                         //Détermine automatiquement la vitesse de transfert
 media-type RJ45                          //Type de connexion (ici RJ45)

Voici les vlan associé à nos groupes :

 service instance 2 ethernet              // création d'un vlan 2 dans cette interface
 encapsulation dot1q 2                    // Permets d'assurer une continuité d'un VLAN issue d'un switch sur un routeur via un lien trunk
 rewrite ingress tag pop 1 symmetric      // retire le tag du vlan 
 bridge-domain 2                          //création d'un bridge domaine interface (BDI) attribué au chiffre 2
   
 service instance 3 ethernet
 encapsulation dot1q 3
 rewrite ingress tag pop 1 symmetric
 bridge-domain 3
   
 service instance 4 ethernet
 encapsulation dot1q 4
 rewrite ingress tag pop 1 symmetric
 bridge-domain 4
 
 service instance 5 ethernet
 encapsulation dot1q 5
 rewrite ingress tag pop 1 symmetric
 bridge-domain 5
   
 service instance 6 ethernet
 encapsulation dot1q 6
 rewrite ingress tag pop 1 symmetric
 bridge-domain 6
 
 service instance 7 ethernet
 encapsulation dot1q 7
 rewrite ingress tag pop 1 symmetric
 bridge-domain 7

Voici le vlan associé à l'interconnexion :

 service instance 42 ethernet
 encapsulation dot1q 42
 rewrite ingress tag pop 1 symmetric
 bridge-domain 42
Vers le SR 32
 interface XXXX                        
 no ip address
 negotiation auto
 service instance 130 ethernet
 encapsulation dot1q 130
 bridge-domain 130
  
Configuration des BDI
  conf t
   
  interface BDI1
  ip address 10.60.0.254 255.255.255.0
  exit
  
  interface BDI2
  ip address 10.60.1.254 255.255.255.000           //Attribut l'addresse IPV4 pour le routeur ainsi que son mask
  standby version 2                                //Activation du HSRP (Host service Routing protocole) version 2 plus stable que la 1
  standby 2 ip 10.60.1.252                       //Donne l'addresse  IPV4 du routeur virtuelle pour le HSRP                             
  standby 2 preempt                              // Activation du HSRP         
  ipv6 address 2001:660:4401:60B2::/64 eui-64      //Attribut l'addresse IPV6                             
  ipv6 enable                                      //Active l'addressage IPV6                              
  ipv6 nd prefix 2001:660:4401:60B2::/64 1000 900  //Donner un préfixe IPV6 à chaque machine                              
  ipv6 nd router-preference high                    //IPV6 sera la route de préférence par défaut avec une forte probabilitée
  exit
  
  interface BDI3
  ip address 10.60.2.254 255.255.255.000           
  standby version 2
  standby 3 ip 10.60.2.252                                                     
  standby 3 preempt                                       
  ipv6 address 2001:660:4401:60B3::/64 eui-64                                   
  ipv6 enable                                                                    
  ipv6 nd prefix 2001:660:4401:60B3::/64 1000 900                                
  ipv6 nd router-preference High                    
  exit                       
  
  interface BDI4
  ip address 10.60.3.254 255.255.255.000           
  standby version 2
  standby 4 ip 10.60.3.252                                                     
  standby 4 preempt                                       
  ipv6 address 2001:660:4401:60B4::/64 eui-64                                    
  ipv6 enable                                                                    
  ipv6 nd prefix 2001:660:4401:60B4::/64 1000 900                                
  ipv6 nd router-preference High                   
  exit
  
  interface BDI5
  ip address 10.60.4.254 255.255.255.000           
  standby version 2
  standby 5 ip 10.60.4.252                                                    
  standby 5 preempt                                       
  ipv6 address 2001:660:4401:60B5::/64 eui-64                                   
  ipv6 enable                                                                    
  ipv6 nd prefix 2001:660:4401:60B5::/64 1000 900                                
  ipv6 nd router-preference High                   
  exit
  
  interface BDI6
  ip address 10.60.5.254 255.255.255.000           
  standby version 2
  standby 6 ip 10.60.5.252                                                      
  standby 6 preempt                                       
  ipv6 address 2001:660:4401:60B6::/64 eui-64                                    
  ipv6 enable                                                                    
  ipv6 nd prefix 2001:660:4401:60B6::/64 1000 900                                
  ipv6 nd router-preference High                    
  exit  
  
  interface BDI7
  ip address 10.60.6.254 255.255.255.000           
  standby version 2
  standby 7 ip 10.60.6.252                                                      
  standby 7 preempt                                       
  ipv6 address 2001:660:4401:60B7::/64 eui-64                                    
  ipv6 enable                                                                    
  ipv6 nd prefix 2001:660:4401:60B7::/64 1000 900                                
  ipv6 nd router-preference High                    
  exit                                 

  interface BDI42
  ip address 193.48.57.173 255.255.255.240         
  standby version 2
  standby 42 ip 193.48.57.172                                                     
  standby 42 preempt                                       
  ipv6 address 2001:660:4401:60B1::/64 eui-64                                    
  ipv6 enable                                                                    
  ipv6 nd prefix 2001:660:4401:60B1::/64 1000 900                               
  ipv6 nd router-preference High                    
  exit
  
  int vlan 130
  ip address 192.168.222.1 255.255.255.248         
  ipv6 address fe80::2 link-local                  
  ipv6 enable
  ipv6 rip tpima2a5 enable                        
  exit
  ip rooting
  
  exit
  write

Configuration du router E306

Connexion

Pour accéder au routeur, nous avons utilisé minicom avec un USB directement branché sur la prise console du commutateur :

   minicom -os ( avec ttyUSB0, une vitesse de transfert de 9600 bauds et le 'flow control désactivé)     // les paramètres sont modifiable directement depuis les options de minicom
Commande de base

Ce sont exactement les mêmes que celles utilisées pour les commutateurs

Configuration des ports

La configuration est la même pour les 2 ports correspondant aux commutateurs Nous avons besoin de 6 Vlan pour nos groupes et d'un Vlan d'interconnexion

Création du lien pour SR32
   enable
   configure terminal
   interface XXXX
   switchport
   switchport mode access //Rendre modifiable le port
   switchport access vlan130 //Autoriser le vlan 130 à transister à travers ce port
   no shutdown
   exit
   exit 
   write
Création du lien pour les commutateurs
   enable
   configure terminal (ou conf t)
   interface XXXX (ou int XXXX)
   switchport    
   switchport trunk encapsulation dot1q   
   switchport mode trunk  
   no shut    
   exit
   exit
   write

Interconnexion du réseau IPV4

  configure terminal
  router ospf 1        //création d'un opsf (Open Shortest Path First)                                      
  router-id 10.60.0.253   
  log-adjacency-changes
  summary-address 193.48.57.160 255.255.255.240 //donne l'addresse IP la plus base du réseau routé
  summary-address 10.60.0.1 255.255.0.0 not-advertise //donne l'addresse Ip la plus base du réseau non routé/ privé
  redistribute connected subnets
  network 192.168.222.8 0.0.0.7 area 1
  exit
  exit
  write

Interconnexion du réseau IPV6

  conf t
  ipv6 router rip tpima2a5                 //Création d'une route IPV6 sous le nom tpima2a5
  redistribute connected metric 1
  redistribute rip 1 metric 1
  redistribute static metric 1
  exit
  exit
  write
Vers les commutateurs
  conf t
   
  interface Vlan1
  ip address 10.60.0.253 255.255.255.0
  exit
   
  interface Vlan2
  ip address 10.60.1.253 255.255.255.0
  ipv6 address 2001:660:4401:60B2::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60B2::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 2 ip 10.60.1.252
  standby 2 preempt
  exit
    
  interface Vlan3
  ip address 10.60.2.253 255.255.255.0
  ipv6 address 2001:660:4401:60B3::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60B3::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 3 ip 10.60.2.252
  standby 3 preempt
  exit
  
  interface Vlan4
  ip address 10.60.3.253 255.255.255.0
  ipv6 address 2001:660:4401:60B4::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60B4::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 4 ip 10.60.3.252
  standby 4 preempt
  exit   
  
  interface Vlan5
  ip address 10.60.4.253 255.255.255.0
  ipv6 address 2001:660:4401:60B5::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60B5::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 5 ip 10.60.4.252
  standby 5 preempt
  exit   
  
  interface Vlan6
  ip address 10.60.5.253 255.255.255.0
  ipv6 address 2001:660:4401:60B6::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60B6::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 6 ip 10.60.5.252
  standby 6 preempt
  exit   
  
  interface Vlan7
  ip address 10.60.6.253 255.255.255.0
  ipv6 address 2201:660:4401:60B7::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2201:660:4401:60B7::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 7 ip 10.60.6.252
  standby 7 preempt
  exit   
  
  interface Vlan42
  ip address 193.48.57.174 255.255.255.0
  ipv6 address 2001:660:4401:60B1::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60B1::/64 1000 900
  ipv6 nd router-preference High
  standby version 2
  standby 42 ip 193.48.57.172
  standby 42 preempt
  exit
         
  interface Vlan130
  ip address 192.168.222.2 255.255.255.248
  ipv6 address FE80::42:3 link-local
  ipv6 enable
  exit
  
  exit
  write