diff --git a/content/01_firewall_wireguard.md b/content/01_firewall_wireguard.md
index 8a0adf6c099d61469c2f247e43f82809cd6fa1bd..76b4e4a0a4c69a94d78d9e2db48cc74bb86e9cfc 100644
--- a/content/01_firewall_wireguard.md
+++ b/content/01_firewall_wireguard.md
@@ -51,7 +51,7 @@ nous bloquera.
 
 ### Ajouter une règle qui empêche la VM Ubuntu de naviguer sur internet, le montrer à l’aide de Wireshark et l’expliquer.
 
-![Règle pfSense](../figs/pfsense_rule.bmp)
+![Règle pfSense](../figs/pfsense_rule.bmp){width=90%}
 
 ![Capture Wireshark](../figs/wireshark_block_rule.png)
 
@@ -95,7 +95,7 @@ Ce champ rajoute une route vers le(s) réseau(x) donné(s), c'est-à-dire que le
 paquets adressés à `192.168.42.0/24` et `192.168.2.0/24` passeront par l'interface
 WireGuard.
 
-Ce champ permet aussi de router les paquets dont l'IP source est une l'une des
+Ce champ permet aussi de router les paquets dont l'IP source est l'une des
 adresses citées ci-dessus par l'interface WireGuard. 
 
 ### Se connecter au WireGuard depuis la machine hôte et montrer que la connexion fonctionne. Le handshake qui réussit suffit
diff --git a/content/02_dos.md b/content/02_dos.md
index 31b72d01cb3445361ab446b57b4f0a3511ddc324..82ace7a1b6825a1f97e3d7e56f07e9a4984b2a05 100644
--- a/content/02_dos.md
+++ b/content/02_dos.md
@@ -45,8 +45,8 @@ A nouveau, malheureusement, cette version ne nous a pas permis de faire tomber
 le serveur pour des raisons qui nous sont inconnus, cependant nous suspectons
 le **GIL** (_Global Interpreter Lock_) de `python` de nous empêcher de réellement
 "paralléliser" l'envoie des requêtes vers le serveur. Le **GIL** agit comme un
