TP sysres IMA5sc 2018/2019 G2

De Wiki d'activités IMA

Sommaire

TP GIS4 - Conteneur réalisation manuelle

Création des systèmes fichier

Dans le répertoire /home/pifou/Documents/IMA5/JDQB/PRA/ (Zabeth09)

 dd if=/dev/zero of=disk1 bs=1024k count=10240
 mkfs disk1

Dans /tmp création de répertoires pour le stockage

 mkdir JDQB_DISK1
 mkdir JDQB_DISK2
 mkdir JDQB_DISK3
 mount -o loop disk1 /tmp/JDQB_DISK1
 debootstrap --include=apache2,nano stable /tmp/JDQB_DISK1
 echo "proc /proc defaults 0 0" >> /tmp/JDQB_DISK1/etc/fstab
 umount -d /tmp/JDQB_DISK1

On clone le disk1 pour avoir disk2 et disk3 (cp)

On remonte les trois disques

 mount -o loop diskX /tmp/JDQB_DISKX

Lancement des conteneurs

Ouverture de trois terminaux en root, puis utilisation de la commande dans chacun des terminaux

 unshare -n -u -p -f -m chroot /tmp/JDQB_DISKX /bin/sh -c "mount /proc ; /bin/bash" ;


Dans chaque conteneur

 ip l set eth0 up

Cette commande s'applique aussi à eth1 pour le conteneur 1

Mise en place commutateur virtuel

Création des interfaces liées

iface_virt_X (interface virtuelle X) <-> iface_ns_X (interface namespace X)

 ip link add iface_virt_1 type veth peer name iface_ns_1
 ip link add iface_virt_2 type veth peer name iface_ns_2
 ip link add iface_virt_3 type veth peer name iface_ns_3


Création de notre propre pont

 ip link add jdqb_bridge type bridge

Ajout des parties des interfaces dans le commutateur

 ip link set iface_virt_1 master jdqb_bridge
 ip link set iface_virt_2 master jdqb_bridge
 ip link set iface_virt_3 master jdqb_bridge


Activation des interfaces

 ip link set iface_virt_1 up
 ip link set iface_virt_2 up 
 ip link set iface_virt_3 up  

Activation du pont

 ip address add dev jdqb_bridge 192.168.0.1/24

Montée du pont

 ip link set jdqb_bridge up

Connexion des conteneurs à leur interface virtuelle respective

 ip link set iface_ns_1 netns /proc/<PID1>/ns/net name eth0
 ip link set iface_ns_2 netns /proc/<PID2>/ns/net name eth0
 ip link set iface_ns_3 netns /proc/<PID3>/ns/net name eth0

Obtention des PIDs

 ps aux | grep unshare

Quatrième interface, reliant le mandataire web inverse (conteneur 1) et le bridge de zabeth09

 ip link add iface_virt_0 type veth peer name iface_ns_0
 ip link set iface_virt_0 master bridge
 ip link set iface_virt_0 up
 ip link set iface_ns_0 netns /proc/<PID1>/ns/net name eth1

Modification de la table IP

 iptables -F
 iptables -F -t nat
 iptables -P FORWARD ACCEPT

Attribution des adresses aux conteneurs

 nsenter -t <PID1> -n ip address add dev eth0 192.168.0.91/24
 nsenter -t <PID2> -n ip address add dev eth0 192.168.0.92/24
 nsenter -t <PID3> -n ip address add dev eth0 192.168.0.93/24
 nsenter -t <PID1> -n ip address add dev eth1 172.26.145.90/24

Mandataire inverse

Configuration Apache2

Afin de configurer notre premier conteneur en mandataire inverse, nous modifions le fichier : /etc/apache2/sites-available/000-default.conf

Nous ajoutons :

 <VirtualHost *:80>
 ...  
 ProxyPass /site1 http://192.168.0.92/
 ProxyPassReverse /site1 http://192.168.0.92/
 ProxyPass /site2 http://192.168.0.93/
 ProxyPassReverse /site2 http://192.168.0.93/
 ProxyRequests Off
 ...
 </VirtualHost>

Configuration réseau

Ajout de la route par défaut (Polytech) :

 ip route add default via 172.26.145.254

Configuration eth1 :

 ip add add dev eth1 172.26.145.90/24
 ip link set eth1 up

11h25 => Serveurs Web unshare OK

Création des conteneurs via Docker

InstructionsTexte italique

docker run -i -t debian

export http

apt-get install apache nano vi

En dehors conteneur docker commit <image name> sur le conteneur


Creer réseau privé docker network create


(2X)docker run -i -t <image name> --net nom réseau docker run -i -t <image name> --net nom réseau -p 80:80

DNS : vérifier les @IP des conteneurs LE mandataire inverse doit avoir @IP de zabeth

Procédure

Modification des paramètres de docker dans /etc/default/docker, commenter la ligne DOCKER_EPTS="--iptables=false"

 iptables-save
 service docker restart
 docker run -i -t debian /bin/bash

Dans le conteneur

 export http_proxy
 export https_proxy
 apt-get update
 apt-get install apache2 nano vim

Récupération ID du docker

 docker ps

Commit sur le docker

 docker commit <ID> apache2

Création du network

 docker network create jdqb_network

Lancement des conteneurs

 docker run -i -t --net jdqb_network apache2 
 docker run -i -t --net jdqb_network apache2
 docker run -i -t --net jdqb_network -p 80:80 apache2

Dans chaque conteneur

 ip a

Dans le conteneur mandataire

 nano /etc/apache2/sites-enabled/000-default.conf

Ajout des proxypass

 ProxyPass /site1 http://<IP conteneur 1>/
 ProxyPassReverse /site1 http://<IP conteneur 1>/
 ProxyPass /site2 http://<IP conteneur 2>/
 ProxyPassReverse /site2 http://<IP conteneur 2>/
 ProxyRequests Off

Ajout d'un DNS dans GANDI @plil.space

Type A , TTL 1800, nom jdqb-docker, <ip bridge zabeth>

Sur les trois conteneurs

 service apache2 restart

10h20 Serveurs Web (docker) OK

TP PRA - Mise en place du routeur Catalyst 3650

Déroulement des Séances

Séance 1 : 26/11/2018

Nous avons à notre disposition l'adresse IPV4 routée 193.48.57.160/27.

Nous disposons également de l'adresse IPV4 non routée 10.60.0.0/16.


Découpage réseau IPV4 routé en deux sous réseaux

Nous divisons l'IPV4 routée en deux sous réseaux.

Pour réaliser leur TP, les IMA2A5 ont utilisés les adresses comprises entre 193.48.57.160/28 et 193.48.57.175/28.

Nous utiliserons donc le second sous réseau : 193.48.57.176/28 à 193.48.57.191/28.


Par conséquent l'adresse IP du routeur 1 est 193.48.57.188/28

Celle du routeur 2 est 193.48.57.189/28

Et enfin le routeur virtuel, pour la diffusion entre routeurs, est 193.48.57.190/28


Découpage du réseau IPV4 non routée en sous réseaux

