TP sysres IMA2a5 2019/2020 G1 : Différence entre versions
(→Protocole HTTPS) |
|||
(37 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 | + | 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 | + | * Créer une architecture réseaux avec un système de redondance |
* Créer une machine virtuel | * Créer une machine virtuel | ||
− | * | + | * Paramétrer des connections IPV6 |
− | * | + | * Attaquer un réseau WiFi |
− | * Créer un | + | * 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 == | == Installation de la machine virtuelle avec xen == | ||
− | === | + | ===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=== | ||
− | ''' | + | '''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 | ||
− | |||
'''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 254 : | Ligne 254 : | ||
− | ====Gestion des certificats | + | ====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 | 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 | ||
Ligne 271 : | 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 | + | |
+ | 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. | ||
Ligne 277 : | Ligne 283 : | ||
====Installation et paramétrage de bind9==== | ====Installation et paramétrage de bind9==== | ||
− | Installer 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 348 : | Ligne 365 : | ||
Attribution de l'adresse IP de notre DNS principal par le biais d'un Glue record sur le site gandi.net: | Attribution de l'adresse IP de notre DNS principal par le biais d'un Glue record sur le site gandi.net: | ||
[[Fichier:GlueRecord.png]] | [[Fichier:GlueRecord.png]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Attaque Wifi== | ==Attaque Wifi== | ||
− | |||
− | |||
===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''' | ||
− | + | ||
− | + | 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 434 : | 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 440 : | Ligne 475 : | ||
lvcreate -L1G -n ima2a5-zerofun-d3 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-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 | ||
− | + | '''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 455 : | 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 473 : | 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 | ||
− | mkfs.ext4 /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 | 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 565 : | Ligne 817 : | ||
|- | |- | ||
|} | |} | ||
− | + | ||
===== Création du lien pour la borne wifi ===== | ===== Création du lien pour la borne wifi ===== | ||
Ligne 1 015 : | 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/ | ||
Ligne 1 025 : | Ligne 1 279 : | ||
https://null-byte.wonderhowto.com/how-to/hack-like-pro-crack-passwords-part-4-creating-custom-wordlist-with-crunch-0156817/ | 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
- 1 Présentation du Groupe et du projet
- 2 Installation de la machine virtuelle avec xen
- 3 Site web
- 4 Attaque Wifi
- 5 Stockage Raid5
- 6 Cryptage de fichiers
- 7 Sécurisation wifi par WPA2-EAP
- 8 Serveur FreeRadius
- 9 Architecture Réseau
- 10 Sources
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
Notre site est sécurisé, on peut afficher le certificat et voir le petit cadenas vert. On est Safe ! :D
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
Attribution de l'adresse IP de notre DNS principal par le biais d'un Glue record sur le site gandi.net:
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é !
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.
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://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