-verrou sur chaque thread même s'il n'y aucune ressource partagée ce qui va provoquer
-une exécution séquentielle des envoies de requêtes.
+verrou sur chaque thread même s'il n'y a aucune ressource partagée ce qui va provoquer
+une exécution séquentielle des envoies des requêtes.
 
 ```python
 import requests
@@ -189,6 +189,7 @@ Pour notre cas d'utilisation, nous avons du modifier la ligne de commande
 proposée dans l'énoncé pour que celle-ci fonctionne dans le cas de notre attaque.
 
 Les divers paramètres passés à `iptables` sont :
+
 - `-I INPUT` signifiant que nous allons surveiller le trafic entrant
 - `-p udp` spécifie le protocole utilisé (UDP)
 - `--dport 8080` port sur lequel nous voulons effectuer ce "filtrage"
@@ -204,3 +205,8 @@ faire "tomber" / ignoré les paquets (ne pas les traiter).
 ```bash
 iptables -I INPUT -p udp --dport 8080 -m recent --update --seconds 60 --hitcount 4 --rsource -j DROP
 ```
+
+### Relancer l'attaque. Que remarquez-vous ?
+
+Après avoir relancer l'attaque, presque immédiatement le serveur arrête de repondre
+répondre et fini par tomber. L'attaque est réussie!
diff --git a/content/03_dns.md b/content/03_dns.md
index 424d7e9b3cdc8209808fc784772f188e50546d75..e35acc490616145802ad21090b7ad452269c7ff1 100644
--- a/content/03_dns.md
+++ b/content/03_dns.md
@@ -7,7 +7,7 @@
 C'est un logiciel serveur spécial, il s'appuie sur une base de données afin de
 pouvoir traiter les demandes du _"Domain Name System"_ (DNS). Le DNS permet de
 traduire un nom de domaine (ex: google.com) que l'on tape dans la barre de
-recherche dans un navigateur, vers l'adresse IP associé à cet hôte.
+recherche dans un navigateur, vers l'adresse IP associée à cet hôte.
 
 
 ## Noter les adresses IPs de chaque machine
@@ -133,37 +133,29 @@ divers domaines à la suite du reset du cache.
 
 ### DNS Server cache poisonning
 
-```
-sudo netwox 105 -h www.example.com -H 192.168.192.136 -a ns.example.com -A
-192.168.192.136 --spoofip “raw” --ttl 86400
-```
-
 - Vider le cache sur la machine client puis essayer de ping certaines adresses.
 Que se passe-t-il ?
 
 On intercepte les demandes de la part du serveur DNS pour la résolution du nom
 de domaine. Par conséquent même si l'on flush le cache DNS du client, comme le
 problème se situe au niveau du serveur DNS ainsi que de la résolution de noms,
-cela ne va rien changé et les réquêtes DNS passeront par l'attaquant.
+cela ne va rien changé et les requêtes DNS passeront par l'attaquant.
 
 ![DNS spoofing](../figs/dnsservercache.png)
 
-Cette ligne de commande utilise l'outil Netwox avec le numéro de module 105 pour effectuer certaines opérations réseau. Voici une explication détaillée des options utilisées dans cette commande :
-
-- `sudo`: Cela indique que la commande sera exécutée avec des privilèges d'administration. Le mot de passe de l'utilisateur actuel peut être requis pour confirmer ces privilèges.
-
-- `netwox 105`: Cela spécifie le module 105 de l'outil Netwox. Netwox est une suite d'outils réseau open source qui offre diverses fonctionnalités pour la manipulation, la création et la gestion de paquets réseau.
-
-- `-h www.example.com`: Spécifie l'hôte de destination pour l'opération réseau. Dans cet exemple, l'hôte de destination est "www.example.com".
+### Explication de la commande `netwox`
 
-- `-H 192.168.192.136`: Spécifie l'adresse IP source pour l'opération réseau. Dans cet exemple, l'adresse IP source est "192.168.192.136".
-
-- `-a ns.example.com`: Spécifie le serveur DNS à interroger pour résoudre l'adresse IP de l'hôte de destination. Dans cet exemple, le serveur DNS est "ns.example.com".
-
-- `-A 192.168.192.136`: Spécifie l'adresse IP source pour l'opération DNS. Dans cet exemple, l'adresse IP source pour la résolution DNS est "192.168.192.136".
-
-- `--spoofip "raw"`: Cette option indique probablement que l'adresse IP source doit être "spoofée" ou falsifiée, et elle est définie sur "raw". Cela signifie qu'une adresse IP source brute, telle qu'elle est spécifiée avec l'option `-H`, sera utilisée.
-
-- `--ttl 86400`: Spécifie le Time To Live (TTL) pour les paquets générés, en secondes. Dans cet exemple, le TTL est défini à 86400 secondes, ce qui équivaut à une durée d'un jour.
+```bash
+sudo netwox 105 -h www.example.com -H 192.168.192.136 -a ns.example.com -A
+192.168.192.136 --spoofip “raw” --ttl 86400
+```
 
-Il est important de noter que l'utilisation de commandes réseau et d'outils de manipulation de paquets doit être effectuée de manière responsable et conforme aux lois et politiques applicables, car de telles activités peuvent potentiellement violer la sécurité et la confidentialité des réseaux.
+- `netwox 105`: C'est un outil permettant de "sniffer" (en bon français) et répondre
+aux requêtes DNS.
+- `-h www.google.com`: Spécifie l'hôte de destination.
+- `-H 192.168.192.136`: Spécifie l'IP de l'hôte.
+- `-a ns.example.com`: Spécifie le NS (name server).
+- `-A 192.168.192.136`: Spécifie l'IP du NS.
+- `--spoofip "raw"`: Spécifie la manière dont on va "spoof" (on aime le français)
+l'IP. En l'occurrence l'option "_raw_" signifie qu'on va spoof en couche 3 (IP).
+- `--ttl 86400`: Spécifie le Time To Live (TTL) en secondes.
diff --git a/content/04_kerberos.md b/content/04_kerberos.md
index a18a5adfdeaeb4a2ad62a72ee92f5032631405f2..1ea0629bb5f9cd70fe1215fd6f95115313def93a 100644
--- a/content/04_kerberos.md
+++ b/content/04_kerberos.md
@@ -73,6 +73,7 @@ service heimdal-kdc restart
 sudo useradd <nom utilisateur>
 sudo passwd <nom utilisateur>
 ```
+\newpage
 
 ### Connexion sur le compte créé
 
@@ -107,7 +108,7 @@ pour cet utilisateur.
 
 ### A quoi sert KerberosTicketCleanup ?
 
-Cette option permet de spécifier si oui ou non on veut le fichier cache du des
+Cette option permet de spécifier si oui ou non on veut le fichier cache des
 tickets associés à l'utilisateur lors du logout.
 
 >KerberosTicketCleanup