Nous découpons notre réseau en 254 sous réseaux disponibles. Les IMA2A5 ont utilisés les 5 premiers 10.60.1.0/24 à 10.60.5.0/24 .

Nous prendrons donc les adresses entre 10.60.11.0/24 et 10.60.21.0/24 .

Ces adresses seront routées vers les adresses comprises entre 193.48.57.177/28 et 193.48.57.187/28 .

Séance 2 : 27/11/2018

Configuration du routeur Catalyst 3560

Mise en place du routeur et connexion à celui ci

La configuration du routeur se fera via minicom.

Vérification de l'interface à utiliser :

 ls /dev/ | grep ttyUSB

Notre routeur est connecté sur ttyUSB0.

 minicom -os

Les paramètres de configuration de minicom sont les suivants :

- port /dev/ttyUSB0

- baud 9600

- 8 bits

- pas de bit de parité

- 1 bit de stop

- pas de contrôle de flux

Configuration du routeur : Configuration des ports

Passage en administrateur :

 Router>enable
 Router#

On liste les interfaces

 Router#show interface status
 
 
 Port      Name               Status       Vlan       Duplex    Speed   Type
 Gi0/1                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/2                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/3                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/4                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/5                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/6                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/7                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/8                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/9                        connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 Gi0/10                       connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 1
 
 Gi0/11                       connected    Trunk      a-full    a-100   10/100/1000BaseTX      // vers le commutateur 2 (en E306)
 
 // Non connecté
 [...interfaces Gi0/12-Gi0/48]
 
 // les fibres
 Te0/1                        notconnect   1          full      10G     10GBase-SR             // vers le local SR52
 Te0/2                        notconnect   1          full      10G     10GBase-SR             // vers cordouan

Afin d'accélérer la communication entre le routeur et le commutateur, les ports 1 à 10 du routeur seront connectés au commutateur.

 Router(config)#configure terminal
 Enter configuration commands, one per line.  End with CNTL/Z.
 Router(config)#interface range Gi0/1 - 11
 Switch(config-if)#switchport mode access
 Switch(config-if)#switchport access access trunk                                       
 Switch(config-if)#exit

Configuration de l'interface 10G vers le local SR52

 Router(config)#configure terminal
 Enter configuration commands, one per line.  End with CNTL/Z.
 Router(config)#interface Te0/1
 Switch(config-if)#switchport mode access
 Switch(config-if)#switchport access access vlan 131                                       // vlan 131 (interconnexion IMA5)
 Switch(config-if)#exit

Configuration de l'interface 10G vers Cordouan

 Router(config)#configure terminal
 Enter configuration commands, one per line.  End with CNTL/Z.
 Router(config)#interface Te0/2
 Switch(config-if)#switchport mode access
 Switch(config-if)#switchport access access vlan 43                                       // vlan 43 (XEN IMA5)
 Switch(config-if)#exit

PROBLEME :

 *Mar  1 01:42:30.518: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on TenGigabitEthernet0/2 (43), with Switch GigabitEthernet3/2 (42).

A FAIRE :

  • configurer les interfaces / BDI

Mise en place de la machine virtuelle

Notre machine virtuelle a les paramètres suivants :

-Hostname = Dionysos

-@IP = 193.48.57.178

-Netmask = 255.255.255.240

-dossier = /usr/local/xen

 xen-create-image --hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen

Dans le répertoire /etc/xen, nous modifions le fichier Dionysos.cfg.

Nous adaptons le bridge StudentsInfo, qui devient IMA5sc.


Puis nous lançons une instance de la VM

xl create Dionysos.cfg
xl console Dionysos

Connexion à la VM, avec le login root, mot de passe fourni a la fin de l'installation

Dans le fichier /etc/ssh/sshd_config nous décommentons la ligne :

 PermitRootLogin yes

Ainsi nous pouvons nous connecter en ssh sur notre VM

Pour que le système soit connecté dans /etc/network/interfaces nous ajoutons la gateway.

 gateway 193.48.57.190
ip route add default via 193.48.57.190 dev eth0 onlink


Nous avons modifié le mot de passe initial.


Pour éteindre une VM

xl shutdown Dionysos

Séance 3 : 10/12/2018

Config Routeur 3560

  • Commande pour save la configuration
write

Correction sur la config du routeur

  • Vers le commutateur 4006 - 10 cables 1G (Notre Salle)
enable
conf t
interface range Gi0/1 - 10
switchport
switchport trunk encapsulation dot1q
switchport mode trunk
exit

  • Vers le commutateur 6000 - 1 cable 1G (Autre Salle)
enable
conf t
interface gi0/11
switchport
switchport trunk encapsulation dot1q
switchport mode trunk
exit


  • Vers Cordouan - cable 10G (Fibre)
conf t
interface Te0/2
switchport trunk encapsulation dot1q
switchport mode access
switchport access vlan 43                                       // vlan 43 (XEN IMA5)
exit
  • Vers le local SR52
conf t
interface Te0/1
switchport trunk encapsulation dot1q
switchport mode access
switchport access vlan 131                                       // vlan 131 (interconnexion IMA5)
exit
  • Le vlan M = 10 + N (Groupe N)
conf t
int vlanM
ip address 10.60.M.252 255.255.255.0
standby version 2
standby M ip 10.60.M.254
standby M preempt
ipv6 enable
ipv6 address 2001:660:4401:60CN eui-64
ipv6 nd prefix 2001:660:4401:60CN::/64 1000 9000
ipv6 nd router-preference High
exit
  • Le vlan 43 (IM5sc)
int vlan43
ip address 193.48.57.188 255.255.255.240
standby version 2
standby 22 ip 193.48.57.190
standby 22 preempt
ipv6 enable
ipv6 address 2001:660:4401:60C0 eui-64
ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900
ipv6 nd router-preference High
exit
  • Le vlan 131 (Interconnexion)
int vlan 131
ip address 192.168.222.9 255.255.255.248         
ipv6 address fe80::2 link-local                  
ipv6 enable
ipv6 rip tpima2a5 enable                        
exit
  • Nommer un VLANs
vlan M
name groupeN
exit
vlan 43
name Xen
exit
vlan 131
name interconnexion
exit


conf t
ip routing
exit                
show ip route      
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     193.48.57.0/28 is subnetted, 1 subnets
C       193.48.57.176 is directly connected, Vlan43
     10.0.0.0/24 is subnetted, 11 subnets
C       10.60.20.0 is directly connected, Vlan20
C       10.60.21.0 is directly connected, Vlan21
C       10.60.18.0 is directly connected, Vlan18
C       10.60.19.0 is directly connected, Vlan19
C       10.60.16.0 is directly connected, Vlan16
C       10.60.17.0 is directly connected, Vlan17
C       10.60.14.0 is directly connected, Vlan14
C       10.60.15.0 is directly connected, Vlan15
C       10.60.12.0 is directly connected, Vlan12
C       10.60.13.0 is directly connected, Vlan13
C       10.60.11.0 is directly connected, Vlan11
     192.168.222.0/29 is subnetted, 1 subnets
C       192.168.222.8 is directly connected, Vlan131
  • OSPF
