TP sysres IMA2a5 2019/2020 G3
Sommaire
- 1 Accueil/Descriptif du groupe
- 2 Informations importantes
- 3 La machine Virtuelle sous XEN : ima2a5-rex4ever
- 4 Le Site Web : HTTP
- 5 Le Site Web : HTTPS
- 6 Attaque d'une installation Wi-fi
- 7 Diverses commandes
- 8 Architecture Réseau
Accueil/Descriptif du groupe
Bienvenue sur la page du groupe 3. Le découpage en groupe par numéro permet de se repérer plus facilement dans l'adressage des différents réseaux nécessaire.Ce groupe est constitué de :
- Pascal Coint
- Quentin Weisbecker
Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système nous avons à installer une machine virtuelle Xen avec l'OS Devian ainsi qu'implanter un auto-commutateur et un point d'accès. Nous effectuerons pas la suite des tests d'intrusion sur ces points d'accès afin de voir la vulnérabilité des différents protocoles de clé. Pour notre cas, nous nous étendrons sur les protocoles WEP et WPA-PSK.
Informations importantes
Description | Détails |
---|---|
ID VLAN | 4 |
Réseau IP V4 | 10.60.3.0/24 |
Réseau IP V6 | 2001:660:4401:60B3::/64 |
Nom de l'ordinateur portable | Requin |
Repérage à l'étiqueteuse | IMA2A5 |
Numéro de poste | Zabeth03 |
La machine Virtuelle sous XEN : ima2a5-rex4ever
Note importante
Comme indiqué dans le sujet, nous allons créer une machine virtuelle via l'utilitaire Xen Linux sur le dom0 cordouan.insecserv.deule.net via la commande ssh et le compte administrateur usuel.Sur notre machine virtuelle nous créerons par la suite un compte pifou et un compte root identique au Zabeth.
Installation Summary --------------------- Hostname : ima2a5-rex4ever Distribution : ascii MAC Address : xxxxxxxxxxx IP Address(es) : dynamic SSH Fingerprint : SHA256:xxxxxxx (DSA) SSH Fingerprint : SHA256:xxxxxxx (ECDSA) SSH Fingerprint : SHA256:xxxxxxx (ED25519) SSH Fingerprint : SHA256:xxxxxxx (RSA) Root Password : sZzrYYPFZEwxsfmFghddGW5
Création de notre machine virtuelle XEN
Après s'être connecté, il faut maintenant creer la machine virtuelle :
xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force
L'installation se lance alors :
root@cordouan:~# xen-create-image --hostname=ima2a5-rex4ever --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force Use of uninitialized value within %DIST in pattern match (m//) at /usr/bin/xen-create-image line 1803. General Information -------------------- Hostname : ima2a5-rex4ever Distribution : ascii Mirror : http://fr.deb.devuan.org/merged/ Partitions : swap 512M (swap) / 4G (ext4) Image type : sparse Memory size : 256M Kernel path : /boot/vmlinuz-4.9.0-6-amd64 Initrd path : /boot/initrd.img-4.9.0-6-amd64 Networking Information ---------------------- IP Address : DHCP [MAC: xxxxxxx] Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/swap.img Done Creating swap on /usr/local/xen/domains/ima2a5-rex4ever/swap.img Done Creating partition image: /usr/local/xen/domains/ima2a5-rex4ever/disk.img Done Creating ext4 filesystem on /usr/local/xen/domains/ima2a5-rex4ever/disk.img Done Installation method: debootstrap
L'installation peut sembler bloquer sur cette dernière ligne mais il est possible de voir ce qui se passe en arrière plan via un second terminal en SSH et la commande SSH
tail -f /var/xen-tools/ima2a5-rex4ever.log
Ajout du bridge à ima2a5-rex4ever.cfg
Dans un premier lieu, on regarde l'existence du brige sur l'hote distant via :
brctl show
Ce qui nous retourne :
bridge name bridge id STP enabled interfaces IMA2a5 8000.000af75e3dc0 no eth1 eth2 if3.0 IMA5sc 8000.000af75e3dc2 no eth3 eth5 Insecure 8000.c81f66c22b83 no vlan6 L3MRIT 8000.000af763ae2d no eth4 StudentsInfo 8000.c81f66c22b83 no vlan50
On voit bien l'existence du bridge IMA2a5, il faut donc l'ajouter à notre .cfg qui est le fichier de configuration de la VM (/etc/xen/ima2a5-rex4ever.cfg) et on modifie la ligne commençant par vif = et on ajoute le bridge de la manière suivante :
vif = ['MAC:xxxxx,bridge = IMA2a5']
Après avoir modifié ce fichier, il faut le parser : xl create /etc/xen/ima2a5-rex4ever.cfg Une erreur NUMA placement failed, performance might be affected peut apparaître mais elle indique juste que xen n'arrive pas à disposer les VM comme il veut sur les procs, mais cela n'impactera que les performances nous passons outre ce problème.
Démarrer la VM et accès console
On lance alors la commande pour accéder à la machine virtuelle:
xl create /etc/xen/ima2a5-rex4ever.cfg
On lance alors la commande pour accéder à la machine virtuelle:
xl console ima2a5-rex4ever
il demande alors le login (root) et le mdp (longue chaine précédemment générée). Après nous être logué,on change le mot de passe qui devient le même que le mot de passe du root de corduan ou d'une zabeth.
Montage des répertoires /var et /home
Creation des disques logique
Il faut d'abord créer les partitions logiques sur corduan via :
lvcreate -L10G -n ima2a5-rex4ever-home virtual lvcreate -L10G -n ima2a5-rex4ever-var virtual
Il est possible qu'il affiche l'avertissement suivant : WARNING: ext2 signature detected on /dev/virtual/ima2a5-rex4ever-home at offset 1080. Wipe it? [y/n] repondre alors oui(y). Il est possible de verifier que votre partition a bien été crée via la commande :
lvdisplay
On obtient alors dans la liste de toutes les partitions, nous deux partitions précedemment créées
--- Logical volume --- LV Path /dev/virtual/ima2a5-rex4ever-home LV Name ima2a5-rex4ever-home VG Name virtual LV UUID mhJqFx-zO1m-PlOU-Zmeu-8NGx-7UUO-c2g9dP LV Write Access read/write LV Creation host, time cordouan, 2019-11-08 08:47:26 +0000 LV Status available # open 0 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:3 --- Logical volume --- LV Path /dev/virtual/ima2a5-rex4ever-var LV Name ima2a5-rex4ever-var VG Name virtual LV UUID 9Bnl6S-6CE5-CtO2-hD8f-RidD-sps5-b1mrWg LV Write Access read/write LV Creation host, time cordouan, 2019-11-08 08:50:57 +0000 LV Status available # open 0 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:4
Il faut maintenant faire pointer le système de fichier sur nos deux nouveaux repertoires pour finir la création :
mke2fs /dev/virtual/ima2a5-rex4ever-home mke2fs /dev/virtual/ima2a5-rex4ever-var
Nos deux disques sont maintenant prêt, il ne reste plus qu'a les connecter avec la VM. Pour cela, il faut modifier le .cfg de nouveau.
Modification du fichier de configuration
Retournons donc dans le fichier /etc/xen/ima2a5-rex4ever.cfg et dans la section disk modifier tel que :
disk = [ 'file:/usr/local/xen/domains/ima2a5-rex4ever/disk.img,xvda2,w', 'file:/usr/local/xen/domains/ima2a5-rex4ever/swap.img,xvda1,w', 'phy:/dev/virtual/ima2a5-rex4ever-home,xvdb1,w', 'phy:/dev/virtual/ima2a5-rex4ever-var,xvdb2,w', ]
Pour prendre effet il faut redémarrer la VM à l'aide des commandes
xl shutdown ima2a5-rex4ever xl create /etc/xen/ima2a5-rex4ever.cfg
Configuration pour forcer le montage à chaque démarrage de la VM
Il faut ensuite aller dans la VM dans /etc/fstab et ajouter
/dev/xvdb1 /home ext4 defaults 0 2 #/dev/xvdb2 /var ext4 defaults 0 2
Ces deux lignes permettent d'assurer que les 2 disques /var et /home soient pris en compte au démarrage de la VM.(ATTENTION POUR LE MOMENT BIEN LAISSER # DEVANT LA 2eme LIGNE) Relancer la machine comme précédemment expliqué et testé que le /home fonctionne. Pour le /var c'est un peu plus compliqué comme manipulation et il faut faire EXTREMENT attention , une fausse manipulation peut tuer la machine.
mount /dev/xvdb2 /mnt rm -rf /mnt/lock rm -rf /mnt/log rm -rf /mnt/run mv /var/* /mnt vi /etc/fstab
Maintenant decommentez la deuxième ligne que vous aviez ajouté précedemment. Puis il faut lancer la commande :
umount /mnt mount -a
A l'aide de la commande fdisk -l depuis la VM, on peut verifier que nos quatres disques sont bien montés.De même avec df on obtient bien dans la liste les lignes :
Filesystem 1K-blocks Used Available Use% Mounted on udev 75004 0 75004 0% /dev tmpfs 23824 76 23748 1% /run /dev/xvda2 4062912 459920 3376896 12% / tmpfs 5120 0 5120 0% /run/lock tmpfs 152500 0 152500 0% /run/shm /dev/xvdb1 10321208 23028 9773892 1% /home /dev/xvdb2 10321208 71076 9725844 1% /var
La machine est donc prête, on peut passer à l'installation des paquetages linux nécessaires
Mise en place de l'adresse statique
Précedemment nous avions mis l'adresse en DHCP or il est demandé d'avoir une adresse statique (pour notre groupe il s'agit de 193.48.57.163/28 )
Paquetage Linux
Pour commencer, on va tout d'abord mettre le système à jour via :
sudo apt-get update
Paquetages nécessaires pour le SSH
OpenSSH est un ensemble d'outils libres pour établir des communications chiffrées, donc sécurisées, sur un réseau informatique grâce au protocole SSH (Secure SHell). Il chiffre tout le trafic (mots de passe y compris), via une combinaison astucieuse de chiffrement symétrique et asymétrique. OpenSSH fournit également d'autres méthodes d'authentification alternatives au traditionnel mot de passe. Comme son nom l'indique, OpenSSH est développé dans le cadre du projet OpenBSD.
Nom de la bibliothèque | Descriptif | Commande |
---|---|---|
OpenSSh Client | Utilitaires de connexion SSH partie Client | sudo apt-get install openssh-client |
OpenSSh Server | Utilitaires de connexion SSH partie Server | sudo apt install openssh-server |
Dans notre cas, SSH est déjà présent sur la machine virtuelle.
Paquetages nécessaires pour le serveur Web Apache2
Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C'est le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Pour l'installer, il faut taper la commande :
apt install apache2
Paquetages nécessaires pour le serveur DNS bind
Le service DNS (Domain Name System) est un service TCP/IP permettant la correspondance entre un nom de domaine qualifié (FQDN : Fully Qualified Domain Name) et une adresse IP. Ainsi, grâce à DNS, il n'est pas nécessaire de se souvenir des adresses IP.Un serveur qui héberge le service DNS est appelé "serveur de noms". Ubuntu est livré par défaut avec BIND (Berkley Internet Naming Daemon), le serveur DNS le plus utilisé sur Internet. Pour installer bind9 :
apt install bind9
Le Site Web : HTTP
Achat d'un nom de domaine
Pour la réalisation de ce TP, nous avons dû acheter un nom de domaine via le site Gandi.net . On retiendra que notre nom de domaine est : rex4ever.site.
Paramétrage apache2
Après avoir installé Apache2 sur la machine ( voir ici), il faut le paramétrer correctement (je me suis servi de ce site).Pour cela, on commence configurer le .conf Pour cela, on le crée via la commande nano /etc/sites-available/ima2a5-rex4ever.site.conf et on renseigne alors dans le fichier les détails suivants :
<VirtualHost *:80> ServerName ima2a5-rex4ever.site ServerAlias www.ima2a5-rex4ever.site DocumentRoot "/var/www/ima2a5-rex4ever" <Directory "/var/www/ima2a5-rex4ever"> Options +FollowSymLinks AllowOverride all Require all granted </Directory> ErrorLog /var/log/apache2/error.ima2a5-rex4ever.site.log CustomLog /var/log/apache2/access.ima2a5-rex4ever.site.com.log combined </VirtualHost>
Maintenant qu'il est configuré, on peut déployer le site via :
a2ensite ima2a5-rex4ever.site
Puis, on recharge la configuration de l'utilitaire Apache 2 :
service apache2 reload
Paramétrage du DNS
Le DNS (Domain Name Server) est un serveur qui permet de rattacher un nom à une IP et ainsi c'est lui qui permet de faire le lien entre le nom d'un site et son contenu
Glue Records sur Gandi
Le Glue Record permet de créer des alias et ainsi de lier des IP et à des noms.C'est fort pratique pour simplifier la configuration.Pour se faire il faut se rendre dans Domain , cliquer sur le nom de notre site , aller dans l'onglet Glue Records et cliquer sur ADD
name : dns.ima2a5-rex4ever.site ip adresse(s) : 193.48.57.163
Affecter le DNS du coté de Gandi.net
Par défaut, les serveurs de noms (DNS) sont 3 serveurs de DNS Live Gandi, il faut ajouter les serveurs externes :
- ns6.gandi.net 217.70.177.40
- dns.ima2a5-rex4ever.site 193.48.57.163
Note: il faut compter 12 à 24 heures pour la propagation sur Internet.
Le paramétrage de bind9
Le paramétrage repose sur la configuration de ses 3 fichiers :
Le fichier /etc/bind/named.conf.options
Ce fichier permet de gérer les DNS authorisés (de manière générale) à récuperer des informations de notre site. On le modifie pour permettre au dns de gandi de récuperer les données :
options { // forwarders { // 0.0.0.0; // }; // dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; allow-transfer { "allowed_to_transfer"; }; }; acl "allowed_to_transfer" { 217.70.177.40/32; // adresse IP du dns6.gandi.net };
Le fichier /etc/bind/named.conf.local
Il faut maintenant déclarer à Bind9 le nom de notre fichier de configuration de DNS sous forme de zone , on le fait via ce fichier. On lui renseigne la zone :
zone "ima2a5-rex4ever.site" { type master; file "/etc/bind/db.ima2a5-rex4ever.site"; };
le fichier /etc/bind/db.ima2a5-rex4ever.site
Enfin, il faut créer le fichier de configuration précedemment appelé :
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA dns.ima2a5-rex4ever.site. root@ima2a5-rex4ever.site. ( <= METTRE UNE ADRESSE BIDON , pas necessaire 21112019 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS dns.ima2a5-rex4ever.site. <= DN du site @ IN NS ns6.gandi.net.<= DNS de gandi dns IN A 193.48.57.163 <= IP DE NOTRE DNS www IN A 193.48.57.163 <= IP DE NOTRE SITE
Après 5 minutes de cuisson et avoir relancé bind9, c'est prêt le site en http est accessible et visualisable! On peut acceder au site internet http://www.ima2a5-rex4ever.site !
Le Site Web : HTTPS
Le SSL (Secure Socket Layer) / TLS (Transport Layer Security) est le protocole de sécurité le plus répandu qui créé un canal sécurisé entre deux machines communiquant sur Internet ou un réseau interne. Dans notre société centrée sur un Internet vulnérable, le SSL est généralement utilisé lorsqu'un navigateur doit se connecter de manière sécurisée à un serveur web.
Generation d'un certificat
La première étape pour générer un certificat est de concevoir un jeu de 2 clefs qui sont un .key et un .csr Pour obtenir ces deux fichiers, nous utilisons l'utilitaire OpenSSL.
openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-rex4ever.key -out ima2a5-rex4ever.csr
Mais alors comment marche cette commande? Après avoir lu le descriptif que l'on peut obtenir via man openssl, il en ressort que les arguments sont :
Argument | explication |
---|---|
req | Gestion X.509 Certificate Signing Request (CSR). |
-nodes | Pas de chiffrage sur la clef privée (option arbitraire no des) |
-newkey rsa:2048 | demande de Génération d'une paire de clef RSA de 2048 bits et d'une demande de certificat. |
-keyout ima2a5-rex4ever.key | spécification du nom de notre .key |
-out ima2a5-rex4ever.csr | spécification du nom de notre demande de certificat .csr |
Pour générer en bon éduforme notre demande,l'utilitaire a besoin des informations, voici ce que nous avons répondu:
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Nord Locality Name (eg, city) []:Lille Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille Organizational Unit Name (eg, section) []:IMA2A5 Common Name (e.g. server FQDN or YOUR name) []:ima2a5-rex4ever.site Email Address []:pascal.coint@polytech-lille.net Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:glopglop! Optionnal informations :
Affectation du certificat sur Gandi.net
Après avoir répondu , il génère alors 2 fichiers. Le .key est notre clef privée elle restera donc en notre unique possession. On partage avec gandhi (qui est également un générateur de certificat) notre .csr. Il va donc étudier la validité de notre domaine et le certifier ou non.
Contenu de notre CSR
-----BEGIN CERTIFICATE REQUEST----- MIIDBTCCAe0CAQAwgaUxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDzANBgNVBAsMBklN QTJBNTEdMBsGA1UEAwwUaW1hMmE1LXJleDRldmVyLnNpdGUxLjAsBgkqhkiG9w0B CQEWH3Bhc2NhbC5jb2ludEBwb2x5dGVjaC1saWxsZS5uZXQwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQDBKS9p8572UiXo2W1dAiKEKLq+B6ge/si0AhMH fLtovMz7Xvy/9oQnq25SvkWaNRuAJrvzROGS2mzkG9IEhnEpWSTNvspTO60PgNPo EUYcgKAeEuVVJyom3K3ioBOvllucQfiOIB/ykvP80s+9Wjo2vf2PkESPTjfM0zKP 2JMT9cGQV6auD7NU+Ygz7w5dW/NKkU2KZA9HQ7i95+/ST3r2T0D8xP/ltEBC0Q7i U/OVkAKn6CPJ6KtkbQYvgKVG95IM5SQb/WxRVNnHKS4f+erNFYpx5iNiHhv6larV G0oR9uNsg7tOhdhcVVnooGSAsoxtgmDLwzuuho+3fS4t1K83AgMBAAGgGjAYBgkq hkiG9w0BCQcxCwwJZ2xvcGdsb3AhMA0GCSqGSIb3DQEBCwUAA4IBAQB7jtWizvBQ dNEyyVRhS563mKFo34RWW4g5tpnPC6wepQ7tvHo6gZZtzljobsWF55lRK7/Pi8eh ANyQxb1Lo9FcHJcUOEMc8heeutSZQoCslTdRNMe+uBhQ/qCLXjy+fgdptqPi9cXP zi8gBbrAQ9sHqJPK/RwhzuhCkBSzYgoNbYLjrHf8lCe60+7+0HBKM3jpTUDmzrzg Kmb8GmkgcrzKSNhlOFZpiQqBJUfK5zJEucdhJ0j7Tupwf+J2oO+TccnCNH7o1Ykc 7ANKYKpf8AoCcZenLutCXt3YGjT8INuh5SnpsyR3BZUK9hNzZGK9Ilv9hwiEnmaS PQWRkLUGQdh+ -----END CERTIFICATE REQUEST-----
Puis, Gandi.net va demander une méthode de vérification sur le serveur web cible afin de savoir s'il s'agit bien de notre serveur.Il existe trois possibilités:
- Par verification DNS
- Par Mail
- Par fichier
Nous avons choisi la méthode par fichier, certes un peu longue mais ne nécessitant pas l'intervention de Monsieur Redon. On copie ainsi un fichier temporaire à l'endroit indiqué par gandi et on attend que gandi valide la demande. Après une verification de la part de Gandi (qui nécessite plusieurs dizaines de minutes), on obtient un certificat (.csr) et le certificat intermédiaire (.pem) Ils sont nécessaires pour la configuration du site en HTTPS.
S'assurer qu'Apache écoute le port 443 (protocole https)
On sait que le protocole HTTPS se sert du port 443 pour communiquer , verifions alors que c'est bien le cas :
root@ima2a5-rex4ever:/etc/apache2# netstat -tanpu |grep "LISTEN" |grep "443" tcp6 0 0 :::443 :::* LISTEN 10706/apache2
Le résultat indique en effet que le port 443 est ecouté par apache2, ce qui signifie qu'il ne faut pas faire de configuration supplémentaire.
Activation du protocole SSL
Il faut activer le module qui gère le protocole SSL via la commande :
a2enmode ssl service apache2 restart
Configuration du VirtualHost Apache pour le protocole HTTPS
Afin de ne pas saboter la configuration HTTP déjà en place, on va dupliquer la configuration disponible dans /sites-available:
cp ima2a5-rex4ever.site.conf ima2a5-rex4ever.site-ssl.conf
Modification :
<VirtualHost *:443> # General setup for the virtual host DocumentRoot "/var/www/ima2a5-rex4ever" ServerName ima2a5-rex4ever.site:443 ServerAdmin pascal.coint@polytech-lille.net ErrorLog "/usr/local/apache2/logs/error_log" TransferLog "/usr/local/apache2/logs/access_log" # Activation du SSL SSLEngine On # Activation de tous les protocoles sécurisés (TLS v1.0, v1.1 et TLS v1.2) touut en désactivant les protocoles non sécurisés (SSL v2, SSL v3) SSLProtocol All -SSLv3 -SSLv2 # Le navigateur devra choisir une méthode de chiffrement en respectant l'ordre indiquée dans SSLCipherSuite SSLHonorCipherOrder on # Chemin vers le certificat SSL de votre nom de domaine SSLCertificateFile "/etc/apache2/certificate/ima2a5-rex4ever.cer" SSLCACertificateFile "/etc/apache2/certificate/ima2a5-rex4ever.pem" # Chemin vers la clée privée du certificat SSL de votre nom de domaine SSLCertificateKeyFile "/etc/apache2/certificate/ima2a5-rex4ever.key" </VirtualHost>
On peut maintenant permuter les fichiers .conf et renommer notre ancien .conf en "ima2a5-rex4ever.site-http.conf" Note : Comme vous aurez pu le remarquer, j'ai créer un dossier certificate dans lequel j'ai mis le .cer,le .csr,le.key et le .pem afin de ne pas les perdre. On va ensuite décharger puis recharger le site :
a2dissite ima2a5-rex4ever.site a2ensite ima2a5-rex4ever.site service apache2 restart
Ensuite on va regarder quels sont nos sites actifs à l'aide de apache2ctl -S , ce qui retourne :
*:80 ima2a5-rex4ever.site (/etc/apache2/sites-enabled/000-default.conf:1) *:443 ima2a5-rex4ever.site (/etc/apache2/sites-enabled/ima2a5-rex4ever.site.conf:13)
Le site est prêt pour le HTTPS
Securisation du DNS : Le DNSSEC
Avoir un site sécurisé c'est bien , avoir toute la chaine de transmission pour éviter les fraude c'est encore mieux. Pour cela, il est possible de concevoir un DNSSEC (contraction de DNS SECURISED)
Attaque d'une installation Wi-fi
Description
Notre Client Wi-fi est un ordinateur portable fourni par Monsieur Redon. Il ne nécessite pas nécessairement de configuration. Cependant, la clef Wi-Fi fournie avec elle doit être paramétrée (la datasheet peut se trouver à l'adresse suivant ; Datasheet). De plus, il faut installer les paquetages nécessaire pour craquer la clef Wep et la clef WPA
Installation du paquetage AirCrack-ng
Pour installer AirCrack (utilitaire qui permet de casser les clefs WEP et WPA), il suffit de taper la commande :
apt-get install aircrack-ng
Note: il faut auparavant configurer le réseau pour se connecter à internet.
Utilisation de AirCrack pour clef WEP
Après avoir branché la clef WiFi, on se sert de airmon-ng qui est un utilitaire qui espionne le réseau et permet d'obtenir les types d'interfaces communicantes/espionnable.
airmon-ng
Pour tenter de s'y connecter en tant qu'espion, il faut alors taper (nous le tapons ici avec wlan0mon):
airmong-ng start NOMRESEAUESPIONNABLE
Puis, pour observer et découvrir les canaux associés au réseau et leurs SSID,il faut taper:
airodump-ng --encrypt wep NOMRESEAUESPIONNABLE
Puis à l'aide d'un second terminal, on peut stocker les informations volées dans un .txt :
Airodump-ng FICHIER.txt -c 2 --bssid ADDRESSBSSID NOMRESEAUESPIONNABLE
Ce qui donne dans notre cas :
airmon-ng airmong-ng start wlan0mon airodump-ng --encrypt wep wlan0mon Airodump-ng -w reseau_1.txt -c 2 --bssid 04:DA:D2:50:53 wlan0mon (<== pour le réseau cracotte 3)
Commence alors le craquage de la clef Wifi en Wep. On estime qu'il faut capturer plus ou moins 50 000 datas pour approximer 50% de chance de craquer la clef. Après 40 000 datas volées , on réussit à craquer la clef, il nous aura fallu environ 14 minutes.
KEY FOUND! [BA:BE:EE:EE:EE:EE:EE:EE:EE:EE:EE:EE:44:44 ] Decrypted correctly : 100%
Utilisation de AirCrack pour clef WPA2-PSK
De même que précedemment, on recommence en changeant le --encrypt et on obtient :
airmon-ng airmong-ng start wlan0mon airodump-ng --encrypt wpa wlan0mon
On obtient les informations suivantes sur notre réseau cible : Channel: 2 SSIDName: kracotte03 BSSIDAdress: 04:DA:D2:9C:50:5A
On peut alors espionner et voler des informations avec les handshakes: airodump-ng -w kracotte03 -c 2 --bssid 04:DA:D2:9C:50:5A
-w kracotte03 indique que l'on souhaite tout enregistrer dans un fichier nommé kracotte03.. On obtient alors après un moment les datas volées et les informations sont extraites sous plusieurs formats. Le format .cap est compatible avec l'utilitaire que nous allons utiliser, on le copie donc sur une clef USB et on va cracker la clef sur une zabeth (vitesse de calcul plus elevée). Pour se faire , on construit un dictionnaire (ensemble possible de toutes les combinaisons) avec l'utilitaire Crunch via la commande :
crunch 8 8 123456789 >> Dico.txt
Notre dictionnaire est largement simplifié car nous sommes au courant qu'il s'agit d'un ensemble de 8 chiffres de 1 a 9 , ce qui permet de préciser à crunch une taille min et max de 8 et les caractères admissibles de 1 à 9 Le dictionnaire est maintenant prêt, on lance alors le cassage de clef par force brute : aircrack-ng psk-01.cap -w Dico.txt
Après TREEEEEEEEEEEEEEEEEEEEEEEEEEEEEES Longtemps , on obtient la clef :
[00:21:41] 10233332/102795810 keys tested (7985.18 k/s) Time left: 3 hours, 13 minutes, 12 seconds 9.96% KEY FOUND! [ 10233333 ] Master Key : 5A D9 A4 39 7A 4E 14 A6 44 DE C4 AB FF 1E 63 D7 46 7B F8 02 23 ED EA A9 82 3F 6A FC 68 DE F2 5D Transient Key : 29 DA 59 3B EC 25 DB 6A 62 AD 50 2C 17 52 BC F8 C9 CD 7C 85 A5 07 7E 44 84 B5 A6 EB 2E 47 B3 D0 1C CC CC F8 24 EB 00 0A C0 7B B8 60 13 AE 57 74 1E 15 A9 FC D7 A8 E5 C6 14 9B 01 60 E4 C4 96 43 EAPOL HMAC : 15 99 D7 E0 33 B3 E1 4C 57 6F 8E E4 69 AF B0 08
Diverses commandes
Creation du Raid5 avec mdadm
Nous commencons par créer un RAID5 comme demandé dans la partie 6.1 du sujet. Pour se faire on commence par créer 3 disques de 1Go chacun:
root@cordouan:~# lvcreate -L1G -n ima2a5-rex4ever-disk1 virtual root@cordouan:~# lvcreate -L1G -n ima2a5-rex4ever-disk2 virtual root@cordouan:~# lvcreate -L1G -n ima2a5-rex4ever-disk3 virtual
On éteint la machine et on recommence la même manipulation que pour la partie 3.5.1 du wiki pour attacher disk1,disk2 et disk3. Nos 3 disques sont maintenant reliées à notre machine comme on le peut voir avec la commande fdisk -l
Disk /dev/xvdb3: 1 GiB, 1073741824 bytes, 2097152 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/xvdb4: 1 GiB, 1073741824 bytes, 2097152 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/xvdb5: 1 GiB, 1073741824 bytes, 2097152 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
On nous propose de réaliser le raid5 logiciel avec l'utilitaire mdadm (mdadm) Assemblons maintenant nos 3 disques en un RAID5 via la commande :
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
Note: Ne pas essayer de renommer md0 Pour automatiser le raid5 à chaque démarrage:
mdadm --monitor --daemonise /dev/md0
Puis le formatage du volume RAID nouvellement créé:
mkfs.ext4 /dev/md0
Déclarez ce volume dans `fstab` pour que le système le monte au démarrage (le système de fichier, pas le volume en lui même). Pour ce faire Editez le fichier /etc/fstab et ajoutez à sa fin la ligne :
/dev/md0 /media/raid ext4 defaults 0 1
Puis créer le fichier /media/raid qui est le fichier sur lequel le raid est monté :
mkdir /media/raid
En retirant un disque (mise en commentaire /etc/fstab), le disque md0 est toujours actif et utilisable.
Cryptage de données
Réseau WPA2-EAK
Architecture Réseau
Dans cette partie, vous trouverez comment nous avons configuré les routeurs ainsi que les commutateurs qui se trouve dans les salles E304 et E306.
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 | E304 | E306 |
---|---|---|
Corduan | A remplir ! | A remplir ! |
Borne Wifi | A remplir ! | A remplir ! |
Commutateur | A remplir ! | A remplir ! |
Router | A remplir ! | A remplir ! |
}
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 commutateur
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
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 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 3 ip 10.60.1.252 //Donne l'addresse IPV4 du routeur virtuelle pour le HSRP standby 3 preempt // Activation du HSRP ipv6 address 2001:660:4401:60B3::/64 eui-64 //Attribut l'addresse IPV6 ipv6 enable //Active l'addressage IPV6 ipv6 nd prefix 2001:660:4401:60B3::/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 6 ip 10.60.6.252 standby 6 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 7 ip 193.48.57.172 standby 7 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 interface BDI130 ip address 192.168.222.1 255.255.255.248 ipv6 address FE80::42:2 link-local ipv6 enable exit write
Interconnexion du réseau IPV4
Se le faire expliquer parce que rien compris
configure terminal router ospf 1 //création d'un opsf (Open Shortest Path First) router-id 10.60.0.1 //Doute voir avec Redon ! 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
Sécurisation du réseau
Question pour Redon addresse Ip à définir
conf t int XXXX ip address 10.10.10.2 255.255.255.0 vrrp 1 ip 10.10.10.3 vrrp 1 preempt //Activation de la préemption, si jamais le routeur tombe en panne, l'autre prend sa place vrrp 1 priority 100 //Dans le vvrp n°1 on définit la priorité à 100, plus la priorité est élevé plus il sera sollicité exit 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
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'interconnexio
Interconnexion du réseau IPV4
Se le faire expliquer parce que rien compris
configure terminal router ospf 1 //création d'un opsf (Open Shortest Path First) router-id 10.60.0.1 //Doute voir avec Redon ! 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