diff --git a/content/05_certification.md b/content/05_certification.md
index 6a3694780194a06e285cb803d052977d376393a3..5cb8d0265f80ad9e07635c19ddc2234d6f09899f 100644
--- a/content/05_certification.md
+++ b/content/05_certification.md
@@ -79,67 +79,31 @@ chmod 400 fichier.key
 
 ### b. Création d’un fichier de demande de signature de certificat (CSR Certificate Signing Request).
 
-
-```language
+```bash
 [req]
-distinguished_name = req_distinguished_name
-req_extensions = req_ext
-prompt = no
+distinguished_name = req_distinguished_name # Spécifie la section qui contient 
+# les détails du certificats
+req_extensions = req_ext # Spécifie la section qui contient les extensions
+prompt = no # Désactive le "prompt" interactif
 
 [req_distinguished_name]
-C = CH
-ST = Geneva
-L = Geneva
-O = HEPIA
-OU = ISC
-CN = <CommonName>
+C = CH # Pays associé au certificat
+ST = Geneva # "State"/ Canton
+L = Geneva # Localité
+O = HEPIA # Organisation
+OU = ISC # Unité de l'organisation
+CN = <CommonName> # "Nom commun"
 [req_ext]
-subjectAltName = @alt_names
+subjectAltName = @alt_names # Spécifie la section associée aux noms alternatifs
 [alt_names]