Switch(config)#router ospf 1        
Switch(config-router)#router-id 10.60.11.252 
Switch(config-router)#summary-address 193.48.57.176 255.255.255.240
Switch(config-router)#redistribute connected subnets 
Switch(config-router)#summary-address 192.168.0.0 255.255.255.0 not-advertise
Switch(config-router)#summary-address 10.60.0.0 255.255.0.0 not-advertise    
Switch(config-router)#network 192.168.222.8 0.0.0.7 area 2
Switch(config-router)#exit

Mise en place des partitions pour la VM

Sur cordouan

 lvcreate -L10G -nIMA5_Dionysos_var virtual
 lvcreate -L10G -nIMA5_Dionysos_home virtual
 
 
 mke2fs /dev/virtual/IMA5_Dionysos_var
 mke2fs /dev/virtual/IMA5_Dionysos_home

Dans le fichier /etc/xen/Dionysos.cfg


disk        = [
                 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w
                 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w',
                 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w',
              ]

Sur la VM, dans le fichier /etc/fstab

 /dev/xvdb1 /home ext4 defaults 0 3


Le cas du répertoire /var est plus complexe.

Si nous utilisons la même méthode que pour /home, nous perdrons le /var. Nous ne pourrions donc plus utiliser apt-get, par exemple.

Dans la VM, dans le fichier /etc/fstab

 /dev/xvdb2 /mnt ext4 defaults 0 2

Puis dans le terminal de la VM

 mount /dev/xvdb2 /mnt 
 mv /var/* /mnt/
 unmount /mnt
 mount -a

Via la commande df nous contrôlons le résultat.

  Filesystem     1K-blocks    Used Available Use% Mounted on
  ...                  ...     ...       ...  ... ...
  /dev/xvdb1      10255636   36888   9678076   1% /home
  /dev/xvdb2      10321208   23028   9773892   1% /var

Mise en place serveur DNS

Utilisation de la méthode bind

Dans le répertoire /etc/bind, nous modifirons les trois fichiers suivants :

named.conf.options

 options {
       directory "/var/cache/bind";
 
       // If there is a firewall between you and nameservers you want
       // to talk to, you may need to fix the firewall to allow multiple
       // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
 
       // If your ISP provided one or more IP addresses for stable
       // nameservers, you probably want to use them as forwarders.
       // Uncomment the following block, and insert the addresses replacing
       // the all-0's placeholder.
 
       // forwarders {
       //   0.0.0.0;
       // };
 
       //========================================================================
       // If BIND logs error messages about the root key being expired,
       // you will need to update your keys.  See https://www.isc.org/bind-keys
       //========================================================================
 
       //Mise en place du DNSSEC
       dnssec-enable yes;
 
       dnssec-validation auto;
 
       auth-nxdomain no;
       listen-on-v6 { any; };
       allow-recursion{localhost;};
 };


named.conf.local

 zone "dionysos.space"{
       type master;
       file "/etc/bind/db.dionysos.space";
       allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net
 };


Puis nous créons le fichier /etc/bind/db.dionysos.space

 cp db.local db.dionysos.space 

Dans ce fichier nous entrons les paramètres suivants

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 $include /root/SSL_certif/dionysos-ksk.key
 $include /root/SSL_certif/dionysos-zsk.key
 
 @       IN      SOA     ns.dionysos.space. root.dionysos.space (
                               2         ; Serial
                          604800         ; Refresh
                           86400         ; Retry
                         2419200         ; Expire
                          604800 )       ; Negative Cache TTL
 ;
         IN      NS      ns.dionysos.space. ;dns principal
         IN      NS      ns6.gandi.net.     ;dns secondaire
 @       IN      A       193.48.57.178      ;acces sans le "www."
 ns      IN      NS      193.48.57.178      ;acces avec http https
 www     IN      A       193.48.57.178;     ;acces avec le "www.

Certificat SSL

 openssl req -nodes -newkey rsa:2048 -sha1 -keyout dionysos.space.key -out dionysos.space.csr
 ...
 Common Name (e.g. server FQDN or YOUR name) []:dionysos.space et dionysos.space.key
 Email Address []:qboens@polytech-lille.net

Cette opération génére deux fichiers : dionysos.space.crt et dionysos.space.key

Une fois cette étape faite on récupére sur gandi GandiStandardSSLCA2.pem, dans l'onglet du certificat.

Tous les fichiers sont placés dans le répertoire SSL_certif

 mv dionysos.space.csr SSL_certif
 mv dionysos.space.key SSL_certif
 mv GandiStandardSSLCA2.pem SSL_certif


Installation de DNSSEC

Création de la clef KSK

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

Création de la clef ZSK

 dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE dionysos.space


Ces clefs ont été crées dans le dossier SSL_certif


Création d'un fichier signé à partir de db.dionysos.space

 dnssec-signzone -o dionysos.space -k dionysos-ksk.key /etc/bind/db.dionysos.space dionysos-zsk.key 


Dans named.conf.local nous changons le fichier cible, pour que bind9 prenne en compte db.dionysos.space.signed, qui est le fichier signé

 zone "dionysos.space"{
       type master;
       file "/etc/bind/db.dionysos.space.signed";
       allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net
 };

Puis nous relançons bind9

 service bind9 restart

Sur le site gandi nous ajoutons les deux clefs, dans l'onglet DNSSEC

Un bon moyen de contrôler le déploiement de nos clefs : [1]

Séance 3.5 : 14/12/2018

Craquage WPA/PSK par dictionnaire

Materiel utilisé :

  • un PC portable
  • une clé Wi-Pi (nécessaire pour le PC portable que nous avons utilisé pour la partie handshake)
  • Zabeth13 pour le craquage
Récupération du handshake

Premièrement sur le PC portable SOLE,

#ip a

pour vérifier que nous disposons bien d'une interface wifi wlx40a5ef0f68ce, puis nous l'utilisons pour écouter sur le wifi :

#airmon-ng start <nom_de_l'interface>

On récupère l'interface retournée, dans notre cas wlan0mon

#airodump-ng wlan0mon

On note l'ESSID de cracotte02 et son channel pour ensuite renvoyer dans des fichiers

#airodump-ng --bssid <ESSID cracotte02> wlan0mon --channel 9 --write FILENAME

On dispose ensuite de 4 fichiers FILENAME.cap FILENAME.csv FILENAME.kismet.csv FILENAME.kismet.netxml

On peut à présent transférer ces fichiers sur ZABETH13 via clé usb:

Rappel montage USB
#fdisk -l                                                 //avant de brancher la clé USB
#fdisk -l                                                 //on récupère l'emplacement de la clé (ex: /dev/sdb -> /dev/sdb1)
#mkdir /media/MA_CLE_USB
#mount /dev/sdb1 /media/MA_CLE_USB
#mv /home/pifou/Mon_FICHIER /media/MA_CLE_USB             //répéter autant que nécessaire
#umount /media/MA_CLE_USB
Crack WPA/PSK

On crée un petit programme main.c pour lister tous les codes possibles, on sait qu'il s'agit d'un code de 8 chiffres

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

int main(){
    int i;
    // key is 8 numeric digits
    for(i=0;i<99999999;i++){
        printf("%d\n",i);
    }
    return 0;
}

On compile et on stock dans un txt

#gcc main.c -o main -Wall
#./main > dictionnaire.txt

On peut à présent lancer le crack

#aircrack-ng FILENAME.cap -w dictionnaire.txt


Crack-cracotte02.png

Après un certains temps d'execution, on obtient la clé

Found key.png

Clé : 42429902

Séance 4 : 17/12/2018

Correction IPV6 routeur

Vlan 43 - XEN
conf t
no int vlan43
int vlan43
ip address 193.48.57.188 255.255.255.240
standby version 2
standby 22 ip 193.48.57.190
standby 22 preempt
ipv6 enable
ipv6 address 2001:660:4401:60C0::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900
ipv6 nd router-preference High
exit
Vlan 131 - Interconnexion
conf t
no int vlan 131
int vlan 131
ip address 192.168.222.9 255.255.255.248         
ipv6 address fe80::2 link-local                  
ipv6 enable
ipv6 rip tpima2a5 enable                        
exit
Vlan 10+N - Groupe N

IPv4

  • Notre Routeur : 10.60.10+N.252
  • Routeur Virtuel : 10.60.10+N.254


IPv6

2001:660:4401:60XX

  • VLAN 11 à 21 : C1 à CB
  • VLAN 43 : C0
  • Groupe 1
conf t
no int vlan11
int vlan11
ip address 10.60.11.252 255.255.255.0
standby version 2
standby 11 ip 10.60.11.254
standby 11 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C1::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C1::/64 1000 900
ipv6 nd router-preference High
exit
vlan 11
name groupe1
exit
  • Groupe 2
conf t
no int vlan12
int vlan12
ip address 10.60.12.252 255.255.255.0
standby version 2
standby 12 ip 10.60.12.254
standby 12 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C2::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C2::/64 1000 900
ipv6 nd router-preference High
exit
vlan 12
name groupe2
exit
  • Groupe 3
conf t
no int vlan13
int vlan13
ip address 10.60.13.252 255.255.255.0
standby version 2
standby 13 ip 10.60.13.254
standby 13 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C3::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C3::/64 1000 900
ipv6 nd router-preference High
exit
vlan 13
name groupe3
exit
  • Groupe 4
conf t
no int vlan14
int vlan14
ip address 10.60.14.252 255.255.255.0
standby version 2
standby 14 ip 10.60.14.254
standby 14 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C4::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C4::/64 1000 900
ipv6 nd router-preference High
exit
vlan 14
name groupe4
exit
  • Groupe 5
conf t
no int vlan15
int vlan15
ip address 10.60.15.252 255.255.255.0
standby version 2
standby 15 ip 10.60.15.254
standby 15 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C5::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C5::/64 1000 900
ipv6 nd router-preference High
exit
vlan 15
name groupe5
exit
  • Groupe 6
conf t
no int vlan16
int vlan16
ip address 10.60.16.252 255.255.255.0
standby version 2
standby 16 ip 10.60.16.254
standby 16 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C6::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C6::/64 1000 900
ipv6 nd router-preference High
exit
vlan 16
name groupe6
exit
  • Groupe 7
conf t
no int vlan17
int vlan17
ip address 10.60.17.252 255.255.255.0
standby version 2
standby 17 ip 10.60.17.254
standby 17 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C7::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C7::/64 1000 900
ipv6 nd router-preference High
exit
vlan 17
name groupe7
exit
  • Groupe 8
conf t
no int vlan18
int vlan18
ip address 10.60.18.252 255.255.255.0
standby version 2
standby 18 ip 10.60.18.254
standby 18 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C8::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C8::/64 1000 900
ipv6 nd router-preference High
exit
vlan 18
name groupe8
exit
  • Groupe 9
conf t
no int vlan19
int vlan19
ip address 10.60.19.252 255.255.255.0
standby version 2
standby 19 ip 10.60.19.254
standby 19 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60C9::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C9::/64 1000 900
ipv6 nd router-preference High
exit
vlan 19
name groupe9
exit
  • Groupe 10
conf t
no int vlan20
int vlan20
ip address 10.60.20.252 255.255.255.0
standby version 2
standby 20 ip 10.60.20.254
standby 20 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60CA::/64 eui-64
ipv6 nd prefix 2001:660:4401:60CA::/64 1000 900
ipv6 nd router-preference High
exit
vlan 20
name groupe10
exit
  • Groupe 11
conf t
no int vlan21
int vlan21
ip address 10.60.21.252 255.255.255.0
standby version 2
standby 21 ip 10.60.21.254
standby 21 preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60CB::/64 eui-64
ipv6 nd prefix 2001:660:4401:60CB::/64 1000 900
ipv6 nd router-preference High
exit
vlan 21
name groupe11
exit
Vérifications du fonctionnement
show running-config
  • show run
[...]
ipv6 unicast-routing
!
[...]
spanning-tree mode pvst
spanning-tree loopguard default
spanning-tree etherchannel guard misconfig
spanning-tree extend system-id
!
[...]
interface GigabitEthernet0/1
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/2
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/3
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/4
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/5
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/6
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/7
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!         
interface GigabitEthernet0/8
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/9
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/10
 switchport trunk encapsulation dot1q
 switchport mode trunk
 channel-group 1 mode active
!
interface GigabitEthernet0/11
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
[...]
interface TenGigabitEthernet0/1
 switchport access vlan 131
 switchport trunk encapsulation dot1q
 switchport mode access
!
interface TenGigabitEthernet0/2
 switchport access vlan 43
 switchport trunk encapsulation dot1q
 switchport mode access
!
interface Vlan1
 ip address 10.60.1.252 255.255.255.0
!
interface Vlan11
 ip address 10.60.11.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C1::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C1::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 11 ip 10.60.11.254
 standby 11 preempt
!
interface Vlan12
 ip address 10.60.12.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C2::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C2::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 12 ip 10.60.12.254
 standby 12 preempt
!
interface Vlan13
 ip address 10.60.13.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C3::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C3::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 13 ip 10.60.13.254
 standby 13 preempt
!
interface Vlan14
 ip address 10.60.14.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C4::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C4::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 14 ip 10.60.14.254
 standby 14 preempt
!
interface Vlan15
 ip address 10.60.15.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C5::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C5::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 15 ip 10.60.15.254
 standby 15 preempt
!
interface Vlan16
 ip address 10.60.16.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C6::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C6::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 16 ip 10.60.16.254
 standby 16 preempt
!
interface Vlan17
 ip address 10.60.17.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C7::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C7::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 17 ip 10.60.17.254
 standby 17 preempt
!         
interface Vlan18
 ip address 10.60.18.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C8::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C8::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 18 ip 10.60.18.254
 standby 18 preempt
!
interface Vlan19
 ip address 10.60.19.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60C9::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C9::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 19 ip 10.60.19.254
 standby 19 preempt
!
interface Vlan20
 ip address 10.60.20.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60CA::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60CA::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 20 ip 10.60.20.254
 standby 20 preempt
!
interface Vlan21
 ip address 10.60.21.252 255.255.255.0
 ipv6 address prefix 2001:660:4401:60CB::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60CB::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 21 ip 10.60.21.254
 standby 21 preempt
!
interface Vlan43
 ip address 193.48.57.188 255.255.255.240
 ipv6 address 2001:660:4401:60C0::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900
 ipv6 nd router-preference High
 standby version 2
 standby 22 ip 193.48.57.190
 standby 22 preempt
!
interface Vlan131
 ip address 192.168.222.9 255.255.255.248
 ipv6 address FE80::2 link-local
 ipv6 enable
 ipv6 rip tpima2a5 enable
!
router ospf 1
 router-id 10.60.11.252
 log-adjacency-changes
 summary-address 193.48.57.176 255.255.255.240
 summary-address 192.168.0.0 255.255.255.0 not-advertise
 summary-address 10.60.0.0 255.255.0.0 not-advertise
 redistribute connected subnets
 network 192.168.222.8 0.0.0.7 area 2
!
[...]
ipv6 router rip tpima5sc
 redistribute connected metric 1
 redistribute static metric 1
!
[...]
end
Show Interface status
  • show int status
Port      Name               Status       Vlan       Duplex  Speed Type
Gi0/1                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/2                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/3                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/4                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/5                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/6                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/7                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/8                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/9                        connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1
Gi0/10                       connected    trunk      a-full  a-100 10/100/1000BaseTX            // Vers C1

Gi0/11                       connected    trunk      a-full a-1000 10/100/1000BaseTX            // Vers C2

Gi0/12                       notconnect   1            auto   auto 10/100/1000BaseTX            // Borne Wi-Fi du groupe 1

Gi0/13                       notconnect   1            auto   auto 10/100/1000BaseTX            
Gi0/14                       notconnect   1            auto   auto 10/100/1000BaseTX            
[...]                        //           //           //     //   //
Gi0/47                       notconnect   1            auto   auto 10/100/1000BaseTX            
Gi0/48                       notconnect   1            auto   auto 10/100/1000BaseTX  
          
Te0/1                        connected    131          full    10G 10GBase-SR                   // Vers SR52
Te0/2                        connected    43           full    10G 10GBase-SR                   // Vers Cordouan
IPv6
  • show ipv6 route
Switch#show ipv6 route
IPv6 Routing Table - Default - 53 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, D - EIGRP, EX - EIGRP external
       O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
R   ::/0 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:60::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6000::/56 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6002::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6003::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6004::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6005::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6006::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6007::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6008::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6009::/64 [120/2]
     via FE80::42:1, Vlan131
R   2001:660:4401:6011::/64 [120/2]
IPv4
  • show ip route

Nous avons bien de l'OSPF (O) et OSPF NSSA external type 2 (E2)

Switch#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 192.168.222.14 to network 0.0.0.0

     193.51.182.0/30 is subnetted, 1 subnets
O E2    193.51.182.108 [110/20] via 192.168.222.14, 00:29:30, Vlan131
O E2 192.168.12.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131
O E2 192.168.29.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131
O E2 192.168.28.0/24 [110/10] via 192.168.222.14, 00:29:30, Vlan131
     193.48.63.0/24 is variably subnetted, 2 subnets, 2 masks
O E2    193.48.63.0/26 [110/10] via 192.168.222.14, 00:29:30, Vlan131
O IA    193.48.63.1/32 [110/13] via 192.168.222.14, 00:29:31, Vlan131
O IA 193.49.225.0/24 [110/3] via 192.168.222.14, 00:29:31, Vlan131
     192.168.44.0/29 is subnetted, 4 subnets
O E2    192.168.44.0 [110/10] via 192.168.222.14, 00:29:31, Vlan131
O E2    192.168.44.8 [110/10] via 192.168.222.14, 00:29:31, Vlan131
O E2    192.168.44.32 [110/10] via 192.168.222.14, 00:29:31, Vlan131

Sécurisation des données via RAID5

Les partitions

Création des trois partitions 1G,

 lvcreate -L1G -n IMA5_Dionysos_part1 virtual
 lvcreate -L1G -n IMA5_Dionysos_part2 virtual
 lvcreate -L1G -n IMA5_Dionysos_part3 virtual

Ajout de ces partitions lors de la création de la VM, dans le fichier Dionysos.cfg:

 disk        = [
                 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w',
                 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w'
                 'phy:/dev/virtual/IMA5_Dionysos_part1,xvdf1,w',
                 'phy:/dev/virtual/IMA5_Dionysos_part2,xvdg1,w',
                 'phy:/dev/virtual/IMA5_Dionysos_part3,xvdh1,w',
 ]
Création du RAID

Création du RAID5 à l'aide de mdadm

 sudo mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

Lors du premier essai l'erreur suivante est apparue

 mdadm: cannot open /dev/xvdf1: Device or resource busy

Après quelques recherches, j'ai consulté le fichier /proc/mdstat

 root@Dionysos:~# cat /proc/mdstat
 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
 md127 : active (auto-read-only) raid5 xvdg1[0] xvdf1[2]
       2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
       
 unused devices: <none>

J'ai donc arrêté md127 grâce à

  mdadm --stop /dev/md127

Puis j'ai relancé la commande de création du RAID

En relisant /proc/mdstat, j'ai obtenu

 Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
 md0 : active raid5 xvdh1[2] xvdg1[1] xvdf1[0]
       2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

Daemonisation du volume RAID, pour que la VM le charge à chaque redémarrage

 mdadm --monitor --daemonise /dev/md0

On formate le RAID

 root@Dionysos:~#mkfs.ext4 /dev/md0
 mke2fs 1.44.4 (18-Aug-2018)
 Creating filesystem with 523264 4k blocks and 130816 inodes
 Filesystem UUID: e7b32d68-7297-4957-9104-574fff233b93
 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912
 
 Allocating group tables: done                            
 Writing inode tables: done                            
 Creating journal (8192 blocks): done
 Writing superblocks and filesystem accounting information: done

Dans le fichier /etc/fstab, nous demandons à notre VM de monter le volume à chaque redémarrage

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

Puis nous créons un dossier

 mkdir /media/raid

Dans ce fichier, nous créons un simple fichier texte blabla.txt

Comme demandé dans le sujet, j'ai arrêté ma VM. Puis je l'ai relancée, en désactivant une des partitions : xvdh1

Résultat, dans le dossier /media/raid

 root@Dionysos:/media/raid# ls
 lost+found

Sécurisation Wifi par WPA2-EAP

Installation de freeradius

 apt-get install freeradius

Dans le fichier /etc/freeradius/3.0/users on ajoute la ligne

 Dionysos Cleartext-Password :=NOTRE_MDP_ROOT

Le serveur doit être configuré en PEAP-MSCHAPv2. Nous devons modifier :

-/etc/freeradius/3.0/mods-enabled/eap

 default_eap_type = peap

-etc/freeradius/3.0/mods-enabled/mschap

 mschap {
    ...
    use_mppe = yes
    require_encryption = yes
    require_strong = yes
 }

Dans cette même section nous ajoutons la ligne

 with_ntdomain_hack = yes

On ajoute les points d'accès dans notre configuration de serveur (fichier : /etc/freeradius/3.0/clients.conf) : client 192.168.0.10/32 {

 secret = secretIMA5SC
 shortname = accesDionysos

}

Crack WEP

  • récuperer l'interface wifi
ip a
  • mettre l'interface en écoute et récupérer le nouveau nom de l'interface (<interface2>)
airmon-ng start <interface>
  • récupérer le Channel et le BSSID
airodump <interface2>
  • récupérer des #Data
airodump-ng -c <CHANNEL> --bssid <BSSID> -w crack_wep <interface2>
  • lancer un spam de paquets ARP
aireplay-ng --fakeauth 30 -a <BSSID> <interface>
  • lancer le crack
aircrack-ng crack_wep01.cap
  • resultat si assez de #Data

Jdqb aircrack.png


Les étapes

Introduction

Installation des systèmes d'exploitation

Installation dans la machine virtuelle Xen

  • L'accès se fait par SSH sur le dom0 cordouan.insecserv.deule.net
Création d'une machine virtuelle Xen Linux sur Cordouan

Pour ce faire, il faut utiliser la commande xen-create-image

Notre commande : xen-create-image --hostname=Dionysos --ip=193.48.57.178 --netmask=255.255.255.240 --dir=/usr/local/xen

  • --hostname= : Le nom de votre machine
  • --ip= : L'ip routée qui vous a été attribué lors de la réalisation du plan d'adressage
  • --netmask= : Le masque réseau du plan d'adressage
  • --dir= : l'emplacement des fichiers disk.img et swap.img. Dans le sous répertoire domains/Dionysos dans notre cas
Modification du fichier de configuration de la machine virtuelle

On retrouve ensuite le fichier de configuration .cfg de la VM à l'emplacement /etc/xen

  • nano /etc/xen/Dionysos.cfg
[...]
#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                 'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w',
                 'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w',                  # Partition LVM pour /var
                 'phy:/dev/virtual/IMA5_Dionysos_home,xvdb1,w',                 # Partition LVM pour /home

     ]
[...]
#
#  Networking
#
vif         = [ 'ip=193.48.57.178 ,mac=00:16:3E:6F:61:EE,bridge=IMA5sc' ]       # Ajout du bridge
[...]
Lancement de la machine

Toujours en root depuis cordouan

  • Lancement : xl create /etc/xen/Dionysos.cfg

À l'issue du premier lancement, on récupère un mot de passe root automatiquement généré

  • Une fois lancée : xl console Dionysos

On arrive donc sur la machine, il y a plusieurs modifications à effectuer :

Autoriser le login en root sur la machine via SSH

Modification du fichier /etc/ssh/sshd_config nous décommentons la ligne PermitRootLogin yes

  • Modifier le mot de passe root : passwd
Réglage du réseau
  • Modification du fichier /etc/network/interfaces pour ajouter gateway 193.48.57.190 à l'interface eth0
[...]
# The primary network interface
auto eth0
iface eth0 inet static
 address 193.48.57.178
 netmask 255.255.255.240
 gateway 193.48.57.190
[...]

On éteint puis allume à nouveau l'interface avec ifdown eth0 et ifup eth0

  • Ajout de la route par défaut pour utiliser le routeur virtuel de l'architecture

ip route add default via 193.48.57.190 dev eth0 onlink

l'IP 193.48.57.190 est celle du routeur virtuel. Elle a été définie lors du plan d'adressage

3 Architecture réseau

3.1 L'architecture générale

3.2 Les réseaux virtuels

Mise à disposition d'un réseau IPv4 routé : 193.48.57.160/27 dans le VLAN 110 de l'école

Lors de la réalisation de ce TP, le réseau était déjà découpé en deux partie.

La première pour les IMA2A5 : allant de 193.48.57.160/28 à 193.48.57.175/28 La seconde était encore inutilisée : Nous avions donc à disposition les adresses allant de 193.48.57.176/28 à 193.48.57.191/28

Avec un masque /28 (240) nous avions donc 16 adresses dans le réseau 193.48.57.176/28

Nous avons donc établi avec le groupe routeur 2 (Binôme 11) le plan d'adressage suivant

  • .176 : adresse de réseau
  • .177 à .187 : les adresses IP des machines virtuelles Xen
  • .188 : adresse du Routeur 1
  • .189 : adresse du Routeur 2
  • .190 : adresse du Routeur Virtuel
  • .191 : adresse de diffusion

Nous avions également à utiliser un réseau IPv4 non routé (10.60.0.0/16) où chaque binôme devait avoir un sous-réseau.

Les IMA2A5 avaient choisi d'utiliser des réseau de la forme : 10.60.N.0/24N est le numéro de binôme, variant de 1 à 5 dans leur cas.

Nous avons repris cette idée en prenant la forme 10.60.10+N.0/24 avec pour choix, en vue de la configuration des routeurs :

  • Adresse du routeur 1 : 10.60.11.252/24
  • Adresse du routeur 2 : 10.60.11.253/24
  • Adresse du routeur virtuel : 10.60.11.254/24

Rappel du plan d'adressage

3.3 Le routage de sites (IPv4) - Routeur Cisco 3560

Nous nous sommes chargés de la configuration du routeur 1, le Cisco 3560.

Comme nous étions situés sur la Zabeth09, nous avons pu utiliser un câble muni d'un adaptateur pour relier en USB la Zabeth au port console du routeur.

Nous avons ensuite utilisé minicom -os en root avec les réglages suivants :

  • /dev/ttyUSB0
  • 9600 8N1
  • Hardware Flow Control : No

On arrive ensuite sur le routeur. Switch>

Rappel des commandes Cisco utiles (ou Cours de réseau IMA4

  • enable : permet de passer en EXEC privilégié sur le Cisco
  • configure terminal : peut aussi être remplacé par conf t pour passer en mode de configuration globale
  • exit : pour retourner à un niveau prédédent
  • write : au niveau privilégié de base, permet de sauvegarder la configuration
  • interface NOM_INTERFACE : pour configurer une interface (peut aussi s'écrire int NOM_INTERFACE)
  • ? : pour afficher les commandes possibles au niveau actuel

Dans cette partie on s'intéresse à la configuration des interfaces en IPv4 :

Au niveau de l'architecture, nous voulons que le réseau soit redondant, ainsi il faut que les deux routeurs puissent effectuer le même travail mais pas en même temps.

L'un des deux réalise le travail (il est prioritaire) et l'autre vérifie que le travail est effectué, en cas d'arrêt, il prend le relais.

Dans notre cas, le groupe 11 (routeur 2) a décidé de mettre une priorité basse dans la configuration de leur routeur.

Rappel : Le réseau s'organise sur plusieurs VLANs

  • VLAN 1 : Pour les autres composants tels que la borne wifi configurée par le groupe 1.
  • VLAN 43 : Il s'agit du VLAN où sont les machines XEN IMA5. Les IMA2A5 avaient opté pour le VLAN 42.
  • VLAN 131 : Le VLAN d'interconnexion de l'école. (SR52), les IMA2A5 utilisent le VLAN 130.
  • VLAN 11 à 21 : Un VLAN par binôme, c'est dans ces VLAN que nous utiliserons les adresses de la forme 10.60.10+N.X. Comme pour les adresses, nous avons opté pour des numéros de la forme 10+Numéro de groupe.
Configuration du VLAN 1

Il est juste question d'attribuer au routeur une adresse dans le vlan 1 pour la borne wifi

interface Vlan1
 ip address 10.60.1.252 255.255.255.0
Configuration du VLAN 43

En partant du mode privilégié :

conf t
no int vlan43 
int vlan43
ip address 193.48.57.188 255.255.255.240
standby version 2
standby 22 ip 193.48.57.190
standby 22 preempt
exit

On commence par supprimer l'interface (no int vlan43) en cas de doute sur sa configuration puis on la recrée et on attribue au routeur une adresse IP (188 = routeur 1) dans le VLAN (190 = routeur virtuel).

Configuration des VLANs 11 à 21
  • Remplacer XX par le numéro du VLAN et N dans name groupeN par le numéro du groupe
conf t
no int vlanXX
int vlanXX
ip address 10.60.XX.252 255.255.255.0
standby version 2
standby XX ip 10.60.XX.254
standby XX preempt
exit
vlan XX
name groupeN
exit
Vérification

Pour tester on peut tenter de ping le routeur depuis une source exterieure ou alors utiliser un routeur pour ping l'autre.

  • Ping depuis une machine virtuelle vers 193.48.57.188 (routeur 1)

Ping dionysos r1.png

  • Ping depuis le routeur 1 vers 193.48.57.189 (routeur 2)

Ping r1 r2.png

3.4 Le routage de site (IPv6)

Dans cette partie, nous retournons dans la configuration des interfaces pour ajouter un routage via IPv6.

Dans le sujet il est indiqué que les adresses disponibles se situent à partir de 2001:660:4401:60b0::/64 mais les premières adresses étant prises par les IMA2A5 nous utiliserons les adresses en C0 et plus plutôt qu'à partir de B0

  • ajouter à la configuration globale
ipv6 unicast-routing
Configuration du VLAN 43

En partant du mode privilégié :

conf t
no int vlan43
int vlan43
ip address 193.48.57.188 255.255.255.240
standby version 2
standby 22 ip 193.48.57.190
standby 22 preempt
ipv6 enable
ipv6 address 2001:660:4401:60C0::/64 eui-64
ipv6 nd prefix 2001:660:4401:60C0::/64 1000 900
ipv6 nd router-preference High
exit

On supprime à nouveau l'interface (mais ce n'est pas nécessaire) pour y imposer la nouvelle configuration de l'interface

Configuration des VLANs 11 à 21 (avec IPv6)

Remplacer

  • XX par le numéro du VLAN
  • N dans name groupeN par le numéro du groupe
  • HH dans la partie IPv6 par C1 à CB suivant le groupe
conf t
no int vlanXX
int vlanXX
ip address 10.60.XX.252 255.255.255.0
standby version 2
standby XX ip 10.60.XX.254
standby XX preempt
ipv6 enable
ipv6 address prefix 2001:660:4401:60HH::/64 eui-64
ipv6 nd prefix 2001:660:4401:60HH::/64 1000 900
ipv6 nd router-preference High
exit
vlan XX
name groupeN
exit

3.5 Interconnexion avec Internet IPv4

Comme les IMA2A5 utilisent déjà le VLAN130 (192.168.222.0/29) nous utilisons le VLAN131 192.168.222.8/29

  • 192.168.222.9/29 : Routeur 1
  • 192.168.222.10/29 : Routeur 2
Configuration du VLAN 131 (IPv4 Uniquement)
conf t
no int vlan 131
int vlan 131
ip address 192.168.222.9 255.255.255.248                      
exit
Configuration OSPF
router ospf 1
 router-id 10.60.11.252
 log-adjacency-changes
 summary-address 193.48.57.176 255.255.255.240
 summary-address 192.168.0.0 255.255.255.0 not-advertise
 summary-address 10.60.0.0 255.255.0.0 not-advertise
 redistribute connected subnets
 network 192.168.222.8 0.0.0.7 area 2

3.6 Interconnexion avec Internet IPv6

conf t 
 ipv6 router rip tpima5sc
  redistribute connected metric 1
  redistribute rip 1 metric 1
  redistribute static metric 1
Configuration du VLAN 131 (IPv4 et IPv6)
conf t
 no int vlan 131
 int vlan 131
  ip address 192.168.222.9 255.255.255.248         
  ipv6 address fe80::2 link-local                  
  ipv6 enable
  ipv6 rip tpima2a5 enable                        
  exit
Vérification avec Google.com

On récupère une IPv6 de google avec la commande host depuis une zabeth puis on tente depuis le routeur de ping cette adresse

Ping v6 google.png

3.7 Sécurisation du réseau

4 Services Internet

4.1 Serveur SSH

La première étape est de connecter la VM sur le routeur. Ainsi elle aura accès à internet. Il faut donc ajouter la gateway au système. Cet ajout ce fait dans le fichier /etc/network/interfaces

 auto eth0
 iface eth0 inet static
  address 193.48.57.178
  netmask 255.255.255.240
  gateway 193.48.57.190

Attention, la gateway doit obligatoirement se trouver après le netmask.

Pour un meilleur fonctionnement, il est nécessaire de préciser le proxy. Il faut donc ajouter dans le fichier .profile. On y accède via cd ~, puis nano .profile

 http_proxy="http://proxy.polytech-lille.fr:3128"
 https_proxy="https://proxy.polytech-lille.fr:3128"

Dans le terminal :

  ip route add default via 193.48.57.190 dev eth0 onlink


Afin de permettre une connection SSH avec la VM, il faut autoriser les connexions en utilisateur root.

Dans le fichier /etc/ssh/sshd_config nous décommentons la ligne :

PermitRootLogin yes

4.2 Serveur DNS

Afin de mettre en place ce serveur, il faut installer bind9 et apache2.

 apt-get install bind9 apache2

Pour configurer le DNS, tout se passe dans le dossier /etc/bind. Créé au cours de l'installation.

Les différents fichiers qu'il contient devront être modifiée pour s'adapter au projet.

Premier fichier : named.conf.options

Il permet de mettre en place différentes options et configurations. Nous l'utilisons plus tard pour la suite du TP

options {
     ...
     dnssec-validation auto;
     auth-nxdomain no;
     listen-on-v6 { any; };
     allow-recursion{localhost;};
};

Si ces options ne sont pas présentes, il faut les ajouter pour faire fonctionner correctement notre serveur.

Deuxième fichier : named.conf.local Ce fichier définit le comportement de la VM : Master ou Slave

Il renvoi au fichier de gestion des @IP.

Et permet d'autoriser des transferts vers des @IP

 zone "dionysos.space"{
      type master;
      file "/etc/bind/db.dionysos.space";
      allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net
  };

Important la ligne file pointe à la base sur le fichier db.local

Il est possible de modifier ce fichier, mais il est préférable de le copier sous un nom qui nous convient.

 cp db.local db.dionysos.space 

Troisième fichier : db.dionysos.space Ce fichier permet de faire le lien avec l'adresse IP de notre VM

$TTL    604800

@       IN      SOA     ns.dionysos.space. root.dionysos.space (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
        IN      NS      ns.dionysos.space. ;dns principal
        IN      NS      ns6.gandi.net.     ;dns secondaire
@       IN      A       193.48.57.178      ;acces sans le "www."
ns      IN      NS      193.48.57.178      ;acces avec http https
www     IN      A       193.48.57.178;     ;acces avec le "www.


Une fois tous ces fichiers mis en place, il n'y plus qu'à relancer le serveur DNS

 service bind9 restart

Il faut un certain temps pour que toutes ces informations soient déployées sur internet. Le meilleur moyen de tester est cette adresse [2]

4.3 Sécurisation de site web par certificat

La première étape consiste à créé des fichiers qui correspondent à la clé SSH de notre domaine.

openssl req -nodes -newkey rsa:2048 -sha1 -keyout dionysos.space.key -out dionysos.space.csr
...
Common Name (e.g. server FQDN or YOUR name) []:dionysos.space et dionysos.space.key
Email Address []:qboens@polytech-lille.net

Cette opération génére deux fichiers : dionysos.space.crt et dionysos.space.key

Dans Gandi, il faut d'abord acheter un certificat, dans l'onglet correspondant.

Plusieurs étapes de validation vont alors se lancer.

L'une de ces étapes peut se faire via deux méthodes :

(1)le contrôle du DNS du domaine (risqué car si le DNS n'est pas correctement en place)

(2)la demande d'un fichier. Ce fichier est fourni par Gandi, et doit être transféré sur la VM via SSH.

C'est la méthode (2) que nous avons utilisée.


Une fois cette étape faite on récupére sur gandi GandiStandardSSLCA2.pem, dans l'onglet du certificat.Ce fichier devra être lui aussi téléchargé sur la VM via SSH.

Il permettra de garantir que la VM, et le domaine Dionysos, sont bien protégés par le certificat.


Tous les fichiers sont placés dans le répertoire SSL_certif

mv dionysos.space.csr SSL_certif
mv dionysos.space.key SSL_certif
mv GandiStandardSSLCA2.pem SSL_certif

4.4 Sécurisation de serveur DNS par DNSSEC

La sécurisation via DNSSEC, consiste à créé un fichier signé.

C'est à dire que le fichier sera crypté via un ensemble de clefs. Une privée et une publique.

Ainsi sans ces clefs, il sera difficile d'accéder au domaine et de le pirater.


Création de la clef KSK

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

Création de la clef ZSK

dnssec-keygen -a RSASHA1 -b 1024 -r /dev/urandom -n ZONE dionysos.space

Ces clefs ont été crées dans le dossier SSL_certif

Sur le site gandi nous ajoutons les deux clefs, dans l'onglet DNSSEC de notre domaine

Création d'un fichier signé à partir de db.dionysos.space

dnssec-signzone -o dionysos.space -k dionysos-ksk.key /etc/bind/db.dionysos.space dionysos-zsk.key 


Dans named.conf.local nous changons le fichier cible, pour que bind9 prenne en compte db.dionysos.space.signed, qui est le fichier signé

zone "dionysos.space"{
      type master;
      file "/etc/bind/db.dionysos.space.signed";
      allow-transfer{217.70.177.40;}; //Autorisation transfert vers ns6.gandi.net
};

Puis nous relançons bind9

service bind9 restart

Un bon moyen de contrôler le déploiement de nos clefs : [3]

5 Tests d'intrusion

5.1 Intrusion par changement d'adresse MAC

5.2 Cassage de clef WEP d'un point d'accès wifi

5.3 Cassage de mot de passe WPA-PSK par force brute

6 Réalisation

  • REMARQUE Nous n'avons pas eu à nous occuper des points 6.3, 6.4 et 6.5 du sujet

6.1 Sécurisation de données

La sécurisation des données consiste à mettre en place un système permettant de récupérer les données, si elles venaient à être perdues.

Pour ce faire, nous mettons en place un RAID.

Cette méthode permet de sauvegarder les données sur différentes partitions.

Si une des partitions venait à disparaitre, nous pourrions la recréer à partir des autres.


Création des trois partitions 1G, dans courdouan,

lvcreate -L1G -n IMA5_Dionysos_part1 virtual
lvcreate -L1G -n IMA5_Dionysos_part2 virtual
lvcreate -L1G -n IMA5_Dionysos_part3 virtual

Ajout de ces partitions lors de la création de la VM, dans le fichier Dionysos.cfg:

disk        = [
                'file:/usr/local/xen/domains/Dionysos/disk.img,xvda2,w',
                'file:/usr/local/xen/domains/Dionysos/swap.img,xvda1,w',
                'phy:/dev/virtual/IMA5_Dionysos_var,xvdb2,w'
                'phy:/dev/virtual/IMA5_Dionysos_part1,xvdf1,w',
                'phy:/dev/virtual/IMA5_Dionysos_part2,xvdg1,w',
                'phy:/dev/virtual/IMA5_Dionysos_part3,xvdh1,w',
]

Création du RAID

Création du RAID5 à l'aide de mdadm

sudo mdadm --create /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

Lors du premier essai l'erreur suivante est apparue

mdadm: cannot open /dev/xvdf1: Device or resource busy

Après quelques recherches, j'ai consulté le fichier /proc/mdstat

root@Dionysos:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md127 : active (auto-read-only) raid5 xvdg1[0] xvdf1[2]
      2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      
unused devices: <none>

J'ai donc arrêté md127 grâce à

 mdadm --stop /dev/md127

Puis j'ai relancé la commande de création du RAID

En relisant /proc/mdstat, j'ai obtenu

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid5 xvdh1[2] xvdg1[1] xvdf1[0]
      2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

Daemonisation du volume RAID, pour que la VM le charge à chaque redémarrage

mdadm --monitor --daemonise /dev/md0

On formate le RAID

root@Dionysos:~#mkfs.ext4 /dev/md0
mke2fs 1.44.4 (18-Aug-2018)
Creating filesystem with 523264 4k blocks and 130816 inodes
Filesystem UUID: e7b32d68-7297-4957-9104-574fff233b93
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912

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

Dans le fichier /etc/fstab, nous demandons à notre VM de monter le volume à chaque redémarrage

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

Puis nous créons un dossier

mkdir /media/raid

Dans ce fichier, nous créons un simple fichier texte blabla.txt

Comme demandé dans le sujet, j'ai arrêté ma VM. Puis je l'ai relancée, en désactivant une des partitions : xvdh1

Résultat, dans le dossier /media/raid

root@Dionysos:/media/raid# ls
lost+found

6.2 Cryptage de données

6.6 Sécurisation Wifi par WPA2-EAP