-IP.1 = 127.0.0.1
-IP.2 = 127.0.1.1
-DNS.1 = localhost
-DNS.2 = <Voir fichier hosts>
+IP.1 = 127.0.0.1 # exemple de nom alternatif type IPv4
+IP.2 = 127.0.1.1 # exemple de nom alternatif type IPv4
+DNS.1 = localhost # exemple de nom alternatif DNS
+DNS.2 = <Voir fichier hosts> # balise qui suggère de consulter le fichier hosts.txt
+# pour obtenir d'autres exemples de noms alternatifs
 ```
 
-- Expliquez le contenu de ce fichier.
-```markdown
-[req]  <!-- Début de la section de configuration pour la demande de certificat -->
-
-distinguished_name = req_distinguished_name  <!-- Spécifie la section qui contient les détails du sujet du certificat (comme le pays, l'État, la localité, etc.). -->
-
-req_extensions = req_ext  <!-- Spécifie la section qui contient les extensions de la demande de certificat, en particulier les noms alternatifs du sujet. -->
-
-prompt = no  <!-- Désactive les invites interactives lors de la création de la demande de certificat. -->
-
-[req_distinguished_name]  <!-- Débute la section des détails du sujet du certificat. -->
-
-C = CH  <!-- Pays (Country): Suisse (CH). -->
-
-ST = Geneva  <!-- État (State): Genève. -->
-
-L = Geneva  <!-- Localité: Genève. -->
-
-O = HEPIA  <!-- Organisation: HEPIA (Haute École du Paysage, d'Ingénierie et d'Architecture). -->
-
-OU = ISC  <!-- Unité organisationnelle: ISC (Informatique et Systèmes de Communication). -->
-
-CN = <CommonName>  <!-- Le nom commun (Common Name) est une balise de substitution qui doit être remplacée par la valeur réelle du nom commun, souvent le nom de domaine pour lequel le certificat est demandé. -->
-
-[req_ext]  <!-- Débute la section des extensions de la demande de certificat. -->
-
-subjectAltName = @alt_names  <!-- Spécifie que les noms alternatifs du sujet (SAN) sont définis dans la section alt_names. -->
-
-[alt_names]  <!-- Débute la section des noms alternatifs du sujet. -->
-
-IP.1 = 127.0.0.1  <!-- Un exemple de nom alternatif de type adresse IP (IPv4). -->
-
-IP.2 = 127.0.1.1  <!-- Un autre exemple de nom alternatif de type adresse IP (IPv4). -->
-
-DNS.1 = localhost  <!-- Un exemple de nom alternatif de type domaine DNS. -->
-
-DNS.2 = <Voir fichier hosts>  <!-- Comme précédemment, cette balise <Voir fichier hosts> suggère de consulter le fichier hosts pour obtenir un autre nom alternatif de domaine DNS. -->
-```
+\newpage
 
 - Lancez la commande suivante pour générer la demande de certificat :
 
@@ -254,8 +218,71 @@ Naviguer jusqu'au répertoire /etc/apache2/. Dans le fichier ports.conf le port
     tcp   LISTEN     0      511                        :443                      *:
     users:(("apache2",pid=662195,fd=6),("apache2",pid=662194,fd=6),("apache2",pid=662193,fd=6))
     ```
-- Dans le fichier de configuration par défaut de SSL (./sites-available/default-ssl.conf) :
-    - Ajouter une ligne ServerName XXX (avec XXX le nom indiqué à l'étape de génération du
-    CSR). A quoi sert cet ajout ?
+- Ajouter une ligne ServerName XXX (avec XXX le nom indiqué à l'étape de génération du
+CSR). A quoi sert cet ajout ?
+    - Cet ajout permet de faire pointer la configuration sur le bon serveur de
+    noms.
+
+- Modifier <VirtualHost _default_:443> en <VirtualHost *:443>. A quoi cela sert ? Expliquer.
+    - Cette modification permet de gérer les connexions entrantes sur le port
+    443 peu importe l'hôte demandé. Ce type de configuration est plus flexible
+    que la définition d'un hôte virtuel par défaut.
 
-    - Modifier <VirtualHost _default_:443> en <VirtualHost *:443>. A quoi cela sert ? Expliquer.
+```bash
+<IfModule mod_ssl.c>
+        <VirtualHost *:443>
+                ServerAdmin webmaster@localhost
+                ServerName JAROUKHANIAN
+                DocumentRoot /var/www/html
+
+                # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
+                # error, crit, alert, emerg.
+                # It is also possible to configure the loglevel for particular
+                # modules, e.g.
+                #LogLevel info ssl:warn
+
+                ErrorLog ${APACHE_LOG_DIR}/error.log
+                CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+                # For most configuration files from conf-available/, which are
+                # enabled or disabled at a global level, it is possible to
+                # include a line for only one particular virtual host. For example the
+                # following line enables the CGI configuration for this host only
+                # after it has been globally disabled with "a2disconf".
+                #Include conf-available/serve-cgi-bin.conf
+
+                #   SSL Engine Switch:
+                #   Enable/Disable SSL for this virtual host.
+                SSLEngine on
+
+                #   A self-signed (snakeoil) certificate can be created by installing
+                #   the ssl-cert package. See
+                #   /usr/share/doc/apache2/README.Debian.gz for more info.
+                #   If both key and certificate are stored in the same file, only the
+                #   SSLCertificateFile directive is needed.
+                SSLCertificateFile      /etc/apache2/ssl/ca.crt
+                SSLCertificateKeyFile /etc/apache2/ssl/fichier.key
+```
+
+## Phase de test
+
+Pour des raisons qui nous sont incompréhensibles, suite aux modifications que nous
+avons explicitées ci-dessus, `apache2` ne rédemarre pas correctement. Voici le
+message d'erreur : 
+
+```bash
+root@codeju-IdeaPad-5-15ALC05:/etc/apache2/sites-available# systemctl status apache2.service
+● apache2.service - The Apache HTTP Server
+     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
+     Active: failed (Result: exit-code) since Sun 2024-01-28 14:23:11 CET; 4s ago
+       Docs: https://httpd.apache.org/docs/2.4/
+    Process: 1498134 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
+
+jan 28 14:23:09 codeju-IdeaPad-5-15ALC05 systemd[1]: Starting The Apache HTTP Server...
+jan 28 14:23:09 codeju-IdeaPad-5-15ALC05 apachectl[1498137]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerN>
+jan 28 14:23:11 codeju-IdeaPad-5-15ALC05 apachectl[1498134]: Action 'start' failed.
+jan 28 14:23:11 codeju-IdeaPad-5-15ALC05 apachectl[1498134]: The Apache error log may have more information.
+jan 28 14:23:11 codeju-IdeaPad-5-15ALC05 systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
+jan 28 14:23:11 codeju-IdeaPad-5-15ALC05 systemd[1]: apache2.service: Failed with result 'exit-code'.
+jan 28 14:23:11 codeju-IdeaPad-5-15ALC05 systemd[1]: Failed to start The Apache HTTP Server.
+```
diff --git a/metadata.yaml b/metadata.yaml
index 20c3dfc561ef3cd6861c8252003e3efd8a06f163..a7f25033e774193ef567d1bccfc29c2e5e850b07 100644
--- a/metadata.yaml
+++ b/metadata.yaml
@@ -2,8 +2,8 @@
 author:
   - Iliya Saroukhanian
   - Jad Tayan
-title: Sécurité des Systèmes d'Information
-date: 2023-2024
+title: Sécurité des réseaux par la pratique
+date: \today
 autoSectionLabels: false
 autoEqnLabels: true
 eqnPrefix: