<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki-se.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crhanim</id>
	<title>wiki-se.plil.fr - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-se.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crhanim"/>
	<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Crhanim"/>
	<updated>2026-04-17T00:59:20Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=12068</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=12068"/>
		<updated>2026-02-03T23:04:39Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier&lt;br /&gt;
&lt;br /&gt;
Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.&lt;br /&gt;
&lt;br /&gt;
Voici le code utilisé et les résultats obtenus : &amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_PWMServoDriver.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);&lt;br /&gt;
Adafruit_PWMServoDriver pwm2 = Adafruit_PWMServoDriver(0x41);&lt;br /&gt;
&lt;br /&gt;
#define NB_SERVOS 15&lt;br /&gt;
#define SERVOMIN 110&lt;br /&gt;
#define SERVOMAX 500&lt;br /&gt;
&lt;br /&gt;
uint16_t angleToPWM(int angle) {&lt;br /&gt;
  return map(angle, -30, 30, SERVOMIN, SERVOMAX);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Wire.begin();&lt;br /&gt;
&lt;br /&gt;
  pwm1.begin();&lt;br /&gt;
  pwm1.setPWMFreq(50);&lt;br /&gt;
&lt;br /&gt;
  pwm2.begin();&lt;br /&gt;
  pwm2.setPWMFreq(50);&lt;br /&gt;
&lt;br /&gt;
  // ÉTAT INITIAL : tous les servos à 0° &lt;br /&gt;
  for (uint8_t i = 0; i &amp;lt; NB_SERVOS; i++) {&lt;br /&gt;
    pwm1.setPWM(i, 0, angleToPWM(0));&lt;br /&gt;
    pwm2.setPWM(i, 0, angleToPWM(0));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(1000); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
&lt;br /&gt;
  int posPCA1[] = { -15, 0 };    // PCA9685 #1&lt;br /&gt;
  int posPCA2[] = { 0, 15 };   // PCA9685 #2&lt;br /&gt;
&lt;br /&gt;
  for (uint8_t p = 0; p &amp;lt; 2; p++) {&lt;br /&gt;
&lt;br /&gt;
    // 15 servos du PCA9685 #1&lt;br /&gt;
    for (uint8_t i = 0; i &amp;lt; NB_SERVOS; i++) {&lt;br /&gt;
      pwm1.setPWM(i, 0, angleToPWM(posPCA1[p]));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 15 servos du PCA9685 #2&lt;br /&gt;
    for (uint8_t i = 0; i &amp;lt; NB_SERVOS; i++) {&lt;br /&gt;
      pwm2.setPWM(i, 0, angleToPWM(posPCA2[p]));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    delay(1500);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;[[Fichier:Proc.jpg|gauche|sans_cadre]][[Fichier:Processus wh.jpg|sans_cadre]][[Fichier:Videodemonstration.mov|sans_cadre|gauche]][[Fichier:Processwh.jpg|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finvideowh.mov|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E23&amp;diff=12035</id>
		<title>Art Sciences 2025/2026 E23</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E23&amp;diff=12035"/>
		<updated>2026-02-02T23:55:04Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : Early 20's ;) /Make sense!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:Early 20's ;) étap de création.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
Early 20’s est une sculpture qui traite de l’estime de soi féminine.&lt;br /&gt;
Elle évoque l’incertitude propre à cette période de la vie : le doute permanent autour de nos projets et, même lorsque nous sommes sûres de nous, la difficulté à croire réellement en nos capacités. L’œuvre aborde également la violence à laquelle les femmes sont constamment confrontées, et l’impact que cela a sur la construction de l’identité et de la confiance en soi.&lt;br /&gt;
&lt;br /&gt;
Les ingénieur·e·s m’ont aidée à intégrer l’électricité dans la sculpture en carton.&lt;br /&gt;
Iels ont mis en place le système permettant de faire clignoter l’inscription Make Sense, ainsi que son allumage en régime wave.&lt;br /&gt;
Iels m’ont également aidée pour les soudures.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Early_20%27s_;)_%C3%A9tap_de_cr%C3%A9ation.jpg&amp;diff=12034</id>
		<title>Fichier:Early 20's ;) étap de création.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Early_20%27s_;)_%C3%A9tap_de_cr%C3%A9ation.jpg&amp;diff=12034"/>
		<updated>2026-02-02T23:31:21Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instalation de l'éctricité&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:%22Early_20%27s_;)%22.jpg&amp;diff=12033</id>
		<title>Fichier:&quot;Early 20's ;)&quot;.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:%22Early_20%27s_;)%22.jpg&amp;diff=12033"/>
		<updated>2026-02-02T23:21:09Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Etap de création avec des ingeneur.e.s&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11945</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11945"/>
		<updated>2026-01-30T10:40:40Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier&lt;br /&gt;
&lt;br /&gt;
Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.[[Fichier:Proc.jpg|gauche|sans_cadre]][[Fichier:Processus wh.jpg|sans_cadre]][[Fichier:Videodemonstration.mov|sans_cadre|gauche]][[Fichier:Processwh.jpg|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finvideowh.mov|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Finvideowh.mov&amp;diff=11944</id>
		<title>Fichier:Finvideowh.mov</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Finvideowh.mov&amp;diff=11944"/>
		<updated>2026-01-30T10:40:22Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;proc&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11934</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11934"/>
		<updated>2026-01-30T10:23:59Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier&lt;br /&gt;
&lt;br /&gt;
Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.[[Fichier:Proc.jpg|gauche|sans_cadre]][[Fichier:Processus wh.jpg|sans_cadre]][[Fichier:Videodemonstration.mov|sans_cadre|gauche]][[Fichier:Processwh.jpg|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Processwh.jpg&amp;diff=11930</id>
		<title>Fichier:Processwh.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Processwh.jpg&amp;diff=11930"/>
		<updated>2026-01-30T10:19:37Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;proc&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11926</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11926"/>
		<updated>2026-01-30T10:15:47Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier&lt;br /&gt;
&lt;br /&gt;
Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.[[Fichier:Proc.jpg|gauche|sans_cadre]][[Fichier:Processus wh.jpg|sans_cadre]][[Fichier:Videodemonstration.mov|sans_cadre|gauche]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Arts_et_sciences_2025/2026&amp;diff=11920</id>
		<title>Arts et sciences 2025/2026</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Arts_et_sciences_2025/2026&amp;diff=11920"/>
		<updated>2026-01-30T10:09:34Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Cahiers de travail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Cette page retrace le parcours du module qui se déroule en janvier pendant une semaine à l'[https://www.esa-n.info/ Esä] et au Fabricarium et s'achève par la production d'une documentation (les pages de ce wiki) et d'une soutenance portant sur chacun des projets développés par les binômes. Expérimentations sur les matériaux, programmation, systèmes embarqués, électronique, modélisation, impression 3D, robotisation, microscopie, chimie, etc. sont autant d'éléments mis en œuvre pendant la semaine. Pour l'Esä, ce module s'inscrit dans le parcours Arts et Sciences Prist https://prist-esanpdc.fr/ qui développe cette année une réflexions sur le Mondes sauvages.&lt;br /&gt;
&lt;br /&gt;
'''Le vernissage de l'exposition''' présentant l'aboutissement des projets des étudiant·e·s aura lieu le '''26 mars 2026''' à 18h à la '''Galerie Commune''' de l'Esä, 36 bis rue des Ursulines à Tourcoing.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2025_equipe.jpg|centré|800px|L'équipe du Module, décembre 2025]]&lt;br /&gt;
L'équipe du Module, janvier 2025, dans le hall de Polytech.&lt;br /&gt;
&lt;br /&gt;
= Répartition des binômes =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Titre de l'œuvre !! Elève Esä !! Elève(s) Polytech Lille&lt;br /&gt;
|-&lt;br /&gt;
| Jardin sur la métropole || Axelle Dussart || Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Avatar || Valentin Luce || Ahmed Bergadi&lt;br /&gt;
|-&lt;br /&gt;
| Le canivet ||  Adele	Descamps || &lt;br /&gt;
|-&lt;br /&gt;
| Cartographie Sauvage ||  Alana Gibson || Anthony Moreau&lt;br /&gt;
|-&lt;br /&gt;
| T4T || Beluna 	 Larionov || Léa Hanotel - Fabien Jonckeere&lt;br /&gt;
|-&lt;br /&gt;
| Aether Anger || Rouge Cendre || Kaoutar El Bachiri - Chaymae Rhanim&lt;br /&gt;
|-&lt;br /&gt;
| Sans titre || Mary Costeaux || Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
| L’esprit qu’on Jette || Daria Karpova || &lt;br /&gt;
|-&lt;br /&gt;
| Sans titre (Apoapsis) || Elies El Ferroun-Panier || Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
| Peau d’Humus || Emilie Beve || Hanotel Léa / Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Le Masque de Pouvoir des Enfants Sauvages || Shuqi Huang || &lt;br /&gt;
|-&lt;br /&gt;
| Barbare || Lamis Madaci || Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
| Micromonde || Louison Pavie || Jules Cateaux&lt;br /&gt;
|-&lt;br /&gt;
| Champ d’agrainage || Madeleine Gobeaut|| Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
| Habiter en oiseau || Maya Denudt || Nithesh Sivalinganathan&lt;br /&gt;
|-&lt;br /&gt;
|  || Naomi	Verpraet || Léa Hanotel - Xilong ZHANG&lt;br /&gt;
|-&lt;br /&gt;
| Cumulus Specimen N°1 || Nadim	Halabi || &lt;br /&gt;
|-&lt;br /&gt;
| La terre attend || Nicolas Markovic || &lt;br /&gt;
|-&lt;br /&gt;
| || Pauline Aranda || Léa Hanotel - Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
| Glassbound Ecosystem || Pauline Dewitte || Quentin Berthod&lt;br /&gt;
|-&lt;br /&gt;
| Fera Foris || Sandro	Demay ||&lt;br /&gt;
|-&lt;br /&gt;
| Gone || Kaylian Chipotel || &lt;br /&gt;
|-&lt;br /&gt;
| La respiration de la matière || Woohyeok Choi || &lt;br /&gt;
|-&lt;br /&gt;
| Étreinte sonore || Yohan Paratian || &lt;br /&gt;
|-&lt;br /&gt;
| Prima facie || Jade Segond || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Déroulé de la co-création =&lt;br /&gt;
&lt;br /&gt;
== Lundi 26 janvier : ==&lt;br /&gt;
[[Fichier:Journée d'ouverture du module.jpg|centré|vignette|564x564px|[[Fichier:Présentation des projets.jpg|vignette|581x581px]]]]&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale ===&lt;br /&gt;
&lt;br /&gt;
Présentation des projets des étudiant·e·s de l'Esä dans la Salle 36 bis, autour d'un café et devant les dossiers préparés pour cette rencontre ; ici l'objectif est de vriser la glace entre les deux formations, de construire et de renforcer les liens pour que le reste de la semaine puisse être consacrée à la réalisation concrète des productions plastiques souvent complexes et expérimentales.&lt;br /&gt;
[[Fichier:Présentation du projet par Mary Costaud.jpg|vignette|548x548px]]&lt;br /&gt;
[[Fichier:Journée d'ouverture.jpg|centré|sans_cadre|534x534px|&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fichier:Journée d'ouverture du module.jpg|alt=Journée d'ouverture&lt;br /&gt;
Fichier:Première rencontre entre les étudiant-es de l'Esä et de Polytech'Lille.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place des groupes des binômes entre étudiant·e·s de l'Esä et de Polytech'Lille&lt;br /&gt;
=== Présentation et visite de l'Esä en petits groupes, par les étudiant·e·s  de l'Esä ===&lt;br /&gt;
12h00 - 13h00&lt;br /&gt;
&lt;br /&gt;
==== Bibliothèque ====&lt;br /&gt;
[[Fichier:Bibliothèque.jpg|centré|vignette|573x573px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier métal ====&lt;br /&gt;
[[Fichier:Atelier.jpg|[[Fichier:Atelier photographie argentique.jpg|vignette]][[Fichier:Rouge Cendre.jpg|vignette]]Atelier métal, Esä|centré|551x551px|bordure|sans_cadre]]&lt;br /&gt;
[[Fichier:Atelier métal.jpg|centré|vignette|500x500px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier son ====&lt;br /&gt;
[[Fichier:Son.jpg|centré|sans_cadre|555x555px|[[Fichier:Atelier son - Esä.jpg|alt=Atelier son Esä|centré|vignette|500x500px]][[Fichier:Atelier son.jpg|centré|vignette|500x500px]]Atelier son]]&lt;br /&gt;
[[Fichier:Atelier son - Esä.jpg|centré|vignette|500x500px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier photographie argentique ====&lt;br /&gt;
[[Fichier:Atelier photographie argentique.jpg|vignette|620x620px|centré]]&lt;br /&gt;
[[Fichier:Argentique.jpg|vignette|407x407px|centré]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Atelier modelage ====&lt;br /&gt;
[[Fichier:Modelage.jpg|centré|sans_cadre|573x573px|modelage]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier peinture ====&lt;br /&gt;
[[Fichier:Atelier peinture.jpg|centré|sans_cadre|597x597px]]&lt;br /&gt;
&lt;br /&gt;
==== Jardin écologique ====&lt;br /&gt;
[[Fichier:2023_ArtScience_Visite-jardin.jpg|446x446px|center|Espace jardin|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
=== Atelier Créatif  : travail autour de la thématique de la glace ===&lt;br /&gt;
[[Fichier:Glace.jpg|gauche|vignette]]&lt;br /&gt;
Présentation et discussion animées par Hugo Dïner  &lt;br /&gt;
&lt;br /&gt;
Les étudiants se regroupent par équipe et ont deux heures pour produire une œuvre (tout type accepté).&lt;br /&gt;
[[Fichier:Briser la glace.jpg|centré|vignette]]&lt;br /&gt;
[[Fichier:Danse.jpg|centré|vignette|498x498px]]&lt;br /&gt;
&lt;br /&gt;
== Mardi 27 janvier au vendredi 30 janvier ==&lt;br /&gt;
[[Fichier:Avec Alexandre Boé.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
== Vendredi 30 janvier ==&lt;br /&gt;
Présentation des projets devant le jury composé de : &lt;br /&gt;
&lt;br /&gt;
* Hugo Diner&lt;br /&gt;
* Fabien Jonckheere&lt;br /&gt;
* Alexandre Boé&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Réalisation au Fabricarium.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
=Cahiers de travail= &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Cahier!!Nom du projet !! Elève Esä!!Elève(s) Polytech Lille&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2025 E0 | Cahier n°0]]|| Micromonde || Louison Pavie ||Jules Cateaux&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E1 | Cahier n°1]]|| Avatar || Valentin Luce || Ahmed bergadi&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E2 | Cahier n°2]]|| T4T || Beluna Larionov || Léa Hanotel - Fabien Jonckeere&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E3 | Cahier n°3]]|| Champ d’agrainage || Madeleine Gobeaut || Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E4 | Cahier n°4]]|| || Pauline Aranda || Léa Hanotel - Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E5 | Cahier n°5]]|| Habiter en oiseau || Maya Denudt || Nithesh Sivalinganathan&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E6 | Cahier n°6]]|| Peau d’Humus || Emilie Beve || Léa Hanotel - Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E7 | Cahier n°7]]|| Jardin sur la nécropole || Axelle Dussart || Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E8 | Cahier n°8]]|| Sans titre (Apoapsis)|| Elies El Ferroun-Panier || Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E9 | Cahier n°9]]|| Fera Foris || Sandro Demay ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E10 | Cahier n°10]]|| Etreinte sonore || Yohan Paratian || Thomas Volkamer - Louis Delahaye&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E11 | Cahier n°11]]|| || Naomi Verpraet || Léa Hanotel - Xilong ZHANG&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E12 | Cahier n°12]]|| La Terre Attend || Nicolas Markovic || Louis Delahaye&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E13 | Cahier n°13]]|| Glassbound Ecosystem || Pauline Dewitte || Quentin Berthod&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E14 | Cahier n°14]]|| Sans titre|| Woohyeok CHOI|| Chaymae RHANIM&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E15 | Cahier n°15]]|| Aeger Aether || Rouge Cendre || Kaoutar El Bachiri - Chaymae Rhanim&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E16 | Cahier n°16]]|| Cartographie sauvage || Alana GIBSON || Anthony MOREAU&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E17 | Cahier n°17]]|| Le masque de Pouvoir des enfants sauvages || Shuqi HUANG || Xilong ZHANG&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E18 | Cahier n°18]]|| prima facie || Segond Jade || Benjamin Klein&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E19 | Cahier n°19]]|| ||  || &lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E20 | Cahier n°20]]|| Sans titre||  Mary Costeaux|| Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E21 | Cahier n°21]]|| Barbare||  Lamis Madaci||Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E22 | Cahier n°22]]|| ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E23 | Cahier n°23]]|| ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E24 | Cahier n°24]] || ||  ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Remerciements à ReX pour le Wiki =&lt;br /&gt;
&lt;br /&gt;
C'est pas beau de flatter les gens :p :p :p, réponse : si si (et je ne parle pas de l'impératrice)&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11878</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11878"/>
		<updated>2026-01-30T09:13:14Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier&lt;br /&gt;
&lt;br /&gt;
Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.[[Fichier:Proc.jpg|gauche|sans_cadre]][[Fichier:Videodemonstration.mov|centré|sans_cadre]][[Fichier:Processus wh.jpg|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Processus_wh.jpg&amp;diff=11877</id>
		<title>Fichier:Processus wh.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Processus_wh.jpg&amp;diff=11877"/>
		<updated>2026-01-30T09:12:41Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;prc&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11875</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11875"/>
		<updated>2026-01-30T09:08:57Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier[[Fichier:Videodemonstration.mov|centré|sans_cadre]]Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.[[Fichier:Proc.jpg|gauche|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11873</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11873"/>
		<updated>2026-01-30T09:07:27Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.[[Fichier:Videodemonstration.mov|centré|cadre]]&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;
&lt;br /&gt;
Journal de bord : Atelier Co-création Arts et Sciences&lt;br /&gt;
&lt;br /&gt;
Mardi 27 janvier&lt;br /&gt;
&lt;br /&gt;
Initialement, je souhaitais utiliser du bioplastique pour mon projet. J'ai rencontré Corentin pour tester la faisabilité de mes échantillons. Cependant, après plusieurs essais, nous n'avons pas pu garantir la durabilité du matériau sur toute la durée de l'exposition. J'ai donc décidé d'abandonner cette piste pour pivoter vers un nouveau concept.&lt;br /&gt;
&lt;br /&gt;
Mercredi 28 janvier&lt;br /&gt;
&lt;br /&gt;
Après discussion avec Hugo, j'ai lancé un nouveau projet combinant servomoteurs et boîte à musique. J'ai conçu la plaque de support pour les moteurs à l'aide de la découpeuse laser. En collaboration avec Chaymae, j'ai commencé à étudier le système de pilotage des 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Jeudi 29 janvier&lt;br /&gt;
&lt;br /&gt;
Avec Chaymae, nous avons poursuivi l'assemblage électronique. Nous avons connecté les 30 moteurs à l'Arduino et travaillé sur le code de programmation pour synchroniser les mouvements et permettre l'exécution des fichiers MIDI.[[Fichier:Proc.jpg|gauche|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11872</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11872"/>
		<updated>2026-01-30T09:05:40Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Formes plastiques envisagées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Proc.jpg|gauche|sans_cadre]]&lt;br /&gt;
[[Fichier:Videodemonstration.mov|centré|vignette]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Videodemonstration.mov&amp;diff=11871</id>
		<title>Fichier:Videodemonstration.mov</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Videodemonstration.mov&amp;diff=11871"/>
		<updated>2026-01-30T09:04:49Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;video&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11866</id>
		<title>Art Sciences 2025/2026 E14</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E14&amp;diff=11866"/>
		<updated>2026-01-30T08:40:27Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : Page créée avec « ==== Formes plastiques envisagées ==== L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.  Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle  Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Meg... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Formes plastiques envisagées ====&lt;br /&gt;
L'installation se présente comme une structure hybride où la mécanique est renversée pour donner naissance à une forme organique.&lt;br /&gt;
&lt;br /&gt;
Le Cœur Mécanique (Partie inférieure) : L'Unité de Traduction Sensorielle&lt;br /&gt;
&lt;br /&gt;
Cette section constitue le moteur central de l'œuvre, où le code virtuel devient une présence acoustique. Elle se compose d'un mécanisme d'orgue de barbarie (Music Box) de 30 notes, piloté par un Arduino Mega et deux modules PCA9685 gérant 30 servomoteurs.&lt;br /&gt;
&lt;br /&gt;
Processus de traduction MIDI en mouvement : L'unité centrale interprète les données d'un fichier MIDI en temps réel. Chaque note musicale du fichier est extraite et convertie en une instruction numérique précise. Cette instruction est ensuite transmise aux servomoteurs qui agissent comme des &amp;quot;doigts mécaniques&amp;quot;. Ce passage du binaire au mécanique illustre une véritable traduction de la pensée informatique vers une action physique.&lt;br /&gt;
&lt;br /&gt;
Mécanisme de percussion à 30 notes : Chaque servomoteur est équipé d'un levier (une extension) conçu sur mesure pour percuter les lames métalliques de la boîte à musique. Lorsque le fichier MIDI commande une note, le servomoteur correspondant effectue une rotation rapide de 30 degrés pour actionner la note précise sur le peigne de 30 notes. La précision du module PCA9685 permet de respecter scrupuleusement le rythme, la polyphonie (plusieurs notes jouées simultanément) et la nuance de la composition originale.&lt;br /&gt;
&lt;br /&gt;
3. Croquis et visuels préparatoires&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 1.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Visuel 2.png|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce volet présente le schéma technique des servomoteurs et l'étude du mouvement :&lt;br /&gt;
&lt;br /&gt;
Programmation du mouvement en 4 étapes : [Repos (0°) → Percussion (+30°) → Retrait (-15°) → Retour (0°)]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Disposition modulaire : L'alignement de 15 servomoteurs sur deux rangées face à face permet d'étudier la gestion des vibrations mécaniques et l'efficacité énergétique, thèmes centraux de la collaboration avec Polytech.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Proc.jpg|gauche|sans_cadre]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Proc.jpg&amp;diff=11865</id>
		<title>Fichier:Proc.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Proc.jpg&amp;diff=11865"/>
		<updated>2026-01-30T08:39:02Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Processus&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Visuel_1.png&amp;diff=11860</id>
		<title>Fichier:Visuel 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Visuel_1.png&amp;diff=11860"/>
		<updated>2026-01-30T08:27:44Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;visuel préparatoire&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Visuel_2.png&amp;diff=11859</id>
		<title>Fichier:Visuel 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Visuel_2.png&amp;diff=11859"/>
		<updated>2026-01-30T08:26:27Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;visuels préparatoire&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E15&amp;diff=11755</id>
		<title>Art Sciences 2025/2026 E15</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Art_Sciences_2025/2026_E15&amp;diff=11755"/>
		<updated>2026-01-29T15:51:35Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Aeger Aether */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= '''Aeger Aether''' =&lt;br /&gt;
Module Arts et Science - Kaoutar El Bachiri - Chaymae Rhanim - Rouge Cendre &lt;br /&gt;
[[Fichier:Coral reef.png|vignette|Dépigmentation coraux]]&lt;br /&gt;
''PROPOS :''&lt;br /&gt;
&lt;br /&gt;
Ce travail cherche à rendre compte de manière sensible des effets du réchauffement climatique sur les récifs coralliens, en écho aux données alarmantes publiées en avril 2025 : &amp;quot;''Entre le 1er janvier 2023 et le 20 avril 2025, un stress thermique synonyme de blanchissement a touché 83,7 % des récifs de la planète &amp;quot;'', a indiqué l’Agence américaine d’observation océanique et atmosphérique (NOAA).&lt;br /&gt;
&lt;br /&gt;
Le dépérissement du corail, manifesté par sa décoloration, est provoqué par une hausse de la température de l’eau qui entraîne l’expulsion de ses zooxanthelles, des algues vivant en symbiose avec lui qui lui donnant ses nutriments et sa couleur vive.&lt;br /&gt;
&lt;br /&gt;
Les récifs coralliens sont les écosystèmes les plus riches et productifs de la planète. Ils abritent une biodiversité exceptionnelle et abritent près de 25% de la biodiversité sous-marine. Comme les forêts, ils sont de formidables capteurs de CO2. Ils aident également à réduire les dommages dues aux tempêtes et ouragans.&lt;br /&gt;
&lt;br /&gt;
À travers une approche plastique symboliste, je cherche à alerter sur cette lente disparition et à questionner nos modes de vies qui concourent à cette dernière. En effet, la pièce interroge la dépigmentation silencieuse qui touche nos eaux méditerranéennes. À l’image d’une forêt privée de son feuillage, cette disparition des couleurs dans les écosystèmes marins évoque un monde en voie de désaturation.&lt;br /&gt;
[[Fichier:Sculpture corail .jpg|vignette|Sculpture corail céramique]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Aeger Aether''''' prendra la forme d’une installation sculpturale représentant un récif-poumon dont la couleur va réagir à des données de la qualité de l’air près de Marseille. Si les coraux pourront prendre une forme onirique, ils seront inspirés du corail rouge présent dans les eaux méditerrannéennes (Corallium rubrum) en ce que cette espèce sensible aux variations de température et aux pollutions sert d’indicateur de la qualité des eaux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''PROTOCOLE :''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord décidé de partir sur des data de pollution atmosphérique de la région de Marseille non en temps réel mais sur un temps passé (l'année 2025), car le temps réel entrainerait que trop de modifications le temps de l'exposition.&lt;br /&gt;
[[Fichier:Data CO2 Marseille 2025.png|vignette|Data CO2 Marseille 2025]]&lt;br /&gt;
Le fichier .csv a été téléchargé via un site d'open data. Nous avons choisi de travailler du 1 janvier 2025 au 31 décembre 2025.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons ensuite testé l'humidificateur qui sera activé à partir d'un certain seuil de données, il viendra créer de la buée dans une boule en verre situé au dessus du corail qui lui donnera l'apparence d'une créature. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concernant l'activation de la lumière (toujours selon données), après avoir réfléchi à travailler avec des bandes de leds adressables, nous avons réfléchi à travailler des grappes de leds qui viendraient s'accrocher sur la sculpture, venant éclairer certains endroits, créer des exubérances lumineuses à certains et rejoindre l'idée de colonies d'algues qui vivent en symbiose avec les coraux. (voir schéma et montage).&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Humificateur.png|vignette|Humidificateur]]&lt;br /&gt;
[[Fichier:Sculpture verre.jpg|vignette|Verre soufflé]]&lt;br /&gt;
[[Fichier:Kaoutar et Chaymae.jpg|vignette|Chaymae et Kaoutar programmation]]&lt;br /&gt;
[[Fichier:Schéma led.png|vignette|Schéma Led]]&lt;br /&gt;
[[Fichier:PRIST.jpg|vignette|Montage Led]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Arts_et_sciences_2025/2026&amp;diff=11754</id>
		<title>Arts et sciences 2025/2026</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Arts_et_sciences_2025/2026&amp;diff=11754"/>
		<updated>2026-01-29T15:51:02Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Cahiers de travail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Cette page retrace le parcours du module qui se déroule en janvier pendant une semaine à l'[https://www.esa-n.info/ Esä] et au Fabricarium et s'achève par la production d'une documentation (les pages de ce wiki) et d'une soutenance portant sur chacun des projets développés par les binômes. Expérimentations sur les matériaux, programmation, systèmes embarqués, électronique, modélisation, impression 3D, robotisation, microscopie, chimie, etc. sont autant d'éléments mis en œuvre pendant la semaine. Pour l'Esä, ce module s'inscrit dans le parcours Arts et Sciences Prist https://prist-esanpdc.fr/ qui développe cette année une réflexions sur le Mondes sauvages.&lt;br /&gt;
&lt;br /&gt;
'''Le vernissage de l'exposition''' présentant l'aboutissement des projets des étudiant·e·s aura lieu le '''26 mars 2026''' à 18h à la '''Galerie Commune''' de l'Esä, 36 bis rue des Ursulines à Tourcoing.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2025_equipe.jpg|centré|800px|L'équipe du Module, décembre 2025]]&lt;br /&gt;
L'équipe du Module, janvier 2025, dans le hall de Polytech.&lt;br /&gt;
&lt;br /&gt;
= Répartition des binômes =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Titre de l'œuvre !! Elève Esä !! Elève(s) Polytech Lille&lt;br /&gt;
|-&lt;br /&gt;
| Jardin sur la métropole || Axelle Dussart || Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Avatar || Valentin Luce || Ahmed Bergadi&lt;br /&gt;
|-&lt;br /&gt;
| Le canivet ||  Adele	Descamps || &lt;br /&gt;
|-&lt;br /&gt;
| Cartographie Sauvage ||  Alana Gibson || Anthony Moreau&lt;br /&gt;
|-&lt;br /&gt;
| T4T || Beluna 	 Larionov || Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
| Corallium sacrificium || Camille Rolin || &lt;br /&gt;
|-&lt;br /&gt;
| Sans titre || Mary Costeaux || Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
| L’esprit qu’on Jette || Daria Karpova || &lt;br /&gt;
|-&lt;br /&gt;
| Sans titre (Apoapsis) || Elies El Ferroun-Panier || Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
| Peau d’Humus || Emilie Beve || Hanotel Léa / Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Le Masque de Pouvoir des Enfants Sauvages || Shuqi Huang || &lt;br /&gt;
|-&lt;br /&gt;
| Barbare || Lamis Madaci || Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
| Micromonde || Louison Pavie || Margaux Daguillanes/ Jules Cateaux&lt;br /&gt;
|-&lt;br /&gt;
| Champ d’agrainage || Madeleine Gobeaut|| Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
| Habiter en oiseau || Maya Denudt || Nithesh Sivalinganathan&lt;br /&gt;
|-&lt;br /&gt;
|  || Naomi	Verpraet || Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
| Cumulus Specimen N°1 || Nadim	Halabi || &lt;br /&gt;
|-&lt;br /&gt;
| La terre attend || Nicolas Markovic || &lt;br /&gt;
|-&lt;br /&gt;
| || Pauline Aranda || Léa Hanotel Lina Hamdi&lt;br /&gt;
|-&lt;br /&gt;
| Glassbound Ecosystem || Pauline Dewitte || &lt;br /&gt;
|-&lt;br /&gt;
| Fera Foris || Sandro	Demay ||&lt;br /&gt;
|-&lt;br /&gt;
| Gone || Kaylian Chipotel || &lt;br /&gt;
|-&lt;br /&gt;
| La respiration de la matière || Woohyeok Choi || &lt;br /&gt;
|-&lt;br /&gt;
| Étreinte sonore || Yohan Paratian || &lt;br /&gt;
|-&lt;br /&gt;
| Prima facie || Jade Segond || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Déroulé de la co-création =&lt;br /&gt;
&lt;br /&gt;
== Lundi 26 janvier : ==&lt;br /&gt;
[[Fichier:Journée d'ouverture du module.jpg|centré|vignette|564x564px|[[Fichier:Présentation des projets.jpg|vignette|581x581px]]]]&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale ===&lt;br /&gt;
&lt;br /&gt;
Présentation des projets des étudiant·e·s de l'Esä dans la Salle 36 bis, autour d'un café et devant les dossiers préparés pour cette rencontre ; ici l'objectif est de vriser la glace entre les deux formations, de construire et de renforcer les liens pour que le reste de la semaine puisse être consacrée à la réalisation concrète des productions plastiques souvent complexes et expérimentales.&lt;br /&gt;
[[Fichier:Présentation du projet par Mary Costaud.jpg|vignette|548x548px]]&lt;br /&gt;
[[Fichier:Journée d'ouverture.jpg|centré|sans_cadre|534x534px|&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fichier:Journée d'ouverture du module.jpg|alt=Journée d'ouverture&lt;br /&gt;
Fichier:Première rencontre entre les étudiant-es de l'Esä et de Polytech'Lille.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place des groupes des binômes entre étudiant·e·s de l'Esä et de Polytech'Lille&lt;br /&gt;
=== Présentation et visite de l'Esä en petits groupes, par les étudiant·e·s  de l'Esä ===&lt;br /&gt;
12h00 - 13h00&lt;br /&gt;
&lt;br /&gt;
==== Bibliothèque ====&lt;br /&gt;
[[Fichier:Bibliothèque.jpg|centré|vignette|573x573px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier métal ====&lt;br /&gt;
[[Fichier:Atelier.jpg|[[Fichier:Atelier photographie argentique.jpg|vignette]][[Fichier:Rouge Cendre.jpg|vignette]]Atelier métal, Esä|centré|551x551px|bordure|sans_cadre]]&lt;br /&gt;
[[Fichier:Atelier métal.jpg|centré|vignette|500x500px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier son ====&lt;br /&gt;
[[Fichier:Son.jpg|centré|sans_cadre|555x555px|[[Fichier:Atelier son - Esä.jpg|alt=Atelier son Esä|centré|vignette|500x500px]][[Fichier:Atelier son.jpg|centré|vignette|500x500px]]Atelier son]]&lt;br /&gt;
[[Fichier:Atelier son - Esä.jpg|centré|vignette|500x500px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier photographie argentique ====&lt;br /&gt;
[[Fichier:Atelier photographie argentique.jpg|vignette|620x620px|centré]]&lt;br /&gt;
[[Fichier:Argentique.jpg|vignette|407x407px|centré]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Atelier modelage ====&lt;br /&gt;
[[Fichier:Modelage.jpg|centré|sans_cadre|573x573px|modelage]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier peinture ====&lt;br /&gt;
[[Fichier:Atelier peinture.jpg|centré|sans_cadre|597x597px]]&lt;br /&gt;
&lt;br /&gt;
==== Jardin écologique ====&lt;br /&gt;
[[Fichier:2023_ArtScience_Visite-jardin.jpg|446x446px|center|Espace jardin|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
=== Atelier Créatif  : travail autour de la thématique de la glace ===&lt;br /&gt;
[[Fichier:Glace.jpg|gauche|vignette]]&lt;br /&gt;
Présentation et discussion animées par Hugo Dïner  &lt;br /&gt;
&lt;br /&gt;
Les étudiants se regroupent par équipe et ont deux heures pour produire une œuvre (tout type accepté).&lt;br /&gt;
[[Fichier:Briser la glace.jpg|centré|vignette]]&lt;br /&gt;
[[Fichier:Danse.jpg|centré|vignette|498x498px]]&lt;br /&gt;
&lt;br /&gt;
== Mardi 27 janvier au vendredi 30 janvier ==&lt;br /&gt;
[[Fichier:Avec Alexandre Boé.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
== Vendredi 30 janvier ==&lt;br /&gt;
Présentation des projets devant le jury composé de : &lt;br /&gt;
&lt;br /&gt;
* Hugo Diner&lt;br /&gt;
* Fabien Jonckheere&lt;br /&gt;
* Alexandre Boé&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Réalisation au Fabricarium.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
=Cahiers de travail= &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Cahier!!Nom du projet !! Elève Esä!!Elève(s) Polytech Lille&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2025 E0 | Cahier n°0]]|| Micromonde|| Louison Pavie||Jules Cateaux&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E1 | Cahier n°1]]|| Avatar|| Valentin Luce||Ahmed bergadi&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E2 | Cahier n°2]]|| T4T|| Beluna 	 Larionov||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E3 | Cahier n°3]]|| Champ d’agrainage|| Madeleine Gobeaut||Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E4 | Cahier n°4]]|| || Pauline Aranda||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E5 | Cahier n°5]]|| Habiter en oiseau|| Maya Denudt||Nithesh Sivalinganathan&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E6 | Cahier n°6]]|| Peau d’Humus|| Emilie Beve||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E7 | Cahier n°7]]|| Jardin sur la nécropole|| Axelle Dussart||Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E8 | Cahier n°8]]|| Sans titre (Apoapsis)|| Elies El Ferroun-Panier ||Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E9 | Cahier n°9]]|| Fera Foris|| Sandro Demay ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E10 | Cahier n°10]]|| Etreinte sonore|| Yohan Paratian||Thomas Volkamer - Louis Delahaye&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E11 | Cahier n°11]]|| || Naomi	Verpraet||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E12 | Cahier n°12]]|| La Terre Attend|| Nicolas Markovic||Louis Delahaye&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E13 | Cahier n°13]]|| Glassbound Ecosystem||Pauline Dewitte&lt;br /&gt;
|Quentin Berthod&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E14 | Cahier n°14]]|| || Woohyeok CHOI||Chaymae RHANIM&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E15 | Cahier n°15]]|| Aeger Aether|| Rouge Cendre||Kaoutar El Bachiri - Chaymae Rhanim&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E16 | Cahier n°16]]|| Cartographie sauvage|| Alana GIBSON||Anthony MOREAU&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Remerciements à ReX pour le Wiki =&lt;br /&gt;
&lt;br /&gt;
C'est pas beau de flatter les gens :p :p :p, réponse : si si (et je ne parle pas de l'impératrice)&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Arts_et_sciences_2025/2026&amp;diff=11673</id>
		<title>Arts et sciences 2025/2026</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Arts_et_sciences_2025/2026&amp;diff=11673"/>
		<updated>2026-01-29T13:12:47Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Cahiers de travail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Cette page retrace le parcours du module qui se déroule en janvier pendant une semaine à l'[https://www.esa-n.info/ Esä] et au Fabricarium et s'achève par la production d'une documentation (les pages de ce wiki) et d'une soutenance portant sur chacun des projets développés par les binômes. Expérimentations sur les matériaux, programmation, systèmes embarqués, électronique, modélisation, impression 3D, robotisation, microscopie, chimie, etc. sont autant d'éléments mis en œuvre pendant la semaine. Pour l'Esä, ce module s'inscrit dans le parcours Arts et Sciences Prist https://prist-esanpdc.fr/ qui développe cette année une réflexions sur le Mondes sauvages.&lt;br /&gt;
&lt;br /&gt;
'''Le vernissage de l'exposition''' présentant l'aboutissement des projets des étudiant·e·s aura lieu le '''26 mars 2026''' à 18h à la '''Galerie Commune''' de l'Esä, 36 bis rue des Ursulines à Tourcoing.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:2025_equipe.jpg|centré|800px|L'équipe du Module, décembre 2025]]&lt;br /&gt;
L'équipe du Module, janvier 2025, dans le hall de Polytech.&lt;br /&gt;
&lt;br /&gt;
= Répartition des binômes =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Titre de l'œuvre !! Elève Esä !! Elève(s) Polytech Lille&lt;br /&gt;
|-&lt;br /&gt;
| Jardin sur la métropole || Axelle Dussart || Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Avatar || Valentin Luce || Ahmed Bergadi&lt;br /&gt;
|-&lt;br /&gt;
| Le canivet ||  Adele	Descamps || &lt;br /&gt;
|-&lt;br /&gt;
| Cartographie Sauvage ||  Alana Gibson || &lt;br /&gt;
|-&lt;br /&gt;
| T4T || Beluna 	 Larionov || Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
| Corallium sacrificium || Camille Rolin || &lt;br /&gt;
|-&lt;br /&gt;
| Sans titre || Mary Costeaux || &lt;br /&gt;
|-&lt;br /&gt;
| L’esprit qu’on Jette || Daria Karpova || &lt;br /&gt;
|-&lt;br /&gt;
| Sans titre (Apoapsis) || Elies El Ferroun-Panier || Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
| Peau d’Humus || Emilie Beve || Hanotel Léa / Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Le Masque de Pouvoir des Enfants Sauvages || Shuqi Huang || &lt;br /&gt;
|-&lt;br /&gt;
| Barbare || Lamis Madaci || &lt;br /&gt;
|-&lt;br /&gt;
| Micromonde || Louison Pavie || Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
| Champ d’agrainage || Madeleine Gobeaut|| Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
| Habiter en oiseau || Maya Denudt || Nithesh Sivalinganathan&lt;br /&gt;
|-&lt;br /&gt;
|  || Naomi	Verpraet || Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
| Cumulus Specimen N°1 || Nadim	Halabi || &lt;br /&gt;
|-&lt;br /&gt;
| La terre attend || Nicolas Markovic || &lt;br /&gt;
|-&lt;br /&gt;
| || Pauline Aranda || Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
| Glassbound Ecosystem || Pauline Dewitte || &lt;br /&gt;
|-&lt;br /&gt;
| Fera Foris || Sandro	Demay ||&lt;br /&gt;
|-&lt;br /&gt;
| Gone || Kaylian Chipotel || &lt;br /&gt;
|-&lt;br /&gt;
| La respiration de la matière || Woohyeok Choi || &lt;br /&gt;
|-&lt;br /&gt;
| Étreinte sonore || Yohan Paratian || &lt;br /&gt;
|-&lt;br /&gt;
| Prima facie || Jade Segond || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Déroulé de la co-création =&lt;br /&gt;
&lt;br /&gt;
== Lundi 26 janvier : ==&lt;br /&gt;
[[Fichier:Journée d'ouverture du module.jpg|centré|vignette|564x564px|[[Fichier:Présentation des projets.jpg|vignette|581x581px]]]]&lt;br /&gt;
&lt;br /&gt;
=== Présentation générale ===&lt;br /&gt;
&lt;br /&gt;
Présentation des projets des étudiant·e·s de l'Esä dans la Salle 36 bis, autour d'un café et devant les dossiers préparés pour cette rencontre ; ici l'objectif est de vriser la glace entre les deux formations, de construire et de renforcer les liens pour que le reste de la semaine puisse être consacrée à la réalisation concrète des productions plastiques souvent complexes et expérimentales.&lt;br /&gt;
[[Fichier:Présentation du projet par Mary Costaud.jpg|vignette|548x548px]]&lt;br /&gt;
[[Fichier:Journée d'ouverture.jpg|centré|sans_cadre|534x534px|&amp;lt;gallery&amp;gt;&lt;br /&gt;
Fichier:Journée d'ouverture du module.jpg|alt=Journée d'ouverture&lt;br /&gt;
Fichier:Première rencontre entre les étudiant-es de l'Esä et de Polytech'Lille.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mise en place des groupes des binômes entre étudiant·e·s de l'Esä et de Polytech'Lille&lt;br /&gt;
=== Présentation et visite de l'Esä en petits groupes, par les étudiant·e·s  de l'Esä ===&lt;br /&gt;
12h00 - 13h00&lt;br /&gt;
&lt;br /&gt;
==== Bibliothèque ====&lt;br /&gt;
[[Fichier:Bibliothèque.jpg|centré|vignette|573x573px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier métal ====&lt;br /&gt;
[[Fichier:Atelier.jpg|[[Fichier:Atelier photographie argentique.jpg|vignette]][[Fichier:Rouge Cendre.jpg|vignette]]Atelier métal, Esä|centré|551x551px|bordure|sans_cadre]]&lt;br /&gt;
[[Fichier:Atelier métal.jpg|centré|vignette|500x500px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier son ====&lt;br /&gt;
[[Fichier:Son.jpg|centré|sans_cadre|555x555px|[[Fichier:Atelier son - Esä.jpg|alt=Atelier son Esä|centré|vignette|500x500px]][[Fichier:Atelier son.jpg|centré|vignette|500x500px]]Atelier son]]&lt;br /&gt;
[[Fichier:Atelier son - Esä.jpg|centré|vignette|500x500px]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier photographie argentique ====&lt;br /&gt;
[[Fichier:Atelier photographie argentique.jpg|vignette|620x620px|centré]]&lt;br /&gt;
[[Fichier:Argentique.jpg|vignette|407x407px|centré]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Atelier modelage ====&lt;br /&gt;
[[Fichier:Modelage.jpg|centré|sans_cadre|573x573px|modelage]]&lt;br /&gt;
&lt;br /&gt;
==== Atelier peinture ====&lt;br /&gt;
[[Fichier:Atelier peinture.jpg|centré|sans_cadre|597x597px]]&lt;br /&gt;
&lt;br /&gt;
==== Jardin écologique ====&lt;br /&gt;
[[Fichier:2023_ArtScience_Visite-jardin.jpg|446x446px|center|Espace jardin|sans_cadre]]&lt;br /&gt;
&lt;br /&gt;
=== Atelier Créatif  : travail autour de la thématique de la glace ===&lt;br /&gt;
[[Fichier:Glace.jpg|gauche|vignette]]&lt;br /&gt;
Présentation et discussion animées par Hugo Dïner  &lt;br /&gt;
&lt;br /&gt;
Les étudiants se regroupent par équipe et ont deux heures pour produire une œuvre (tout type accepté).&lt;br /&gt;
[[Fichier:Briser la glace.jpg|centré|vignette]]&lt;br /&gt;
[[Fichier:Danse.jpg|centré|vignette|498x498px]]&lt;br /&gt;
&lt;br /&gt;
== Mardi 27 janvier au vendredi 30 janvier ==&lt;br /&gt;
[[Fichier:Avec Alexandre Boé.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
== Vendredi 30 janvier ==&lt;br /&gt;
Présentation des projets devant le jury composé de : &lt;br /&gt;
&lt;br /&gt;
* Hugo Diner&lt;br /&gt;
* Fabien Jonckheere&lt;br /&gt;
* Alexandre Boé&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Réalisation au Fabricarium.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
=Cahiers de travail= &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Cahier!!Nom du projet !! Elève Esä!!Elève(s) Polytech Lille&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2025 E0 | Cahier n°0]]|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E1 | Cahier n°1]]|| Avatar|| Valentin Luce||Ahmed bergadi&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E2 | Cahier n°2]]|| T4T|| Beluna 	 Larionov||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E3 | Cahier n°3]]|| Champ d’agrainage|| Madeleine Gobeaut||Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E4 | Cahier n°4]]|| || Pauline Aranda||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E5 | Cahier n°5]]|| Habiter en oiseau|| Maya Denudt||Nithesh Sivalinganathan&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E6 | Cahier n°6]]|| Peau d’Humus|| Emilie Beve||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E7 | Cahier n°7]]|| Jardin sur la nécropole|| Axelle Dussart||Margaux Daguillanes&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E8 | Cahier n°8]]|| Sans titre (Apoapsis)|| Elies El Ferroun-Panier ||Adrien Dautricourt&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E9 | Cahier n°9]]|| Fera Foris|| Sandro Demay ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E10 | Cahier n°10]]|| Etreinte sonore|| Yohan Paratian||Thomas Volkamer - Louis Delahaye&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E11 | Cahier n°11]]|| || Naomi	Verpraet||Léa Hanotel&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E12 | Cahier n°12]]|| La Terre Attend|| Nicolas Markovic||Louis Delahaye&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E13 | Cahier n°13]]|| Glassbound Ecosystem||Pauline Dewitte&lt;br /&gt;
|Quentin Berthod&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E14 | Cahier n°14]]|| || Woohyeok CHOI||Chaymae RHANIM&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E15 | Cahier n°15]]|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|[[Art Sciences 2025/2026 E16 | Cahier n°16]]|| || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Remerciements à ReX pour le Wiki =&lt;br /&gt;
&lt;br /&gt;
C'est pas beau de flatter les gens :p :p :p, réponse : si si (et je ne parle pas de l'impératrice)&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026&amp;diff=11661</id>
		<title>SE5 IdO sécurité des objets 2025/2026</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026&amp;diff=11661"/>
		<updated>2026-01-29T12:35:24Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Répartition des binômes pour le module de sécurité des objets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Infrastructure réseau pour 2025/2026 =&lt;br /&gt;
&lt;br /&gt;
== Serveur virtuel ==&lt;br /&gt;
&lt;br /&gt;
Créez un serveur virtuel sur &amp;lt;code&amp;gt;capbreton&amp;lt;/code&amp;gt; par binôme. Préfixez le nom du serveur par &amp;lt;code&amp;gt;SE5-&amp;lt;/code&amp;gt;. Le serveur doit avoir une unique interface dans le commutateur virtuel &amp;lt;code&amp;gt;bridgeStudents&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Prenez une adresse IPv4 à partir de &amp;lt;code&amp;gt;172.26.145.100&amp;lt;/code&amp;gt; et utilisez, comme routeur, l'adresse IPv4 &amp;lt;code&amp;gt;172.26.145.251&amp;lt;/code&amp;gt;. Le routeur à cette adresse est configuré pour faire passer vos machines par un dispositif de type mascarade.&lt;br /&gt;
&lt;br /&gt;
Par la suite ajoutez à votre serveur une interface dans le VLAN &amp;lt;code&amp;gt;400+X&amp;lt;/code&amp;gt; numérotée dans le sous-réseau IPv4 &amp;lt;code&amp;gt;172.16.X.0/24&amp;lt;/code&amp;gt;. Bien entendu &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; est différent d'un binôme à l'autre (et &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&amp;gt;1).&lt;br /&gt;
&lt;br /&gt;
== Point d'accès WiFi ==&lt;br /&gt;
&lt;br /&gt;
Installez un ou plusieurs point d'accès WiFi Cisco sur un port de commutateur en mode trunk. Tentez d'associer une adresse d'administration à ce point d'accès dans le VLAN 50 (adresse d'administration en &amp;lt;code&amp;gt;172.26.145.Y&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&lt;br /&gt;
Créez un SSID associé à votre VLAN et configuré pour une identification par WPA2-PSK.&lt;br /&gt;
&lt;br /&gt;
De plus implantez les services suivant sur votre serveur virtuel :&lt;br /&gt;
* configuration par DHCP pour les clients WiFi, utilisez les adresses d'octet de poids faible &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt; du réseau IPv4 de votre VLAN privé. Donner l'adresse de votre machine mandataire comme routeur par défaut et comme serveur DNS ;&lt;br /&gt;
* Implanter un serveur DNS minimal sur votre serveur virtuel (DNS transitaire ou DNS forwarder en patoi) ;&lt;br /&gt;
* Implanter une mascarade sur votre serveur virtuel entre votre VLAN privé et le routeur du réseau des salles de projets.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez tester la visibilité de votre SSID, l'identification WiFi, le serveur DHCP et enfin l'accès à Internet en utilisant votre téléphone portable ou la carte WiFi des zabeth.&lt;br /&gt;
&lt;br /&gt;
= Interception de flux =&lt;br /&gt;
&lt;br /&gt;
L'étude d'applications mobiles peut passer par la redirection de flux TCP pour de la rétro-ingénierie. Deux voies sont possibles, une redirection par DNS ou une redirection de flux TCP vers un port local.&lt;br /&gt;
&lt;br /&gt;
== Redirection par DNS ==&lt;br /&gt;
&lt;br /&gt;
Ajoutez une zone primaire à votre serveur DNS avec le nom Internet que vous souhaitez rediriger vers votre machine locale.&lt;br /&gt;
&lt;br /&gt;
== Redirection réseau ==&lt;br /&gt;
&lt;br /&gt;
Ajoutez des règles &amp;lt;code&amp;gt;iptables&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;nftables&amp;lt;/code&amp;gt; pour rediriger un flux TCP vers un port local.&lt;br /&gt;
&lt;br /&gt;
== Serveur apache sécurisé ==&lt;br /&gt;
&lt;br /&gt;
En régle générale, c'est un flux HTTPS que vous souhaitez rediriger, vous avez donc besoin d'un serveur Web local en mode sécurisé (HTTPS).&lt;br /&gt;
&lt;br /&gt;
= Machine virtuelle &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
La redirection de flux HTTPS est problématique à cause de la protection par certificat X509. Pour contourner cette protection, une solution consiste à ajouter des autorités de certification sur l'appareil où l'application mobile est installée. Pour ce faire il est probable qu'il faille un contrôle important sur l'OS de l'appareil. Comme vous pouvez rechigner à rooter votre mobile, une machine virtuelle &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt; semble adaptée. &lt;br /&gt;
&lt;br /&gt;
Il vous est proposé de tester de créer une machine virtuelle &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt; soit par émulation d'un ARM en utilisant &amp;lt;code&amp;gt;QEMU&amp;lt;/code&amp;gt; sur un PC ordinaire soit en utilisant &amp;lt;code&amp;gt;KVM&amp;lt;/code&amp;gt; sur une Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
= Répartition des binômes pour le module de sécurité des objets =&lt;br /&gt;
&lt;br /&gt;
Donnez les élèves dans chaque binôme.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Binôme !! Elèves !! Nom du serveur virtuel !! N° du VLAN&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b1 | Cahier b1]] || Victorien Détrez || SE5-serveur || n°410&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b2 | Cahier b2]] || Kaoutar El Bachiri || SE5-kelbachi || n°409&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b3 | Cahier b3]] || Heriniaina Raissa Andrianirintsoa || SE5-handrian || n°411&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b4 | Cahier b4]] || Abdel Zongo || SE5-azongo || n°404&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b5 | Cahier b5]] || Chaymae Rhanim || SE5-crhanim || n°408&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11354</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11354"/>
		<updated>2026-01-25T16:41:18Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Analyse du trafic en utilisant wireshark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;br /&gt;
&lt;br /&gt;
== '''&amp;lt;big&amp;gt;Objet : Interrupteur connecté&amp;lt;/big&amp;gt;''' ==&lt;br /&gt;
L'objectif de cette partie du TP est d'analyser la communication réseau entre un smart wall switch et un téléphone (l'application nedis smartlife) afin de comprendre le trajet des paquets et les protocoles utilisés. Pour essayer de forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur sans passer par l'application.&lt;br /&gt;
&lt;br /&gt;
l'Interrupteur peut être commandé à distance par l'application mobile Nedis Smart Life pour l'éteindre ou allumer, j'ai fait les tests avec mon telephone et la VM android --&amp;gt; réussi.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Analyse du trafic en utilisant wireshark&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ===&lt;br /&gt;
J'ai identifié l'adresse IP et mac de l'interrupteur connecté :&lt;br /&gt;
&lt;br /&gt;
    IP : 172.16.8.105&lt;br /&gt;
&lt;br /&gt;
    MAC : d8:1f:12:98:93:58&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, j'ai procédé à plusieurs captures avec différents filtres pour comprendre la communication.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.105.'''&lt;br /&gt;
&lt;br /&gt;
J'ai observé du trafic UDP en broadcast vers 255.255.255.255 sur le port 6667. L'interrupteur envoie des annonces périodiques, toutes les ~5 secondes contenant la signature 000055aa et son état actuel chiffré.&lt;br /&gt;
&lt;br /&gt;
le '''0055aa''' corrrespond à la signature Tuya: le header fixé par le protocole de communication qu'utilise Tuya.&lt;br /&gt;
[[Fichier:Trafic.png|centré|vignette|624x624px]]&lt;br /&gt;
Filtre : '''ip.addr == 172.16.8.105 &amp;amp;&amp;amp; ip.addr == 172.16.8.104''' &lt;br /&gt;
&lt;br /&gt;
Communication directe téléphone ↔ interrupteur&lt;br /&gt;
&lt;br /&gt;
Aucun paquet capturé. Ce qui est normal ca indique qu'il n'existe aucune communication directe entre le téléphone et l'interrupteur sur le réseau local. Toutes les&lt;br /&gt;
&lt;br /&gt;
commandes passent par les serveurs cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.104'''&lt;br /&gt;
&lt;br /&gt;
'''172.16.8.104''' est l'adresse IP de la machine Android VM ou j'éxécute l'application Nedis Smart Life.&lt;br /&gt;
[[Fichier:Capture trames.png|centré|vignette|927x927px]]&lt;br /&gt;
Ce filtre permet de capturer l'ensemble de l'activité réseau du téléphone, notamment les connexions HTTPS/TLS établies vers les serveurs cloud Tuya, les paquets &amp;quot;Application Data&amp;quot; chiffrés contenant les commandes d'allumage et d'extinction, ainsi que les confirmations renvoyées par les serveurs. J'ai pu identifier que toutes les commandes transitent par des serveurs AWS localisés en Europe (3.78.92.3, 18.194.10.142, 193.48.57.31), communiquant sur le port 443 via le protocole HTTPS, révélant ainsi une architecture entièrement basée sur le cloud.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Source&lt;br /&gt;
!'''Destination'''&lt;br /&gt;
!'''Port'''&lt;br /&gt;
!'''Protocole'''&lt;br /&gt;
!'''Commentaires'''&lt;br /&gt;
|-&lt;br /&gt;
!'''172.16.8.105'''&lt;br /&gt;
!'''255.255.255.255'''&lt;br /&gt;
!'''6667'''&lt;br /&gt;
!'''UDP'''&lt;br /&gt;
!'''Annonce: L'interrupteur annonce sa présence en broadcast. Contient la signature Tuya (000055aa) et l'état actuel chiffré.'''&lt;br /&gt;
|-&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''3.78.92.3'''&lt;br /&gt;
|'''--&amp;gt;443'''&lt;br /&gt;
|'''TCP''' &lt;br /&gt;
|'''Établissement de la connexion TLS avec le serveur principal Tuya (AWS Frankfurt).'''&lt;br /&gt;
|-&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''3.78.92.3'''&lt;br /&gt;
|'''--&amp;gt;443'''&lt;br /&gt;
|'''TLSv1.2'''&lt;br /&gt;
|'''Données chiffrées contenant la commande &amp;quot;Allumer l'interrupteur&amp;quot; (423 bytes d'Application Data).'''&lt;br /&gt;
|-&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''18.194.10.142'''&lt;br /&gt;
|'''--&amp;gt;443'''&lt;br /&gt;
|'''TLSv1.2'''&lt;br /&gt;
|'''Réplication : Copie de la commande vers le serveur secondaire Tuya pour redondance.'''&lt;br /&gt;
|-&lt;br /&gt;
|'''3.78.92.3'''&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''443--&amp;gt;'''&lt;br /&gt;
|'''TCP'''&lt;br /&gt;
|'''Le serveur principal confirme la réception du paquet de commande (TCP ACK)'''&lt;br /&gt;
|-&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''18.194.10.142'''&lt;br /&gt;
|'''--&amp;gt;443'''&lt;br /&gt;
|'''TLSv1.2'''&lt;br /&gt;
|'''Synchronisation d'état entre les serveurs Tuya pour cohérence des données.'''&lt;br /&gt;
|-&lt;br /&gt;
|'''18.194.10.142'''&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''443'''&lt;br /&gt;
|'''TLSv1.2'''&lt;br /&gt;
|'''Confirmation de réception par le serveur secondaire.'''&lt;br /&gt;
|-&lt;br /&gt;
|'''193.48.57.31'''&lt;br /&gt;
|'''172.16.8.104'''&lt;br /&gt;
|'''443--&amp;gt;'''&lt;br /&gt;
|'''TLSv1.2'''&lt;br /&gt;
|'''Confirme que la commande a été exécutée avec succès par l'interrupteur.'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Utilisation de TinyTuya pour l’analyse de la communication ON/OFF&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
Dans cette partie, j'ai utilisé l’outil TinyTuya afin d’analyser la communication entre le Smart Wall Switch Tuya et le téléphone lors des commandes ON / OFF.&lt;br /&gt;
&lt;br /&gt;
TinyTuya est une bibliothèque Python qui permet de communiquer localement avec des appareils Tuya (sans passer par le cloud), en utilisant le protocole Tuya LAN. Elle permet notamment de découvrir les appareils sur le réseau, de récupérer leurs informations et d’envoyer des commandes (ON/OFF).&lt;br /&gt;
&lt;br /&gt;
Après avoir créé un environnement Python, j'ai installé les bibliothèques nécessaires  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python3 -m pip install pycryptodome&lt;br /&gt;
python3 -m pip install tinytuya&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ensuite, j'ai utilisé la commande python -m tinytuya scan : qui permet de scanner le réseau local afin de détecter les appareils Tuya présents.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya scan&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Scanning on UDP ports 6666 and 6667 and 7000 for devices for 18 seconds...&lt;br /&gt;
&lt;br /&gt;
New Broadcast from App at 172.16.8.104 - {'from': 'app', 'ip': '172.16.8.104'}&lt;br /&gt;
Unknown v3.3 Device   Product ID = key7axydcvmea3x9  [Valid Broadcast]:&lt;br /&gt;
    Address = 172.16.8.105   Device ID = bf256839cbc866aa26yeyc (len:22)  Local Key =   Version = 3.3  Type = default, MAC =&lt;br /&gt;
    No Stats for 172.16.8.105: DEVICE KEY required to poll for status&lt;br /&gt;
New Broadcast from App at 127.0.0.1 - {'from': 'app', 'ip': '10.0.2.16'}&lt;br /&gt;
Scan completed in 18.0288 seconds&lt;br /&gt;
&lt;br /&gt;
Scan Complete!  Found 1 devices.&lt;br /&gt;
Broadcasted: 1&lt;br /&gt;
Versions: 3.3: 1&lt;br /&gt;
Unknown Devices: 1&lt;br /&gt;
&lt;br /&gt;
        Saving device snapshot data to snapshot.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour pouvoir communiquer correctement avec l’appareil, j'ai créé un compte développeur sur eu.platform.tuya.com et j'ai ajouté le Smart Wall Switch sur la plateforme en utilisant l’application SmartLife pour scanner le QR code et lier l’appareil au compte Tuya. Une fois l’appareil lié au compte Tuya, j'ai lancé :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya wizard&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette commande permet de scanner le réseau et elle récupère les informations depuis la plateforme Tuya pour générer automatiquement les fichiers de configuration.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
        Configuration Data Saved to tinytuya.json&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;apiKey&amp;quot;: &amp;quot;pwtm5xhprm393rxf8jsh&amp;quot;,&lt;br /&gt;
    &amp;quot;apiSecret&amp;quot;: &amp;quot;aef15868be684109b0cb71a8d4681e2d&amp;quot;,&lt;br /&gt;
    &amp;quot;apiRegion&amp;quot;: &amp;quot;eu&amp;quot;,&lt;br /&gt;
    &amp;quot;apiDeviceID&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;À la fin de cette étape, le fichier tinytuya.json est créé et il contient les clés d’API Tuya et les informations nécessaires pour récupérer automatiquement les paramètres du Smart Switch. Ces informations sont ensuite utilisées pour créer le fichier devices.json, indispensable à la communication locale avec l’appareil.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier et afficher les informations complètes du Smart Switch, on lance la commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya devices&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cette commande génére le fichier devices.json, qui contient l'identifiant et la clé de l'interrupteur, l’adresse IP, le modèle de l’interrupteur et la liste des Data Points (DP), utilisés par l’appareil. Les Data Points (DP) qui identifient les différentes fonctionnalités du switch.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya devices&lt;br /&gt;
&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Loaded devices.json - 1 devices:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device Listing&lt;br /&gt;
&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Interrupteur connect\u00e9&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&lt;br /&gt;
        &amp;quot;key&amp;quot;: &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;mac&amp;quot;: &amp;quot;d8:1f:12:98:93:58&amp;quot;,&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: &amp;quot;ec7b74129b6b536c&amp;quot;,&lt;br /&gt;
        &amp;quot;sn&amp;quot;: &amp;quot;TXWDC05ME002D9&amp;quot;,&lt;br /&gt;
        &amp;quot;category&amp;quot;: &amp;quot;kg&amp;quot;,&lt;br /&gt;
        &amp;quot;product_name&amp;quot;: &amp;quot;Wall switch&amp;quot;,&lt;br /&gt;
        &amp;quot;product_id&amp;quot;: &amp;quot;bkmg3ht7emkqwv91&amp;quot;,&lt;br /&gt;
        &amp;quot;biz_type&amp;quot;: 18,&lt;br /&gt;
        &amp;quot;model&amp;quot;: &amp;quot;WIFIWS10WT&amp;quot;,&lt;br /&gt;
        &amp;quot;sub&amp;quot;: false,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;https://images.tuyaeu.com/smart/icon/ay1513237774906SMBA3/456c398229a72ede67a148535fd2a5ab.png&amp;quot;,&lt;br /&gt;
        &amp;quot;mapping&amp;quot;: {&lt;br /&gt;
            &amp;quot;1&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Boolean&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {}&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;7&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;countdown_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Integer&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;unit&amp;quot;: &amp;quot;s&amp;quot;,&lt;br /&gt;
                    &amp;quot;min&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;max&amp;quot;: 86400,&lt;br /&gt;
                    &amp;quot;scale&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;step&amp;quot;: 1&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;14&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;relay_status&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Enum&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;range&amp;quot;: [&lt;br /&gt;
                        &amp;quot;power_off&amp;quot;,&lt;br /&gt;
                        &amp;quot;power_on&amp;quot;,&lt;br /&gt;
                        &amp;quot;last&amp;quot;&lt;br /&gt;
                    ]&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;17&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;cycle_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;18&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;random_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;19&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_inching&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;ip&amp;quot;: &amp;quot;172.16.8.105&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;3.3&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;À partir des informations contenues dans &amp;lt;code&amp;gt;devices.json&amp;lt;/code&amp;gt;, j ’ai développé un script Python en utilisant la librairie '''TinyTuya''' afin de communiquer directement avec le Smart Wall Switch sur le réseau local. Ce script me permet de récupérer l’état actuel de l’interrupteur, d’envoyer une commande '''ON''', puis une commande '''OFF.''' L’activation du mode debug affiche les différentes étapes de la communication, notamment la construction des messages Tuya, leur chiffrement, leur envoi sur le réseau local ainsi que les réponses retournées par l’interrupteur. &lt;br /&gt;
&lt;br /&gt;
Voici le code python utilisé : &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tinytuya&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
DEVICE_ID = &amp;quot;bf256839cbc866aa26yeyc&amp;quot;&lt;br /&gt;
LOCAL_KEY = &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;&lt;br /&gt;
DEVICE_IP = &amp;quot;172.16.8.105&amp;quot;&lt;br /&gt;
VERSION = 3.3&lt;br /&gt;
&lt;br /&gt;
tinytuya.set_debug(True)&lt;br /&gt;
&lt;br /&gt;
# Création du device&lt;br /&gt;
d = tinytuya.OutletDevice(&lt;br /&gt;
    dev_id=DEVICE_ID,&lt;br /&gt;
    address=DEVICE_IP,&lt;br /&gt;
    local_key=LOCAL_KEY&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
d.set_version(VERSION)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;État initial :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\n--- ON ---&amp;quot;)&lt;br /&gt;
d.turn_on()&lt;br /&gt;
time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nÉtat après ON :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\n--- OFF ---&amp;quot;)&lt;br /&gt;
d.turn_off()&lt;br /&gt;
time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nÉtat après OFF :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Grâce au script Python basé sur TinyTuya,  j’ai pu contrôler avec succès le Smart Wall Switch '''uniquement via le réseau local''', sans passer par le cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
L’analyse des logs en mode debug montre que les commandes ON et OFF sont envoyées sous forme de '''trames Tuya chiffrées''', les messages sont '''chiffrés en AES''' (protocole Tuya v3.3). Chaque commande repose sur l’envoi d’un message contenant un champ &amp;lt;code&amp;gt;dps&amp;lt;/code&amp;gt;, où le '''Data Point 1''' contrôle l’état de l’interrupteur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; pour ON, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; pour OFF).&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
DEBUG:TinyTuya [1.17.4]&lt;br /&gt;
&lt;br /&gt;
DEBUG:Python 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0] on linux&lt;br /&gt;
DEBUG:Using pyca/cryptography 46.0.3 for crypto, GCM is supported&lt;br /&gt;
État initial :&lt;br /&gt;
DEBUG:status() entry (dev_type is default)&lt;br /&gt;
DEBUG:final payload_dict for 'bf256839cbc866aa26yeyc' ('v3.3'/'default'): {1: {'command': {'gwId': '', 'devId': '', 'uid': '', 't': ''}}, 7: {'command': {'devId': '', 'uid': '', 't': ''}}, 8: {'command': {'gwId': '', 'devId': ''}}, 9: {'command': {'gwId': '', 'devId': ''}}, 10: {'command': {'gwId': '', 'devId': '', 'uid': '', 't': ''}}, 13: {'command': {'devId': '', 'uid': '', 't': ''}}, 16: {'command': {'devId': '', 'uid': '', 't': ''}}, 18: {'command': {'dpId': [18, 19, 20]}}, 64: {'command': {'reqType': '', 'data': {}}}}&lt;br /&gt;
DEBUG:building command 10 payload=b'{&amp;quot;gwId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;devId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;uid&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;t&amp;quot;:&amp;quot;1768324046&amp;quot;}'&lt;br /&gt;
DEBUG:sending payload&lt;br /&gt;
DEBUG:payload encrypted=b'000055aa000000010000000a0000008818244f706e1005740059ceddf02f1829ed8b0833ddcb840a79ab3d00b5422a037737dfd0f905d7f80639a2608b830aeeed482913615be0cf5e62a732214bd02079928148c6ee178e35610640a3cf196aed8b0833ddcb840a79ab3d00b5422a0372733d68a3c7214f502ee01c4a2106ba8f3c59fd5d5731db7677bc1229c7a135649067940000aa55'&lt;br /&gt;
DEBUG:received data=b'000055aa000000010000000a0000004c0000000028ecbcc865e25c62b3d20e4d52cb91f6018cae5ba21fcd8ed5c0ce43dfe9c82eb62a4080c77fa007b1cae9e83cefef8142f977f994f1b0bdbc1bea641c4d38a740bf74f30000aa55'&lt;br /&gt;
DEBUG:received message=TuyaMessage(seqno=1, cmd=10, retcode=0, payload=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7', crc=1086289139, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:raw unpacked message = TuyaMessage(seqno=1, cmd=10, retcode=0, payload=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7', crc=1086289139, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:decode payload=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7'&lt;br /&gt;
DEBUG:decrypting=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7'&lt;br /&gt;
DEBUG:decrypted 3.x payload=b'{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false,&amp;quot;7&amp;quot;:0,&amp;quot;14&amp;quot;:&amp;quot;memory&amp;quot;,&amp;quot;17&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;18&amp;quot;:&amp;quot;&amp;quot;}}'&lt;br /&gt;
DEBUG:payload type = &amp;lt;class 'bytes'&amp;gt;&lt;br /&gt;
DEBUG:decoded results='{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false,&amp;quot;7&amp;quot;:0,&amp;quot;14&amp;quot;:&amp;quot;memory&amp;quot;,&amp;quot;17&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;18&amp;quot;:&amp;quot;&amp;quot;}}'&lt;br /&gt;
DEBUG:status() received data={'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
{'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
&lt;br /&gt;
--- ON ---&lt;br /&gt;
DEBUG:building command 7 payload=b'{&amp;quot;devId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;uid&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;t&amp;quot;:&amp;quot;1768324047&amp;quot;,&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:true}}'&lt;br /&gt;
DEBUG:sending payload&lt;br /&gt;
DEBUG:payload encrypted=b'000055aa000000020000000700000087332e3300000000000000000000000005ce79f17f973575c5f3b202529a10d2ed482913615be0cf5e62a732214bd02079928148c6ee178e35610640a3cf196aed8b0833ddcb840a79ab3d00b5422a035b1a69a9b681f527762a90c9d9768e7b6e503f335ebd5ef5e8b7a10a99ce938df56511b866449fccbf838c71e1f5adaa74845e6a0000aa55'&lt;br /&gt;
DEBUG:received data=b'000055aa00000000000000080000004b00000000332e330000000000002ecd00000001fb053bf4082a784d112a22a3d415707c2782e1bcb5a76e331ef111baac66f30cb27edc041220e6dabfed29faa91e838d65b884ea0000aa55'&lt;br /&gt;
DEBUG:received message=TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xcd\x00\x00\x00\x01\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d', crc=1706591466, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:raw unpacked message = TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xcd\x00\x00\x00\x01\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d', crc=1706591466, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:decode payload=b'3.3\x00\x00\x00\x00\x00\x00.\xcd\x00\x00\x00\x01\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d'&lt;br /&gt;
DEBUG:removing 3.x=b'\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d'&lt;br /&gt;
DEBUG:decrypting=b'\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d'&lt;br /&gt;
DEBUG:decrypted 3.x payload=b'{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:true},&amp;quot;t&amp;quot;:1768324046}'&lt;br /&gt;
DEBUG:payload type = &amp;lt;class 'bytes'&amp;gt;&lt;br /&gt;
DEBUG:decoded results='{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:true},&amp;quot;t&amp;quot;:1768324046}'&lt;br /&gt;
DEBUG:set_status received data={'dps': {'1': True}, 't': 1768324046}&lt;br /&gt;
&lt;br /&gt;
État après ON :&lt;br /&gt;
DEBUG:.................DEBUG:status() received data={'dps': {'1': True, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
{'dps': {'1': True, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
--- OFF ---&lt;br /&gt;
DEBUG:building command 7 payload=b'{&amp;quot;devId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;uid&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;t&amp;quot;:&amp;quot;1768324050&amp;quot;,&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false}}'&lt;br /&gt;
DEBUG:sending payload&lt;br /&gt;
DEBUG:payload encrypted=b'000055aa000000040000000700000087332e3300000000000000000000000005ce79f17f973575c5f3b202529a10d2ed482913615be0cf5e62a732214bd02079928148c6ee178e35610640a3cf196aed8b0833ddcb840a79ab3d00b5422a032c023980a15c42049143fff860acf21d1a7f60ac058279fbd401f003b4d79044000fb3f9a415dc32b5b503abca466df5cb62aa460000aa55'&lt;br /&gt;
DEBUG:received data=b'000055aa00000000000000080000004b00000000332e330000000000002ece0000000128ecbcc865e25c62b3d20e4d52cb91f69bb1f0f3d320ab01586ea0bb05cb8607266c12fccccf93cbedeced4b00ee0cc0e4e4882e0000aa55'&lt;br /&gt;
DEBUG:received message=TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xce\x00\x00\x00\x01(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0', crc=3840182318, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:raw unpacked message = TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xce\x00\x00\x00\x01(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0', crc=3840182318, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:decode payload=b'3.3\x00\x00\x00\x00\x00\x00.\xce\x00\x00\x00\x01(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0'&lt;br /&gt;
DEBUG:removing 3.x=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0'&lt;br /&gt;
DEBUG:decrypting=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0'&lt;br /&gt;
DEBUG:decrypted 3.x payload=b'{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false},&amp;quot;t&amp;quot;:1768324049}'&lt;br /&gt;
DEBUG:payload type = &amp;lt;class 'bytes'&amp;gt;&lt;br /&gt;
DEBUG:decoded results='{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false},&amp;quot;t&amp;quot;:1768324049}'&lt;br /&gt;
DEBUG:set_status received data={'dps': {'1': False}, 't': 1768324049}&lt;br /&gt;
&lt;br /&gt;
État après OFF :&lt;br /&gt;
DEBUG:status()..............DEBUG:status() received data={'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
{'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette observation permet d’envisager une méthode alternative pour contrôler le switch sans passer par TinyTuya, en reproduisant la trame nécessaire.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11353</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11353"/>
		<updated>2026-01-25T16:21:32Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Utilisation de TinyTuya pour l’analyse de la communication ON/OFF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;br /&gt;
&lt;br /&gt;
== '''&amp;lt;big&amp;gt;Objet : Interrupteur connecté&amp;lt;/big&amp;gt;''' ==&lt;br /&gt;
L'objectif de cette partie du TP est d'analyser la communication réseau entre un smart wall switch et un téléphone (l'application nedis smartlife) afin de comprendre le trajet des paquets et les protocoles utilisés. Pour essayer de forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur sans passer par l'application.&lt;br /&gt;
&lt;br /&gt;
l'Interrupteur peut être commandé à distance par l'application mobile Nedis Smart Life pour l'éteindre ou allumer, j'ai fait les tests avec mon telephone et la VM android --&amp;gt; réussi.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Analyse du trafic en utilisant wireshark&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ===&lt;br /&gt;
J'ai identifié l'adresse IP et mac de l'interrupteur connecté :&lt;br /&gt;
&lt;br /&gt;
    IP : 172.16.8.105&lt;br /&gt;
&lt;br /&gt;
    MAC : d8:1f:12:98:93:58&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, j'ai procédé à plusieurs captures avec différents filtres pour comprendre la communication.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.105.'''&lt;br /&gt;
&lt;br /&gt;
J'ai observé du trafic UDP en broadcast vers 255.255.255.255 sur le port 6667. L'interrupteur envoie des annonces périodiques, toutes les ~5 secondes contenant la signature 000055aa et son état actuel chiffré.&lt;br /&gt;
&lt;br /&gt;
le '''0055aa''' corrrespond à la signature Tuya: le header fixé par le protocole de communication qu'utilise Tuya.&lt;br /&gt;
[[Fichier:Trafic.png|centré|vignette|624x624px]]&lt;br /&gt;
Filtre : '''ip.addr == 172.16.8.105 &amp;amp;&amp;amp; ip.addr == 172.16.8.104''' &lt;br /&gt;
&lt;br /&gt;
Communication directe téléphone ↔ interrupteur&lt;br /&gt;
&lt;br /&gt;
Aucun paquet capturé. Ce qui est normal ca indique qu'il n'existe aucune communication directe entre le téléphone et l'interrupteur sur le réseau local. Toutes les&lt;br /&gt;
&lt;br /&gt;
commandes passent par les serveurs cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.104'''&lt;br /&gt;
&lt;br /&gt;
'''172.16.8.104''' est l'adresse IP de la machine Android VM ou j'éxécute l'application Nedis Smart Life.&lt;br /&gt;
[[Fichier:Capture trames.png|centré|vignette|927x927px]]&lt;br /&gt;
Ce filtre permet de capturer l'ensemble de l'activité réseau du téléphone, notamment les connexions HTTPS/TLS établies vers les serveurs cloud Tuya, les paquets &amp;quot;Application Data&amp;quot; chiffrés contenant les commandes d'allumage et d'extinction, ainsi que les confirmations renvoyées par les serveurs. J'ai pu identifier que toutes les commandes transitent par des serveurs AWS localisés en Europe (3.78.92.3, 18.194.10.142, 193.48.57.31), communiquant sur le port 443 via le protocole HTTPS, révélant ainsi une architecture entièrement basée sur le cloud.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Utilisation de TinyTuya pour l’analyse de la communication ON/OFF&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
Dans cette partie, j'ai utilisé l’outil TinyTuya afin d’analyser la communication entre le Smart Wall Switch Tuya et le téléphone lors des commandes ON / OFF.&lt;br /&gt;
&lt;br /&gt;
TinyTuya est une bibliothèque Python qui permet de communiquer localement avec des appareils Tuya (sans passer par le cloud), en utilisant le protocole Tuya LAN. Elle permet notamment de découvrir les appareils sur le réseau, de récupérer leurs informations et d’envoyer des commandes (ON/OFF).&lt;br /&gt;
&lt;br /&gt;
Après avoir créé un environnement Python, j'ai installé les bibliothèques nécessaires  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python3 -m pip install pycryptodome&lt;br /&gt;
python3 -m pip install tinytuya&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ensuite, j'ai utilisé la commande python -m tinytuya scan : qui permet de scanner le réseau local afin de détecter les appareils Tuya présents.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya scan&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Scanning on UDP ports 6666 and 6667 and 7000 for devices for 18 seconds...&lt;br /&gt;
&lt;br /&gt;
New Broadcast from App at 172.16.8.104 - {'from': 'app', 'ip': '172.16.8.104'}&lt;br /&gt;
Unknown v3.3 Device   Product ID = key7axydcvmea3x9  [Valid Broadcast]:&lt;br /&gt;
    Address = 172.16.8.105   Device ID = bf256839cbc866aa26yeyc (len:22)  Local Key =   Version = 3.3  Type = default, MAC =&lt;br /&gt;
    No Stats for 172.16.8.105: DEVICE KEY required to poll for status&lt;br /&gt;
New Broadcast from App at 127.0.0.1 - {'from': 'app', 'ip': '10.0.2.16'}&lt;br /&gt;
Scan completed in 18.0288 seconds&lt;br /&gt;
&lt;br /&gt;
Scan Complete!  Found 1 devices.&lt;br /&gt;
Broadcasted: 1&lt;br /&gt;
Versions: 3.3: 1&lt;br /&gt;
Unknown Devices: 1&lt;br /&gt;
&lt;br /&gt;
        Saving device snapshot data to snapshot.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour pouvoir communiquer correctement avec l’appareil, j'ai créé un compte développeur sur eu.platform.tuya.com et j'ai ajouté le Smart Wall Switch sur la plateforme en utilisant l’application SmartLife pour scanner le QR code et lier l’appareil au compte Tuya. Une fois l’appareil lié au compte Tuya, j'ai lancé :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya wizard&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette commande permet de scanner le réseau et elle récupère les informations depuis la plateforme Tuya pour générer automatiquement les fichiers de configuration.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
        Configuration Data Saved to tinytuya.json&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;apiKey&amp;quot;: &amp;quot;pwtm5xhprm393rxf8jsh&amp;quot;,&lt;br /&gt;
    &amp;quot;apiSecret&amp;quot;: &amp;quot;aef15868be684109b0cb71a8d4681e2d&amp;quot;,&lt;br /&gt;
    &amp;quot;apiRegion&amp;quot;: &amp;quot;eu&amp;quot;,&lt;br /&gt;
    &amp;quot;apiDeviceID&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;À la fin de cette étape, le fichier tinytuya.json est créé et il contient les clés d’API Tuya et les informations nécessaires pour récupérer automatiquement les paramètres du Smart Switch. Ces informations sont ensuite utilisées pour créer le fichier devices.json, indispensable à la communication locale avec l’appareil.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier et afficher les informations complètes du Smart Switch, on lance la commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya devices&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cette commande génére le fichier devices.json, qui contient l'identifiant et la clé de l'interrupteur, l’adresse IP, le modèle de l’interrupteur et la liste des Data Points (DP), utilisés par l’appareil. Les Data Points (DP) qui identifient les différentes fonctionnalités du switch.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya devices&lt;br /&gt;
&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Loaded devices.json - 1 devices:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device Listing&lt;br /&gt;
&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Interrupteur connect\u00e9&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&lt;br /&gt;
        &amp;quot;key&amp;quot;: &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;mac&amp;quot;: &amp;quot;d8:1f:12:98:93:58&amp;quot;,&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: &amp;quot;ec7b74129b6b536c&amp;quot;,&lt;br /&gt;
        &amp;quot;sn&amp;quot;: &amp;quot;TXWDC05ME002D9&amp;quot;,&lt;br /&gt;
        &amp;quot;category&amp;quot;: &amp;quot;kg&amp;quot;,&lt;br /&gt;
        &amp;quot;product_name&amp;quot;: &amp;quot;Wall switch&amp;quot;,&lt;br /&gt;
        &amp;quot;product_id&amp;quot;: &amp;quot;bkmg3ht7emkqwv91&amp;quot;,&lt;br /&gt;
        &amp;quot;biz_type&amp;quot;: 18,&lt;br /&gt;
        &amp;quot;model&amp;quot;: &amp;quot;WIFIWS10WT&amp;quot;,&lt;br /&gt;
        &amp;quot;sub&amp;quot;: false,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;https://images.tuyaeu.com/smart/icon/ay1513237774906SMBA3/456c398229a72ede67a148535fd2a5ab.png&amp;quot;,&lt;br /&gt;
        &amp;quot;mapping&amp;quot;: {&lt;br /&gt;
            &amp;quot;1&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Boolean&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {}&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;7&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;countdown_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Integer&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;unit&amp;quot;: &amp;quot;s&amp;quot;,&lt;br /&gt;
                    &amp;quot;min&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;max&amp;quot;: 86400,&lt;br /&gt;
                    &amp;quot;scale&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;step&amp;quot;: 1&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;14&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;relay_status&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Enum&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;range&amp;quot;: [&lt;br /&gt;
                        &amp;quot;power_off&amp;quot;,&lt;br /&gt;
                        &amp;quot;power_on&amp;quot;,&lt;br /&gt;
                        &amp;quot;last&amp;quot;&lt;br /&gt;
                    ]&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;17&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;cycle_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;18&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;random_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;19&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_inching&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;ip&amp;quot;: &amp;quot;172.16.8.105&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;3.3&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;À partir des informations contenues dans &amp;lt;code&amp;gt;devices.json&amp;lt;/code&amp;gt;, j ’ai développé un script Python en utilisant la librairie '''TinyTuya''' afin de communiquer directement avec le Smart Wall Switch sur le réseau local. Ce script me permet de récupérer l’état actuel de l’interrupteur, d’envoyer une commande '''ON''', puis une commande '''OFF.''' L’activation du mode debug affiche les différentes étapes de la communication, notamment la construction des messages Tuya, leur chiffrement, leur envoi sur le réseau local ainsi que les réponses retournées par l’interrupteur. &lt;br /&gt;
&lt;br /&gt;
Voici le code python utilisé : &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tinytuya&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
DEVICE_ID = &amp;quot;bf256839cbc866aa26yeyc&amp;quot;&lt;br /&gt;
LOCAL_KEY = &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;&lt;br /&gt;
DEVICE_IP = &amp;quot;172.16.8.105&amp;quot;&lt;br /&gt;
VERSION = 3.3&lt;br /&gt;
&lt;br /&gt;
tinytuya.set_debug(True)&lt;br /&gt;
&lt;br /&gt;
# Création du device&lt;br /&gt;
d = tinytuya.OutletDevice(&lt;br /&gt;
    dev_id=DEVICE_ID,&lt;br /&gt;
    address=DEVICE_IP,&lt;br /&gt;
    local_key=LOCAL_KEY&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
d.set_version(VERSION)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;État initial :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\n--- ON ---&amp;quot;)&lt;br /&gt;
d.turn_on()&lt;br /&gt;
time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nÉtat après ON :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\n--- OFF ---&amp;quot;)&lt;br /&gt;
d.turn_off()&lt;br /&gt;
time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nÉtat après OFF :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Grâce au script Python basé sur TinyTuya,  j’ai pu contrôler avec succès le Smart Wall Switch '''uniquement via le réseau local''', sans passer par le cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
L’analyse des logs en mode debug montre que les commandes ON et OFF sont envoyées sous forme de '''trames Tuya chiffrées''', les messages sont '''chiffrés en AES''' (protocole Tuya v3.3). Chaque commande repose sur l’envoi d’un message contenant un champ &amp;lt;code&amp;gt;dps&amp;lt;/code&amp;gt;, où le '''Data Point 1''' contrôle l’état de l’interrupteur (&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; pour ON, &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; pour OFF).&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
DEBUG:TinyTuya [1.17.4]&lt;br /&gt;
&lt;br /&gt;
DEBUG:Python 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0] on linux&lt;br /&gt;
DEBUG:Using pyca/cryptography 46.0.3 for crypto, GCM is supported&lt;br /&gt;
État initial :&lt;br /&gt;
DEBUG:status() entry (dev_type is default)&lt;br /&gt;
DEBUG:final payload_dict for 'bf256839cbc866aa26yeyc' ('v3.3'/'default'): {1: {'command': {'gwId': '', 'devId': '', 'uid': '', 't': ''}}, 7: {'command': {'devId': '', 'uid': '', 't': ''}}, 8: {'command': {'gwId': '', 'devId': ''}}, 9: {'command': {'gwId': '', 'devId': ''}}, 10: {'command': {'gwId': '', 'devId': '', 'uid': '', 't': ''}}, 13: {'command': {'devId': '', 'uid': '', 't': ''}}, 16: {'command': {'devId': '', 'uid': '', 't': ''}}, 18: {'command': {'dpId': [18, 19, 20]}}, 64: {'command': {'reqType': '', 'data': {}}}}&lt;br /&gt;
DEBUG:building command 10 payload=b'{&amp;quot;gwId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;devId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;uid&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;t&amp;quot;:&amp;quot;1768324046&amp;quot;}'&lt;br /&gt;
DEBUG:sending payload&lt;br /&gt;
DEBUG:payload encrypted=b'000055aa000000010000000a0000008818244f706e1005740059ceddf02f1829ed8b0833ddcb840a79ab3d00b5422a037737dfd0f905d7f80639a2608b830aeeed482913615be0cf5e62a732214bd02079928148c6ee178e35610640a3cf196aed8b0833ddcb840a79ab3d00b5422a0372733d68a3c7214f502ee01c4a2106ba8f3c59fd5d5731db7677bc1229c7a135649067940000aa55'&lt;br /&gt;
DEBUG:received data=b'000055aa000000010000000a0000004c0000000028ecbcc865e25c62b3d20e4d52cb91f6018cae5ba21fcd8ed5c0ce43dfe9c82eb62a4080c77fa007b1cae9e83cefef8142f977f994f1b0bdbc1bea641c4d38a740bf74f30000aa55'&lt;br /&gt;
DEBUG:received message=TuyaMessage(seqno=1, cmd=10, retcode=0, payload=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7', crc=1086289139, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:raw unpacked message = TuyaMessage(seqno=1, cmd=10, retcode=0, payload=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7', crc=1086289139, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:decode payload=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7'&lt;br /&gt;
DEBUG:decrypting=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x01\x8c\xae[\xa2\x1f\xcd\x8e\xd5\xc0\xceC\xdf\xe9\xc8.\xb6*@\x80\xc7\x7f\xa0\x07\xb1\xca\xe9\xe8&amp;lt;\xef\xef\x81B\xf9w\xf9\x94\xf1\xb0\xbd\xbc\x1b\xead\x1cM8\xa7'&lt;br /&gt;
DEBUG:decrypted 3.x payload=b'{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false,&amp;quot;7&amp;quot;:0,&amp;quot;14&amp;quot;:&amp;quot;memory&amp;quot;,&amp;quot;17&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;18&amp;quot;:&amp;quot;&amp;quot;}}'&lt;br /&gt;
DEBUG:payload type = &amp;lt;class 'bytes'&amp;gt;&lt;br /&gt;
DEBUG:decoded results='{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false,&amp;quot;7&amp;quot;:0,&amp;quot;14&amp;quot;:&amp;quot;memory&amp;quot;,&amp;quot;17&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;18&amp;quot;:&amp;quot;&amp;quot;}}'&lt;br /&gt;
DEBUG:status() received data={'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
{'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
&lt;br /&gt;
--- ON ---&lt;br /&gt;
DEBUG:building command 7 payload=b'{&amp;quot;devId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;uid&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;t&amp;quot;:&amp;quot;1768324047&amp;quot;,&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:true}}'&lt;br /&gt;
DEBUG:sending payload&lt;br /&gt;
DEBUG:payload encrypted=b'000055aa000000020000000700000087332e3300000000000000000000000005ce79f17f973575c5f3b202529a10d2ed482913615be0cf5e62a732214bd02079928148c6ee178e35610640a3cf196aed8b0833ddcb840a79ab3d00b5422a035b1a69a9b681f527762a90c9d9768e7b6e503f335ebd5ef5e8b7a10a99ce938df56511b866449fccbf838c71e1f5adaa74845e6a0000aa55'&lt;br /&gt;
DEBUG:received data=b'000055aa00000000000000080000004b00000000332e330000000000002ecd00000001fb053bf4082a784d112a22a3d415707c2782e1bcb5a76e331ef111baac66f30cb27edc041220e6dabfed29faa91e838d65b884ea0000aa55'&lt;br /&gt;
DEBUG:received message=TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xcd\x00\x00\x00\x01\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d', crc=1706591466, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:raw unpacked message = TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xcd\x00\x00\x00\x01\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d', crc=1706591466, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:decode payload=b'3.3\x00\x00\x00\x00\x00\x00.\xcd\x00\x00\x00\x01\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d'&lt;br /&gt;
DEBUG:removing 3.x=b'\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d'&lt;br /&gt;
DEBUG:decrypting=b'\xfb\x05;\xf4\x08*xM\x11*&amp;quot;\xa3\xd4\x15p|\'\x82\xe1\xbc\xb5\xa7n3\x1e\xf1\x11\xba\xacf\xf3\x0c\xb2~\xdc\x04\x12 \xe6\xda\xbf\xed)\xfa\xa9\x1e\x83\x8d'&lt;br /&gt;
DEBUG:decrypted 3.x payload=b'{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:true},&amp;quot;t&amp;quot;:1768324046}'&lt;br /&gt;
DEBUG:payload type = &amp;lt;class 'bytes'&amp;gt;&lt;br /&gt;
DEBUG:decoded results='{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:true},&amp;quot;t&amp;quot;:1768324046}'&lt;br /&gt;
DEBUG:set_status received data={'dps': {'1': True}, 't': 1768324046}&lt;br /&gt;
&lt;br /&gt;
État après ON :&lt;br /&gt;
DEBUG:.................DEBUG:status() received data={'dps': {'1': True, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
{'dps': {'1': True, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
--- OFF ---&lt;br /&gt;
DEBUG:building command 7 payload=b'{&amp;quot;devId&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;uid&amp;quot;:&amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&amp;quot;t&amp;quot;:&amp;quot;1768324050&amp;quot;,&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false}}'&lt;br /&gt;
DEBUG:sending payload&lt;br /&gt;
DEBUG:payload encrypted=b'000055aa000000040000000700000087332e3300000000000000000000000005ce79f17f973575c5f3b202529a10d2ed482913615be0cf5e62a732214bd02079928148c6ee178e35610640a3cf196aed8b0833ddcb840a79ab3d00b5422a032c023980a15c42049143fff860acf21d1a7f60ac058279fbd401f003b4d79044000fb3f9a415dc32b5b503abca466df5cb62aa460000aa55'&lt;br /&gt;
DEBUG:received data=b'000055aa00000000000000080000004b00000000332e330000000000002ece0000000128ecbcc865e25c62b3d20e4d52cb91f69bb1f0f3d320ab01586ea0bb05cb8607266c12fccccf93cbedeced4b00ee0cc0e4e4882e0000aa55'&lt;br /&gt;
DEBUG:received message=TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xce\x00\x00\x00\x01(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0', crc=3840182318, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:raw unpacked message = TuyaMessage(seqno=0, cmd=8, retcode=0, payload=b'3.3\x00\x00\x00\x00\x00\x00.\xce\x00\x00\x00\x01(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0', crc=3840182318, crc_good=True, prefix=21930, iv=None)&lt;br /&gt;
DEBUG:decode payload=b'3.3\x00\x00\x00\x00\x00\x00.\xce\x00\x00\x00\x01(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0'&lt;br /&gt;
DEBUG:removing 3.x=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0'&lt;br /&gt;
DEBUG:decrypting=b'(\xec\xbc\xc8e\xe2\\b\xb3\xd2\x0eMR\xcb\x91\xf6\x9b\xb1\xf0\xf3\xd3 \xab\x01Xn\xa0\xbb\x05\xcb\x86\x07&amp;amp;l\x12\xfc\xcc\xcf\x93\xcb\xed\xec\xedK\x00\xee\x0c\xc0'&lt;br /&gt;
DEBUG:decrypted 3.x payload=b'{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false},&amp;quot;t&amp;quot;:1768324049}'&lt;br /&gt;
DEBUG:payload type = &amp;lt;class 'bytes'&amp;gt;&lt;br /&gt;
DEBUG:decoded results='{&amp;quot;dps&amp;quot;:{&amp;quot;1&amp;quot;:false},&amp;quot;t&amp;quot;:1768324049}'&lt;br /&gt;
DEBUG:set_status received data={'dps': {'1': False}, 't': 1768324049}&lt;br /&gt;
&lt;br /&gt;
État après OFF :&lt;br /&gt;
DEBUG:status()..............DEBUG:status() received data={'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
{'dps': {'1': False, '7': 0, '14': 'memory', '17': '', '18': ''}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette observation permet d’envisager une méthode alternative pour contrôler le switch sans passer par TinyTuya, en reproduisant la trame nécessaire.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11352</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11352"/>
		<updated>2026-01-25T15:16:34Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Utilisation de TinyTuya pour l’analyse de la communication ON/OFF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;br /&gt;
&lt;br /&gt;
== '''&amp;lt;big&amp;gt;Objet : Interrupteur connecté&amp;lt;/big&amp;gt;''' ==&lt;br /&gt;
L'objectif de cette partie du TP est d'analyser la communication réseau entre un smart wall switch et un téléphone (l'application nedis smartlife) afin de comprendre le trajet des paquets et les protocoles utilisés. Pour essayer de forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur sans passer par l'application.&lt;br /&gt;
&lt;br /&gt;
l'Interrupteur peut être commandé à distance par l'application mobile Nedis Smart Life pour l'éteindre ou allumer, j'ai fait les tests avec mon telephone et la VM android --&amp;gt; réussi.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Analyse du trafic en utilisant wireshark&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ===&lt;br /&gt;
J'ai identifié l'adresse IP et mac de l'interrupteur connecté :&lt;br /&gt;
&lt;br /&gt;
    IP : 172.16.8.105&lt;br /&gt;
&lt;br /&gt;
    MAC : d8:1f:12:98:93:58&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, j'ai procédé à plusieurs captures avec différents filtres pour comprendre la communication.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.105.'''&lt;br /&gt;
&lt;br /&gt;
J'ai observé du trafic UDP en broadcast vers 255.255.255.255 sur le port 6667. L'interrupteur envoie des annonces périodiques, toutes les ~5 secondes contenant la signature 000055aa et son état actuel chiffré.&lt;br /&gt;
&lt;br /&gt;
le '''0055aa''' corrrespond à la signature Tuya: le header fixé par le protocole de communication qu'utilise Tuya.&lt;br /&gt;
[[Fichier:Trafic.png|centré|vignette|624x624px]]&lt;br /&gt;
Filtre : '''ip.addr == 172.16.8.105 &amp;amp;&amp;amp; ip.addr == 172.16.8.104''' &lt;br /&gt;
&lt;br /&gt;
Communication directe téléphone ↔ interrupteur&lt;br /&gt;
&lt;br /&gt;
Aucun paquet capturé. Ce qui est normal ca indique qu'il n'existe aucune communication directe entre le téléphone et l'interrupteur sur le réseau local. Toutes les&lt;br /&gt;
&lt;br /&gt;
commandes passent par les serveurs cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.104'''&lt;br /&gt;
&lt;br /&gt;
'''172.16.8.104''' est l'adresse IP de la machine Android VM ou j'éxécute l'application Nedis Smart Life.&lt;br /&gt;
[[Fichier:Capture trames.png|centré|vignette|927x927px]]&lt;br /&gt;
Ce filtre permet de capturer l'ensemble de l'activité réseau du téléphone, notamment les connexions HTTPS/TLS établies vers les serveurs cloud Tuya, les paquets &amp;quot;Application Data&amp;quot; chiffrés contenant les commandes d'allumage et d'extinction, ainsi que les confirmations renvoyées par les serveurs. J'ai pu identifier que toutes les commandes transitent par des serveurs AWS localisés en Europe (3.78.92.3, 18.194.10.142, 193.48.57.31), communiquant sur le port 443 via le protocole HTTPS, révélant ainsi une architecture entièrement basée sur le cloud.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Utilisation de TinyTuya pour l’analyse de la communication ON/OFF&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
Dans cette partie, j'ai utilisé l’outil TinyTuya afin d’analyser la communication entre le Smart Wall Switch Tuya et le téléphone lors des commandes ON / OFF.&lt;br /&gt;
&lt;br /&gt;
TinyTuya est une bibliothèque Python qui permet de communiquer localement avec des appareils Tuya (sans passer par le cloud), en utilisant le protocole Tuya LAN. Elle permet notamment de découvrir les appareils sur le réseau, de récupérer leurs informations et d’envoyer des commandes (ON/OFF).&lt;br /&gt;
&lt;br /&gt;
Après avoir créé un environnement Python, j'ai installé les bibliothèques nécessaires  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python3 -m pip install pycryptodome&lt;br /&gt;
python3 -m pip install tinytuya&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ensuite, j'ai utilisé la commande python -m tinytuya scan : qui permet de scanner le réseau local afin de détecter les appareils Tuya présents.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya scan&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Scanning on UDP ports 6666 and 6667 and 7000 for devices for 18 seconds...&lt;br /&gt;
&lt;br /&gt;
New Broadcast from App at 172.16.8.104 - {'from': 'app', 'ip': '172.16.8.104'}&lt;br /&gt;
Unknown v3.3 Device   Product ID = key7axydcvmea3x9  [Valid Broadcast]:&lt;br /&gt;
    Address = 172.16.8.105   Device ID = bf256839cbc866aa26yeyc (len:22)  Local Key =   Version = 3.3  Type = default, MAC =&lt;br /&gt;
    No Stats for 172.16.8.105: DEVICE KEY required to poll for status&lt;br /&gt;
New Broadcast from App at 127.0.0.1 - {'from': 'app', 'ip': '10.0.2.16'}&lt;br /&gt;
Scan completed in 18.0288 seconds&lt;br /&gt;
&lt;br /&gt;
Scan Complete!  Found 1 devices.&lt;br /&gt;
Broadcasted: 1&lt;br /&gt;
Versions: 3.3: 1&lt;br /&gt;
Unknown Devices: 1&lt;br /&gt;
&lt;br /&gt;
        Saving device snapshot data to snapshot.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour pouvoir communiquer correctement avec l’appareil, j'ai créé un compte développeur sur eu.platform.tuya.com et j'ai ajouté le Smart Wall Switch sur la plateforme en utilisant l’application SmartLife pour scanner le QR code et lier l’appareil au compte Tuya. Une fois l’appareil lié au compte Tuya, j'ai lancé :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya wizard&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette commande permet de scanner le réseau et elle récupère les informations depuis la plateforme Tuya pour générer automatiquement les fichiers de configuration.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
        Configuration Data Saved to tinytuya.json&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;apiKey&amp;quot;: &amp;quot;pwtm5xhprm393rxf8jsh&amp;quot;,&lt;br /&gt;
    &amp;quot;apiSecret&amp;quot;: &amp;quot;aef15868be684109b0cb71a8d4681e2d&amp;quot;,&lt;br /&gt;
    &amp;quot;apiRegion&amp;quot;: &amp;quot;eu&amp;quot;,&lt;br /&gt;
    &amp;quot;apiDeviceID&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;À la fin de cette étape, le fichier tinytuya.json est créé et il contient les clés d’API Tuya et les informations nécessaires pour récupérer automatiquement les paramètres du Smart Switch. Ces informations sont ensuite utilisées pour créer le fichier devices.json, indispensable à la communication locale avec l’appareil.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier et afficher les informations complètes du Smart Switch, on lance la commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya devices&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cette commande génére le fichier devices.json, qui contient l'identifiant et la clé de l'interrupteur, l’adresse IP, le modèle de l’interrupteur et la liste des Data Points (DP), utilisés par l’appareil. Les Data Points (DP) identifient les différentes fonctionnalités du switch.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya devices&lt;br /&gt;
&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Loaded devices.json - 1 devices:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device Listing&lt;br /&gt;
&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Interrupteur connect\u00e9&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&lt;br /&gt;
        &amp;quot;key&amp;quot;: &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;mac&amp;quot;: &amp;quot;d8:1f:12:98:93:58&amp;quot;,&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: &amp;quot;ec7b74129b6b536c&amp;quot;,&lt;br /&gt;
        &amp;quot;sn&amp;quot;: &amp;quot;TXWDC05ME002D9&amp;quot;,&lt;br /&gt;
        &amp;quot;category&amp;quot;: &amp;quot;kg&amp;quot;,&lt;br /&gt;
        &amp;quot;product_name&amp;quot;: &amp;quot;Wall switch&amp;quot;,&lt;br /&gt;
        &amp;quot;product_id&amp;quot;: &amp;quot;bkmg3ht7emkqwv91&amp;quot;,&lt;br /&gt;
        &amp;quot;biz_type&amp;quot;: 18,&lt;br /&gt;
        &amp;quot;model&amp;quot;: &amp;quot;WIFIWS10WT&amp;quot;,&lt;br /&gt;
        &amp;quot;sub&amp;quot;: false,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;https://images.tuyaeu.com/smart/icon/ay1513237774906SMBA3/456c398229a72ede67a148535fd2a5ab.png&amp;quot;,&lt;br /&gt;
        &amp;quot;mapping&amp;quot;: {&lt;br /&gt;
            &amp;quot;1&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Boolean&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {}&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;7&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;countdown_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Integer&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;unit&amp;quot;: &amp;quot;s&amp;quot;,&lt;br /&gt;
                    &amp;quot;min&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;max&amp;quot;: 86400,&lt;br /&gt;
                    &amp;quot;scale&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;step&amp;quot;: 1&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;14&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;relay_status&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Enum&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;range&amp;quot;: [&lt;br /&gt;
                        &amp;quot;power_off&amp;quot;,&lt;br /&gt;
                        &amp;quot;power_on&amp;quot;,&lt;br /&gt;
                        &amp;quot;last&amp;quot;&lt;br /&gt;
                    ]&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;17&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;cycle_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;18&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;random_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;19&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_inching&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;ip&amp;quot;: &amp;quot;172.16.8.105&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;3.3&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;À partir des informations contenues dans &amp;lt;code&amp;gt;devices.json&amp;lt;/code&amp;gt;, j ’ai développé un script Python en utilisant la librairie '''TinyTuya''' afin de communiquer directement avec le Smart Wall Switch sur le réseau local. Ce script me permet de récupérer l’état actuel de l’interrupteur, d’envoyer une commande '''ON''', puis une commande '''OFF.''' L’activation du mode debug affiche les différentes étapes de la communication, notamment la construction des messages Tuya, leur chiffrement, leur envoi sur le réseau local ainsi que les réponses retournées par l’interrupteur.&lt;br /&gt;
&lt;br /&gt;
Voici le code python utilisé : &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tinytuya&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
DEVICE_ID = &amp;quot;bf256839cbc866aa26yeyc&amp;quot;&lt;br /&gt;
LOCAL_KEY = &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;&lt;br /&gt;
DEVICE_IP = &amp;quot;172.16.8.105&amp;quot;&lt;br /&gt;
VERSION = 3.3&lt;br /&gt;
&lt;br /&gt;
tinytuya.set_debug(True)&lt;br /&gt;
&lt;br /&gt;
# Création du device&lt;br /&gt;
d = tinytuya.OutletDevice(&lt;br /&gt;
    dev_id=DEVICE_ID,&lt;br /&gt;
    address=DEVICE_IP,&lt;br /&gt;
    local_key=LOCAL_KEY&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
d.set_version(VERSION)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;État initial :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\n--- ON ---&amp;quot;)&lt;br /&gt;
d.turn_on()&lt;br /&gt;
time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nÉtat après ON :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\n--- OFF ---&amp;quot;)&lt;br /&gt;
d.turn_off()&lt;br /&gt;
time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;\nÉtat après OFF :&amp;quot;)&lt;br /&gt;
print(d.status())&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11351</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11351"/>
		<updated>2026-01-25T14:45:41Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Utilisation de TinyTuya pour l’analyse de la communication ON/OFF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;br /&gt;
&lt;br /&gt;
== '''&amp;lt;big&amp;gt;Objet : Interrupteur connecté&amp;lt;/big&amp;gt;''' ==&lt;br /&gt;
L'objectif de cette partie du TP est d'analyser la communication réseau entre un smart wall switch et un téléphone (l'application nedis smartlife) afin de comprendre le trajet des paquets et les protocoles utilisés. Pour essayer de forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur sans passer par l'application.&lt;br /&gt;
&lt;br /&gt;
l'Interrupteur peut être commandé à distance par l'application mobile Nedis Smart Life pour l'éteindre ou allumer, j'ai fait les tests avec mon telephone et la VM android --&amp;gt; réussi.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Analyse du trafic en utilisant wireshark&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ===&lt;br /&gt;
J'ai identifié l'adresse IP et mac de l'interrupteur connecté :&lt;br /&gt;
&lt;br /&gt;
    IP : 172.16.8.105&lt;br /&gt;
&lt;br /&gt;
    MAC : d8:1f:12:98:93:58&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, j'ai procédé à plusieurs captures avec différents filtres pour comprendre la communication.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.105.'''&lt;br /&gt;
&lt;br /&gt;
J'ai observé du trafic UDP en broadcast vers 255.255.255.255 sur le port 6667. L'interrupteur envoie des annonces périodiques, toutes les ~5 secondes contenant la signature 000055aa et son état actuel chiffré.&lt;br /&gt;
&lt;br /&gt;
le '''0055aa''' corrrespond à la signature Tuya: le header fixé par le protocole de communication qu'utilise Tuya.&lt;br /&gt;
[[Fichier:Trafic.png|centré|vignette|624x624px]]&lt;br /&gt;
Filtre : '''ip.addr == 172.16.8.105 &amp;amp;&amp;amp; ip.addr == 172.16.8.104''' &lt;br /&gt;
&lt;br /&gt;
Communication directe téléphone ↔ interrupteur&lt;br /&gt;
&lt;br /&gt;
Aucun paquet capturé. Ce qui est normal ca indique qu'il n'existe aucune communication directe entre le téléphone et l'interrupteur sur le réseau local. Toutes les&lt;br /&gt;
&lt;br /&gt;
commandes passent par les serveurs cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.104'''&lt;br /&gt;
&lt;br /&gt;
'''172.16.8.104''' est l'adresse IP de la machine Android VM ou j'éxécute l'application Nedis Smart Life.&lt;br /&gt;
[[Fichier:Capture trames.png|centré|vignette|927x927px]]&lt;br /&gt;
Ce filtre permet de capturer l'ensemble de l'activité réseau du téléphone, notamment les connexions HTTPS/TLS établies vers les serveurs cloud Tuya, les paquets &amp;quot;Application Data&amp;quot; chiffrés contenant les commandes d'allumage et d'extinction, ainsi que les confirmations renvoyées par les serveurs. J'ai pu identifier que toutes les commandes transitent par des serveurs AWS localisés en Europe (3.78.92.3, 18.194.10.142, 193.48.57.31), communiquant sur le port 443 via le protocole HTTPS, révélant ainsi une architecture entièrement basée sur le cloud.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Utilisation de TinyTuya pour l’analyse de la communication ON/OFF&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
Dans cette partie, j'ai utilisé l’outil TinyTuya afin d’analyser la communication entre le Smart Wall Switch Tuya et le téléphone lors des commandes ON / OFF.&lt;br /&gt;
&lt;br /&gt;
TinyTuya est une bibliothèque Python qui permet de communiquer localement avec des appareils Tuya (sans passer par le cloud), en utilisant le protocole Tuya LAN. Elle permet notamment de découvrir les appareils sur le réseau, de récupérer leurs informations et d’envoyer des commandes (ON/OFF).&lt;br /&gt;
&lt;br /&gt;
Après avoir créé un environnement Python, j'ai installé les bibliothèques nécessaires  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python3 -m pip install pycryptodome&lt;br /&gt;
python3 -m pip install tinytuya&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ensuite, j'ai utilisé la commande python -m tinytuya scan : qui permet de scanner le réseau local afin de détecter les appareils Tuya présents.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya scan&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Scanning on UDP ports 6666 and 6667 and 7000 for devices for 18 seconds...&lt;br /&gt;
&lt;br /&gt;
New Broadcast from App at 172.16.8.104 - {'from': 'app', 'ip': '172.16.8.104'}&lt;br /&gt;
Unknown v3.3 Device   Product ID = key7axydcvmea3x9  [Valid Broadcast]:&lt;br /&gt;
    Address = 172.16.8.105   Device ID = bf256839cbc866aa26yeyc (len:22)  Local Key =   Version = 3.3  Type = default, MAC =&lt;br /&gt;
    No Stats for 172.16.8.105: DEVICE KEY required to poll for status&lt;br /&gt;
New Broadcast from App at 127.0.0.1 - {'from': 'app', 'ip': '10.0.2.16'}&lt;br /&gt;
Scan completed in 18.0288 seconds&lt;br /&gt;
&lt;br /&gt;
Scan Complete!  Found 1 devices.&lt;br /&gt;
Broadcasted: 1&lt;br /&gt;
Versions: 3.3: 1&lt;br /&gt;
Unknown Devices: 1&lt;br /&gt;
&lt;br /&gt;
        Saving device snapshot data to snapshot.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour pouvoir communiquer correctement avec l’appareil, j'ai créé un compte développeur sur eu.platform.tuya.com et j'ai ajouté le Smart Wall Switch sur la plateforme en utilisant l’application SmartLife pour scanner le QR code et lier l’appareil au compte Tuya. Une fois l’appareil lié au compte Tuya, j'ai lancé :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya wizard&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette commande permet de scanner le réseau et elle récupère les informations depuis la plateforme Tuya pour générer automatiquement les fichiers de configuration.&lt;br /&gt;
&lt;br /&gt;
À la fin de cette étape, le fichier tinytuya.json est créé et il contient les clés d’API Tuya et les informations nécessaires pour récupérer automatiquement les paramètres du Smart Switch. Ces informations sont ensuite utilisées pour créer le fichier devices.json, indispensable à la communication locale avec l’appareil.&lt;br /&gt;
&lt;br /&gt;
Pour vérifier et afficher les informations complètes du Smart Switch, on lance la commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
python -m tinytuya devices&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;cette commande génére le fichier devices.json, qui contient L’identifiant du et la clé de l'interrupteur, l’adresse IP, le modèle de l’interrupteur et la liste des Data Points (DP), utilisés par l’appareil. Les Data Points (DP) identifient les différentes fonctionnalités du switch.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
root@zabeth08:~/penv# bin/python3 -m tinytuya devices&lt;br /&gt;
&lt;br /&gt;
TinyTuya (Tuya device scanner) [1.17.4]&lt;br /&gt;
&lt;br /&gt;
Loaded devices.json - 1 devices:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device Listing&lt;br /&gt;
&lt;br /&gt;
[&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;name&amp;quot;: &amp;quot;Interrupteur connect\u00e9&amp;quot;,&lt;br /&gt;
        &amp;quot;id&amp;quot;: &amp;quot;bf256839cbc866aa26yeyc&amp;quot;,&lt;br /&gt;
        &amp;quot;key&amp;quot;: &amp;quot;&amp;lt;UfC-OoB&amp;gt;RVu=@t&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;mac&amp;quot;: &amp;quot;d8:1f:12:98:93:58&amp;quot;,&lt;br /&gt;
        &amp;quot;uuid&amp;quot;: &amp;quot;ec7b74129b6b536c&amp;quot;,&lt;br /&gt;
        &amp;quot;sn&amp;quot;: &amp;quot;TXWDC05ME002D9&amp;quot;,&lt;br /&gt;
        &amp;quot;category&amp;quot;: &amp;quot;kg&amp;quot;,&lt;br /&gt;
        &amp;quot;product_name&amp;quot;: &amp;quot;Wall switch&amp;quot;,&lt;br /&gt;
        &amp;quot;product_id&amp;quot;: &amp;quot;bkmg3ht7emkqwv91&amp;quot;,&lt;br /&gt;
        &amp;quot;biz_type&amp;quot;: 18,&lt;br /&gt;
        &amp;quot;model&amp;quot;: &amp;quot;WIFIWS10WT&amp;quot;,&lt;br /&gt;
        &amp;quot;sub&amp;quot;: false,&lt;br /&gt;
        &amp;quot;icon&amp;quot;: &amp;quot;https://images.tuyaeu.com/smart/icon/ay1513237774906SMBA3/456c398229a72ede67a148535fd2a5ab.png&amp;quot;,&lt;br /&gt;
        &amp;quot;mapping&amp;quot;: {&lt;br /&gt;
            &amp;quot;1&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Boolean&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {}&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;7&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;countdown_1&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Integer&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;unit&amp;quot;: &amp;quot;s&amp;quot;,&lt;br /&gt;
                    &amp;quot;min&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;max&amp;quot;: 86400,&lt;br /&gt;
                    &amp;quot;scale&amp;quot;: 0,&lt;br /&gt;
                    &amp;quot;step&amp;quot;: 1&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;14&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;relay_status&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;Enum&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: {&lt;br /&gt;
                    &amp;quot;range&amp;quot;: [&lt;br /&gt;
                        &amp;quot;power_off&amp;quot;,&lt;br /&gt;
                        &amp;quot;power_on&amp;quot;,&lt;br /&gt;
                        &amp;quot;last&amp;quot;&lt;br /&gt;
                    ]&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;17&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;cycle_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;18&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;random_time&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;19&amp;quot;: {&lt;br /&gt;
                &amp;quot;code&amp;quot;: &amp;quot;switch_inching&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;String&amp;quot;,&lt;br /&gt;
                &amp;quot;values&amp;quot;: &amp;quot;{}&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;ip&amp;quot;: &amp;quot;172.16.8.105&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;3.3&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11350</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11350"/>
		<updated>2026-01-25T09:02:38Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Analyse du trafic en utilisant wireshark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;br /&gt;
&lt;br /&gt;
== '''&amp;lt;big&amp;gt;Objet : Interrupteur connecté&amp;lt;/big&amp;gt;''' ==&lt;br /&gt;
L'objectif de cette partie du TP est d'analyser la communication réseau entre un smart wall switch et un téléphone (l'application nedis smartlife) afin de comprendre le trajet des paquets et les protocoles utilisés. Pour essayer de forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur sans passer par l'application.&lt;br /&gt;
&lt;br /&gt;
l'Interrupteur peut être commandé à distance par l'application mobile Nedis Smart Life pour l'éteindre ou allumer, j'ai fait les tests avec mon telephone et la VM android --&amp;gt; réussi.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Analyse du trafic en utilisant wireshark&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ===&lt;br /&gt;
J'ai identifié l'adresse IP et mac de l'interrupteur connecté :&lt;br /&gt;
&lt;br /&gt;
    IP : 172.16.8.105&lt;br /&gt;
&lt;br /&gt;
    MAC : d8:1f:12:98:93:58&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, j'ai procédé à plusieurs captures avec différents filtres pour comprendre la communication.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.105.'''&lt;br /&gt;
&lt;br /&gt;
J'ai observé du trafic UDP en broadcast vers 255.255.255.255 sur le port 6667. L'interrupteur envoie des annonces périodiques, toutes les ~5 secondes contenant la signature 000055aa et son état actuel chiffré.&lt;br /&gt;
&lt;br /&gt;
le '''0055aa''' corrrespond à la signature Tuya: le header fixé par le protocole de communication qu'utilise Tuya.&lt;br /&gt;
[[Fichier:Trafic.png|centré|vignette|624x624px]]&lt;br /&gt;
Filtre : '''ip.addr == 172.16.8.105 &amp;amp;&amp;amp; ip.addr == 172.16.8.104''' &lt;br /&gt;
&lt;br /&gt;
Communication directe téléphone ↔ interrupteur&lt;br /&gt;
&lt;br /&gt;
Aucun paquet capturé. Ce qui est normal ca indique qu'il n'existe aucune communication directe entre le téléphone et l'interrupteur sur le réseau local. Toutes les&lt;br /&gt;
&lt;br /&gt;
commandes passent par les serveurs cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.104'''&lt;br /&gt;
&lt;br /&gt;
'''172.16.8.104''' est l'adresse IP de la machine Android VM ou j'éxécute l'application Nedis Smart Life.&lt;br /&gt;
[[Fichier:Capture trames.png|centré|vignette|927x927px]]&lt;br /&gt;
Ce filtre permet de capturer l'ensemble de l'activité réseau du téléphone, notamment les connexions HTTPS/TLS établies vers les serveurs cloud Tuya, les paquets &amp;quot;Application Data&amp;quot; chiffrés contenant les commandes d'allumage et d'extinction, ainsi que les confirmations renvoyées par les serveurs. J'ai pu identifier que toutes les commandes transitent par des serveurs AWS localisés en Europe (3.78.92.3, 18.194.10.142, 193.48.57.31), communiquant sur le port 443 via le protocole HTTPS, révélant ainsi une architecture entièrement basée sur le cloud.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Utilisation de TinyTuya pour l’analyse de la communication ON/OFF&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
Dans ce TP, j'ai utilisé l’outil TinyTuya afin d’analyser la communication entre le Smart Wall Switch Tuya et le téléphone lors des commandes ON / OFF.&lt;br /&gt;
&lt;br /&gt;
TinyTuya est une bibliothèque Python qui permet de communiquer localement avec des appareils Tuya (sans passer par le cloud), en utilisant le protocole Tuya LAN. Elle permet notamment de découvrir les appareils sur le réseau, de récupérer leurs informations et d’envoyer des commandes (ON/OFF).&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11349</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=11349"/>
		<updated>2026-01-25T09:00:36Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Deuxième tentative */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;br /&gt;
&lt;br /&gt;
== '''&amp;lt;big&amp;gt;Objet : Interrupteur connecté&amp;lt;/big&amp;gt;''' ==&lt;br /&gt;
L'objectif de cette partie du TP est d'analyser la communication réseau entre un smart wall switch et un téléphone (l'application nedis smartlife) afin de comprendre le trajet des paquets et les protocoles utilisés. Pour essayer de forger mon propre paquet qui permet d'allumer/éteindre l'interrupteur sans passer par l'application.&lt;br /&gt;
&lt;br /&gt;
l'Interrupteur peut être commandé à distance par l'application mobile Nedis Smart Life pour l'éteindre ou allumer, j'ai fait les tests avec mon telephone et la VM android --&amp;gt; réussi.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Analyse du trafic en utilisant wireshark&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ===&lt;br /&gt;
J'ai identifié l'adresse IP et mac de l'interrupteur connecté :&lt;br /&gt;
&lt;br /&gt;
    IP : 172.16.8.105&lt;br /&gt;
&lt;br /&gt;
    MAC : d8:1f:12:98:93:58&lt;br /&gt;
&lt;br /&gt;
Sur wireshark, j'ai procédé à plusieurs captures avec différents filtres pour comprendre la communication.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.105.'''&lt;br /&gt;
&lt;br /&gt;
J'ai observé du trafic UDP en broadcast vers 255.255.255.255 sur le port 6667. L'interrupteur envoie des annonces périodiques, toutes les ~5 secondes contenant la signature 000055aa et son état actuel chiffré.&lt;br /&gt;
&lt;br /&gt;
le '''0055aa''' corrrespond à la signature Tuya: le header fixé par le protocole de communication qu'utilise Tuya.&lt;br /&gt;
[[Fichier:Trafic.png|centré|vignette|624x624px]]&lt;br /&gt;
Filtre : '''ip.addr == 172.16.8.105 &amp;amp;&amp;amp; ip.addr == 172.16.8.104''' &lt;br /&gt;
&lt;br /&gt;
Communication directe téléphone ↔ interrupteur&lt;br /&gt;
&lt;br /&gt;
Aucun paquet capturé. Ce qui est normal ca indique qu'il n'existe aucune communication directe entre le téléphone et l'interrupteur sur le réseau local. Toutes les&lt;br /&gt;
&lt;br /&gt;
commandes passent par les serveurs cloud Tuya.&lt;br /&gt;
&lt;br /&gt;
Filtre utilisé : '''ip.addr == 172.16.8.104'''&lt;br /&gt;
&lt;br /&gt;
'''172.16.8.104''' est l'adresse IP de la machine Android VM ou j'éxécute l'application Nedis Smart Life.&lt;br /&gt;
[[Fichier:Capture trames.png|centré|vignette|927x927px]]&lt;br /&gt;
Ce filtre permet de capturer l'ensemble de l'activité réseau du téléphone, notamment les connexions HTTPS/TLS établies vers les serveurs cloud Tuya, les paquets &amp;quot;Application Data&amp;quot; chiffrés contenant les commandes d'allumage et d'extinction, ainsi que les confirmations renvoyées par les serveurs. J'ai pu identifier que toutes les commandes transitent par des serveurs AWS localisés en Europe (3.78.92.3, 18.194.10.142, 193.48.57.31), communiquant sur le port 443 via le protocole HTTPS, révélant ainsi une architecture entièrement basée sur le cloud.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Capture_trames.png&amp;diff=11348</id>
		<title>Fichier:Capture trames.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Capture_trames.png&amp;diff=11348"/>
		<updated>2026-01-25T08:57:51Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;activ reseau&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Trafic.png&amp;diff=11347</id>
		<title>Fichier:Trafic.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Trafic.png&amp;diff=11347"/>
		<updated>2026-01-25T08:53:23Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;UDP_broadcast&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10929</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10929"/>
		<updated>2025-12-13T10:11:33Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* APK utilisé pour Nedis smartLife : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife ''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;br /&gt;
&lt;br /&gt;
===== Deuxième tentative =====&lt;br /&gt;
J'ai opté pour une méthode alternative : créer un module Magisk permettant d’injecter automatiquement le certificat dans le système au démarrage. Cette approche contourne la protection en lecture seule (dm-verity) puisqu’un module Magisk monte un overlay persistant au boot.&lt;br /&gt;
&lt;br /&gt;
Utilisation de module magisk --&amp;gt; réussie. Le certificat est ajoutée avec succès et mon site github.com est bien redirigé.&lt;br /&gt;
[[Fichier:Github redirigé.png|néant|vignette]]&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Github_redirig%C3%A9.png&amp;diff=10928</id>
		<title>Fichier:Github redirigé.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=Fichier:Github_redirig%C3%A9.png&amp;diff=10928"/>
		<updated>2025-12-13T10:09:16Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mon site github.com est bien redirigé&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10927</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10927"/>
		<updated>2025-12-13T09:58:18Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : Installation android studio et certificat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : '''avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;'''.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Création de VM en utilisant Android studio&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Installation de Android studio =====&lt;br /&gt;
Pour le téléchargement d’Android Studio j'ai utilisé la dernière version depuis le site officiel. Une fois l’archive obtenue au format .tar.gz, je l’ai décompressée à l’aide de la commande '''tar -xvf android-studio-*.tar.gz''', ce qui a extrait l’environnement complet d’Android Studio. Comme il s’agit d’un logiciel installé manuellement, je l’ai ensuite déplacé dans le répertoire standard /'''opt'''.&lt;br /&gt;
&lt;br /&gt;
Pour lancer l'application : '''/opt/android-studio/bin/studio.sh'''&lt;br /&gt;
&lt;br /&gt;
Android Studio a téléchargé et installé les composants suivants : Android SDK Platform 30 et 36, Build-tools 36.1.0, Platform-tools, System Images, Sources Android.&lt;br /&gt;
&lt;br /&gt;
Tout le SDK a été installé dans le répertoire : '''/home/crhanim/android/'''&lt;br /&gt;
&lt;br /&gt;
===== Création d'un nouvel AVD. =====&lt;br /&gt;
Dans Android Studio : Ouverture du Device Manager : Tools → Device Manager&lt;br /&gt;
&lt;br /&gt;
Création d’un nouvel appareil virtuel :&lt;br /&gt;
&lt;br /&gt;
Category : Phone&lt;br /&gt;
&lt;br /&gt;
Device choisi : Pixel 4&lt;br /&gt;
&lt;br /&gt;
System Image : Android 10 (API 29)&lt;br /&gt;
&lt;br /&gt;
Pour un premier essai, j’ai choisi une image ARM pour créer mon appareil virtuel. Cependant, un problème est survenu lors du lancement de l’AVD :&lt;br /&gt;
&lt;br /&gt;
« AVD's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host ».&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Solution :&amp;lt;/u&amp;gt;'''  J’ai finalement opté pour une image x86_64 (Google APIs x86_64), qui est pleinement prise en charge par l’émulateur.&lt;br /&gt;
&lt;br /&gt;
Après ce changement, j’ai pu finaliser la configuration et créer correctement l’AVD.&lt;br /&gt;
&lt;br /&gt;
===== '''APK utilisé pour Nedis smartLife :''' =====&lt;br /&gt;
Pour installer l'application de l'objet connecté, j'ai utilisé le lien suivant : &amp;lt;nowiki&amp;gt;https://nedis-smartlife.en.aptoide.com/app&amp;lt;/nowiki&amp;gt; .Cette fois ci l'application se lance correctement.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Ajout de certificat dans la VM:&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
&lt;br /&gt;
===== Première tentative : =====&lt;br /&gt;
Pour obtenir un accès root sur l’émulateur, j'ai installé l'outil Magisk, lien d'installation: &amp;lt;nowiki&amp;gt;https://gitlab.com/newbit/rootAVD&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
les commandes utilisées pour mettre le certificat sur la VM :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
adb root&lt;br /&gt;
adb shell avbctl disable-verification&lt;br /&gt;
adb reboot&lt;br /&gt;
adb wait-for-device root&lt;br /&gt;
adb remount&lt;br /&gt;
adb push 9ab369ad.0 /system/etc/security/cacerts&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cependant, la commande adb push échoue : Erreur d’accès : le répertoire est en lecture seule (Read-only file system).&lt;br /&gt;
&lt;br /&gt;
Même après adb remount, la partition /system reste non modifiable.&lt;br /&gt;
&lt;br /&gt;
Pour contourner ce problème, j’ai tenté de relancer l’émulateur en mode système modifiable avec la commande :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;nom_avd&amp;gt; -writable-system -gpu swiftshader_indirect -no-snapshot -no-boot-anim &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ce lancement permet bien de modifier temporairement /system, mais il ne force pas un redémarrage propre de l’AVD. Donc le certificat est ajouté uniquement en mémoire, et disparaît dès que l’AVD est redémarré, et les modifications ne sont pas persistées sur l’image système.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10926</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10926"/>
		<updated>2025-12-13T09:40:40Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Machine virtuelle Android : 03/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;''&amp;lt;u&amp;gt;Tentative installation VM en utilisant QEMU&amp;lt;/u&amp;gt;''&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;&amp;lt;u&amp;gt;''Configuration Wifi pour connecter la VM : 04/'''''11'''&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode DHCP pour se connecter automatiquement au réseau WiFi avec le SSID “SE5-crhanim”, et une sécurité WPA2-PSK.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;ip link set bridge down&lt;br /&gt;
&lt;br /&gt;
/etc/network/interfaces&lt;br /&gt;
&lt;br /&gt;
iface wlan1 inet dhcp&lt;br /&gt;
  wpa-ssid SE5-crhanim&lt;br /&gt;
  wpa-key-mgmt WPA-PSK&lt;br /&gt;
  wpa-psk Chaymae08&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Lors de cette configuration, la connexion échouait malgré une détection correcte du réseau. La cause était l’absence du paquet wpa_supplicant, nécessaire pour l’authentification sur les réseaux Wi-Fi sécurisés.&lt;br /&gt;
&lt;br /&gt;
L’installation du paquet avec la commande suivante m'a permis de résoudre le problème : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
sudo apt install wpasupplicant&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Problèmes rencontrés&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;'' ====&lt;br /&gt;
L’installation de l’application Nedis Smart Life, utilisée pour gérer l’objet connecté, s’est déroulée avec succès. Cependant, une erreur est survenue lors de son lancement sur la machine android virtuelle.&lt;br /&gt;
&lt;br /&gt;
==== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Tentative installation de Android x86_64 en utilisant les commandes du Dockerfile&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ====&lt;br /&gt;
Les étapes réalisées (sur zabeth08 et sans Docker ) :&lt;br /&gt;
&lt;br /&gt;
* Installation des dépendances nécessaires (OpenJDK, outils de compilation, librairies graphiques).&lt;br /&gt;
* Téléchargement des Android Command Line Tools.&lt;br /&gt;
* Configuration des variables d’environnement Android (ANDROID_HOME, ANDROID_SDK_ROOT).&lt;br /&gt;
* Installation des composants du SDK Android via sdkmanager (platform-tools, emulator, images système Android 30).&lt;br /&gt;
* Création d’un AVD avec avdmanager : avdmanager create avd -n test_avd -k &amp;quot;system-images;android-30;google_apis;x86_64&amp;quot;.&lt;br /&gt;
* Tentative de lancement de l’émulateur Android en ligne de commande.&lt;br /&gt;
&lt;br /&gt;
L’objectif est de faire tourner un émulateur Android directement sur la VM pour pouvoir utiliser l’application associée à l’objet connecté. Toutefois, l’appareil virtuel lancé présentait de nombreux dysfonctionnements et manquait de stabilité, rendant impossible l’utilisation correcte du téléphone.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10732</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10732"/>
		<updated>2025-11-07T21:31:33Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Sécurisation WiFi par WPA2-PSK : 29/09 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
La connexion au point d’accès s’effectue via le '''port série''' depuis la '''machine hôte''' à l’aide de '''Minicom'''. L’objectif est de configurer les paramètres du WiFi : '''SSID''', '''chiffrement''' et '''VLAN'''.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration du SSID au VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#'''sh dot11 bssid'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration du serveur DHCP&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Dans la machine virtuelle, j'ai configuré le fichier  :  '''/etc/dhcp/dhcpd.conf''' pour définir le réseau du VLAN 408 (172.16.8.0/24). Le serveur attribue automatiquement des adresses IP comprises entre '''172.16.8.100''' et '''172.16.8.200''' aux clients WiFi.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
'''sysctl -p /etc/sysctl.conf''' : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Implémentation du serveur DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Mise en place de la mascarade sur le serveur virtuel&amp;lt;/big&amp;gt; 03/10 ====&lt;br /&gt;
Pour permettre aux machines du '''VLAN 408 (172.16.8.0/24)''' d’accéder à Internet via le serveur virtuel, j'ai ajouté une '''règle de mascarade''' avec '''iptables:'''  &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette règle remplace l’adresse source des paquets sortants par celle du serveur, assurant ainsi la traduction d’adresses (NAT).&lt;br /&gt;
&lt;br /&gt;
L’état de la table NAT peut être vérifié avec la commande &amp;lt;code&amp;gt;iptables -t nat -L -v&amp;lt;/code&amp;gt;, qui affiche la règle de '''POSTROUTING''' active :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Cette configuration permet aux clients connectés au WiFi du VLAN 408 de naviguer sur Internet à travers le serveur virtuel.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai modifié la configuration de '''BIND''' sur le serveur virtuel. Dans le fichier '''/etc/bind/named.conf.local''', une nouvelle zone a été ajoutée pour le domaine '''github.com''' :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
J'ai ajouté une règle iptables pour rediriger le trafic TCP vers un port local.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;La VM se connecte à Internet en utilisant la connexion du PC hôte, et elle ne détecte pas les WiFi disponible. Pour résoudre ce problème, nous avons modifié le fichier de configuration de la zabeth pour la connecter au wifi.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Configuration Wifi pour connecter la VM : 04/11&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Pour cela, j'ai modifié le fichier /etc/network/interfaces. L'interface wlan1 est configurée en mode '''DHCP''' pour se connecter automatiquement au réseau WiFi avec le '''SSID “SE5-crhanim”,''' et une sécurité WPA2-PSK.&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10731</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10731"/>
		<updated>2025-11-06T19:16:44Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Serveur Apache sécurisé: 03/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;'''Interception de flux:03/10'''&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Commande utilisée pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier '''etc/apache2/sites-available/site-github.conf''' &lt;br /&gt;
&lt;br /&gt;
Mise en place d’un hôte virtuel HTTPS sur le port 443 avec le certificat auto-signé et redirection automatique du HTTP (port 80) vers le HTTPS.&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour activer la configuration du site et recharger Apache : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;big&amp;gt;&amp;lt;u&amp;gt;Machine virtuelle Android : 03/11&amp;lt;/u&amp;gt;&amp;lt;/big&amp;gt;''''' ===&lt;br /&gt;
La redirection HTTPS est bloquée par les '''certificats X509'''. Comme il est difficile d’ajouter des certificats sur un téléphone moderne, une solution consiste à utiliser une '''machine virtuelle Android''' d'une ancienne version, sur laquelle il est possible d’ajouter les certificats nécessaires.&lt;br /&gt;
&lt;br /&gt;
Pour l'installation de la VM sur PC en utilisant QEMU , j'ai suivi le tutoriel de ce site : https://help.clouding.io/hc/en-us/articles/4405454393756-How-to-virtualize-Android-with-QEMU-KVM. Pour la version, j'ai pris la version android 6.&lt;br /&gt;
&lt;br /&gt;
Après installation j'ai lancé la VM en utilisant cette commande : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 &lt;br /&gt;
    -enable-kvm -drive file=~/VM_androidv6.img,format=qcow2 &lt;br /&gt;
    -cdrom ~/Downloads/android-x86_64-6.0-r1.iso &lt;br /&gt;
    -boot d -net nic -net user -display sdl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10730</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10730"/>
		<updated>2025-11-06T18:30:43Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Création et configuration de la VM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;Interception de flux:03/10&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration HTTPs pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier etc/apache2/sites-available/site-github.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10729</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10729"/>
		<updated>2025-11-06T18:28:26Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Serveur Virtuel : */ organisation en sous titres&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==                                                                                        &amp;lt;big&amp;gt;'''Infrastructure Réseau 2025/2026'''&amp;lt;/big&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L’objectif de cette partie est de mettre en place une '''infrastructure réseau''' intégrant un '''serveur virtuel''' sur Capbreton, connecté au réseau '''''bridgeStudents'''''. Ce serveur héberge les services '''DHCP''', '''DNS''' et une '''mascarade (NAT)''' afin d’assurer la connectivité et l’accès Internet des clients. Ajout d'une '''seconde interface réseau''' au serveur dans le '''VLAN 408''', appartenant au sous-réseau '''172.16.8.0/24.'''&lt;br /&gt;
&lt;br /&gt;
La mise en place d'une '''sécurisation WiFi par WPA2-PSK''' pour garantir un accès protégé, et des tests ont été réalisés pour vérifier la visibilité du SSID, la connexion WiFi, la distribution d’adresses IP et l’accès à Internet.&lt;br /&gt;
&lt;br /&gt;
=== ''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Virtuel : 17/09&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;'' ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Création et configuration de la VM&amp;lt;/big&amp;gt;  ====&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== '''&amp;lt;big&amp;gt;Ajout de l'interface dans le VLAN408&amp;lt;/big&amp;gt;''' ====&lt;br /&gt;
Configuration de l'interface privé VLAN408 (eth1):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérifications avec '''ip a :'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: dans le fichier de configuration de ma VM : '''etc/xen/SE5-crhanim.cfg'''&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;'''''&amp;lt;big&amp;gt;Sécurisation WiFi par WPA2-PSK : 29/09&amp;lt;/big&amp;gt;'''''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;u&amp;gt;''&amp;lt;big&amp;gt;Interception de flux:03/10&amp;lt;/big&amp;gt;''&amp;lt;/u&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection par DNS&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;big&amp;gt;Redirection réseau&amp;lt;/big&amp;gt; ====&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''''&amp;lt;u&amp;gt;&amp;lt;big&amp;gt;Serveur Apache sécurisé: 03/11&amp;lt;/big&amp;gt;&amp;lt;/u&amp;gt;''''' ===&lt;br /&gt;
&lt;br /&gt;
Pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration HTTPs pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier etc/apache2/sites-available/site-github.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10719</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10719"/>
		<updated>2025-11-03T14:18:22Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Redirection réseau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interception de flux ==&lt;br /&gt;
&lt;br /&gt;
=== Redirection par DNS ===&lt;br /&gt;
&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirection réseau ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Serveur Apache sécurisé ==&lt;br /&gt;
Pour générer le certificat auto-signé  :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
openssl req -x509 -nodes -days 365 \&lt;br /&gt;
  -newkey rsa:2048 \&lt;br /&gt;
  -keyout /etc/ssl/apache/apache-selfsigned.key \&lt;br /&gt;
  -out /etc/ssl/apache/apache-selfsigned.crt \&lt;br /&gt;
  -subj &amp;quot;/C=FR/ST=Nord/L=Lille/O=Polytech/CN=github.com&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Configuration HTTPs pour Apache :&lt;br /&gt;
&lt;br /&gt;
j'ai mis la configuration dans le fichier etc/apache2/sites-available/site-github.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:443&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
&lt;br /&gt;
    DocumentRoot /var/www/html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SSLEngine on&lt;br /&gt;
    SSLCertificateFile /etc/ssl/apache/apache-selfsigned.crt&lt;br /&gt;
    SSLCertificateKeyFile /etc/ssl/apache/apache-selfsigned.key&lt;br /&gt;
&lt;br /&gt;
    ErrorLog ${APACHE_LOG_DIR}/github-error.log&lt;br /&gt;
    CustomLog ${APACHE_LOG_DIR}/github-access.log combined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
    ServerName github.com&lt;br /&gt;
    Redirect permanent / https://github.com/&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
a2ensite site-github.conf&lt;br /&gt;
service apache2 reload&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
:~#ss -tlnp | grep 443&lt;br /&gt;
LISTEN 0      128                *:443             *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=6),(&amp;quot;apache2&amp;quot;,pid=1484,fd=6),(&amp;quot;apache2&amp;quot;,pid=1481,fd=6))&lt;br /&gt;
:~# ss -tlnp | grep 80&lt;br /&gt;
LISTEN 0      128                *:80              *:*    users:((&amp;quot;apache2&amp;quot;,pid=1485,fd=4),(&amp;quot;apache2&amp;quot;,pid=1484,fd=4),(&amp;quot;apache2&amp;quot;,pid=1481,fd=4))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026&amp;diff=10717</id>
		<title>SE5 IdO sécurité des objets 2025/2026</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026&amp;diff=10717"/>
		<updated>2025-11-03T13:24:08Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Répartition des binômes pour le module de sécurité des objets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Infrastructure réseau pour 2025/2026 =&lt;br /&gt;
&lt;br /&gt;
== Serveur virtuel ==&lt;br /&gt;
&lt;br /&gt;
Créez un serveur virtuel sur &amp;lt;code&amp;gt;capbreton&amp;lt;/code&amp;gt; par binôme. Préfixez le nom du serveur par &amp;lt;code&amp;gt;SE5-&amp;lt;/code&amp;gt;. Le serveur doit avoir une unique interface dans le commutateur virtuel &amp;lt;code&amp;gt;bridgeStudents&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Prenez une adresse IPv4 à partir de &amp;lt;code&amp;gt;172.26.145.100&amp;lt;/code&amp;gt; et utilisez, comme routeur, l'adresse IPv4 &amp;lt;code&amp;gt;172.26.145.251&amp;lt;/code&amp;gt;. Le routeur à cette adresse est configuré pour faire passer vos machines par un dispositif de type mascarade.&lt;br /&gt;
&lt;br /&gt;
Par la suite ajoutez à votre serveur une interface dans le VLAN &amp;lt;code&amp;gt;400+X&amp;lt;/code&amp;gt; numérotée dans le sous-réseau IPv4 &amp;lt;code&amp;gt;172.16.X.0/24&amp;lt;/code&amp;gt;. Bien entendu &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; est différent d'un binôme à l'autre (et &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&amp;gt;1).&lt;br /&gt;
&lt;br /&gt;
== Point d'accès WiFi ==&lt;br /&gt;
&lt;br /&gt;
Installez un ou plusieurs point d'accès WiFi Cisco sur un port de commutateur en mode trunk. Tentez d'associer une adresse d'administration à ce point d'accès dans le VLAN 50 (adresse d'administration en &amp;lt;code&amp;gt;172.26.145.Y&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&lt;br /&gt;
Créez un SSID associé à votre VLAN et configuré pour une identification par WPA2-PSK.&lt;br /&gt;
&lt;br /&gt;
De plus implantez les services suivant sur votre serveur virtuel :&lt;br /&gt;
* configuration par DHCP pour les clients WiFi, utilisez les adresses d'octet de poids faible &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; à &amp;lt;code&amp;gt;200&amp;lt;/code&amp;gt; du réseau IPv4 de votre VLAN privé. Donner l'adresse de votre machine mandataire comme routeur par défaut et comme serveur DNS ;&lt;br /&gt;
* Implanter un serveur DNS minimal sur votre serveur virtuel (DNS transitaire ou DNS forwarder en patoi) ;&lt;br /&gt;
* Implanter une mascarade sur votre serveur virtuel entre votre VLAN privé et le routeur du réseau des salles de projets.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez tester la visibilité de votre SSID, l'identification WiFi, le serveur DHCP et enfin l'accès à Internet en utilisant votre téléphone portable ou la carte WiFi des zabeth.&lt;br /&gt;
&lt;br /&gt;
= Interception de flux =&lt;br /&gt;
&lt;br /&gt;
L'étude d'applications mobiles peut passer par la redirection de flux TCP pour de la rétro-ingénierie. Deux voies sont possibles, une redirection par DNS ou une redirection de flux TCP vers un port local.&lt;br /&gt;
&lt;br /&gt;
== Redirection par DNS ==&lt;br /&gt;
&lt;br /&gt;
Ajoutez une zone primaire à votre serveur DNS avec le nom Internet que vous souhaitez rediriger vers votre machine locale.&lt;br /&gt;
&lt;br /&gt;
== Redirection réseau ==&lt;br /&gt;
&lt;br /&gt;
Ajoutez des règles &amp;lt;code&amp;gt;iptables&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;nftables&amp;lt;/code&amp;gt; pour rediriger un flux TCP vers un port local.&lt;br /&gt;
&lt;br /&gt;
== Serveur apache sécurisé ==&lt;br /&gt;
&lt;br /&gt;
En régle générale, c'est un flux HTTPS que vous souhaitez rediriger, vous avez donc besoin d'un serveur Web local en mode sécurisé (HTTPS).&lt;br /&gt;
&lt;br /&gt;
= Machine virtuelle &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
La redirection de flux HTTPS est problématique à cause de la protection par certificat X509. Pour contourner cette protection, une solution consiste à ajouter des autorités de certification sur l'appareil où l'application mobile est installée. Pour ce faire il est probable qu'il faille un contrôle important sur l'OS de l'appareil. Comme vous pouvez rechigner à rooter votre mobile, une machine virtuelle &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt; semble adaptée. &lt;br /&gt;
&lt;br /&gt;
Il vous est proposé de tester de créer une machine virtuelle &amp;lt;code&amp;gt;android&amp;lt;/code&amp;gt; soit par émulation d'un ARM en utilisant &amp;lt;code&amp;gt;QEMU&amp;lt;/code&amp;gt; sur un PC ordinaire soit en utilisant &amp;lt;code&amp;gt;KVM&amp;lt;/code&amp;gt; sur une Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
= Répartition des binômes pour le module de sécurité des objets =&lt;br /&gt;
&lt;br /&gt;
Donnez les élèves dans chaque binôme.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Binôme !! Elèves !! Nom du serveur virtuel !! N° du VLAN&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b1 | Cahier b1]] || Victorien Détrez || SE5-serveur || n°410&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b2 | Cahier b2]] || Kaoutar El Bachiri || SE5-kelbachi || n°409&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b3 | Cahier b3]] || Heriniaina Raissa Andrianirintsoa || SE5-serveur || n°&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b4 | Cahier b4]] || Abdel Zongo || SE5-serveur || n°&lt;br /&gt;
|-&lt;br /&gt;
| [[SE5 IdO sécurité des objets 2025/2026 b5 | Cahier b5]] || Chaymae Rhanim || SE5-serveur || n°408&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10466</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10466"/>
		<updated>2025-10-03T10:43:42Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Redirection réseau */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interception de flux ==&lt;br /&gt;
&lt;br /&gt;
=== Redirection par DNS ===&lt;br /&gt;
&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirection réseau ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -L -n -v&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
    0     0 REDIRECT   6    --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8080&lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10465</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10465"/>
		<updated>2025-10-03T10:36:38Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Redirection par DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interception de flux ==&lt;br /&gt;
&lt;br /&gt;
=== Redirection par DNS ===&lt;br /&gt;
&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Redirection réseau ===&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10464</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10464"/>
		<updated>2025-10-03T10:34:57Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : /* Redirection par DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Redirection par DNS ==&lt;br /&gt;
Modification de /etc/bind/named.conf.local&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
//&lt;br /&gt;
// Do any local configuration here&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
// Consider adding the 1918 zones here, if they are not used in your&lt;br /&gt;
// organization&lt;br /&gt;
//include &amp;quot;/etc/bind/zones.rfc1918&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
zone &amp;quot;github.com&amp;quot;{&lt;br /&gt;
        type master;&lt;br /&gt;
        file &amp;quot;/etc/bind/db.github.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;création de la zone db.github.com&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
$TTL    604800&lt;br /&gt;
@       IN      SOA     ns.github.com. admin.github.com. (&lt;br /&gt;
                            1         ; 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;
;&lt;br /&gt;
@       IN      NS      ns.github.com.&lt;br /&gt;
ns      IN      A       172.16.8.1&lt;br /&gt;
@       IN      A       172.16.8.1&lt;br /&gt;
www   IN            A       172.16.8.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10463</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10463"/>
		<updated>2025-10-03T10:30:44Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Redirection par DNS ==&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10462</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10462"/>
		<updated>2025-10-03T09:47:07Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;br /&gt;
&lt;br /&gt;
Pour implémenter un serveur DNS, dans le fichier &amp;lt;code&amp;gt;/etc/bind/named.conf.options :&amp;lt;/code&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
        directory &amp;quot;/var/cache/bind&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        recursion yes;&lt;br /&gt;
        allow-query {172.16.8.0/24; 127.0.0.1;};&lt;br /&gt;
        &lt;br /&gt;
        forwarders {&lt;br /&gt;
                8.8.8.8;&lt;br /&gt;
                1.1.1.1;&lt;br /&gt;
         };&lt;br /&gt;
        dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
        listen-on { 127.0.0.1; 172.16.8.1; };&lt;br /&gt;
        listen-on-v6 { none; };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour implémenter une mascarade sur le serveur virtuel : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
iptables -t nat -A POSTROUTING -j MASQUERADE -s 172.16.8.0/24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
&lt;br /&gt;
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination         &lt;br /&gt;
  122 51438 MASQUERADE  0    --  *      *       172.16.8.0/24        0.0.0.0/0   &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10452</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10452"/>
		<updated>2025-09-29T11:00:46Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.0&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans /etc/sysctl.conf : j'ai décommenté la ligne : net.ipv4.ip_forward=1&lt;br /&gt;
&lt;br /&gt;
sysctl -p /etc/sysctl.conf : pour recharger '''configuration sysctl.'''&lt;br /&gt;
&lt;br /&gt;
sysctl net.ipv4.ip_forward : pour vérifier&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10449</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10449"/>
		<updated>2025-09-29T10:45:19Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.0&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;dans la VM  :  /etc/dhcp/dhcpd.conf&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
subnet 172.16.8.0 netmask 255.255.255.0 {&lt;br /&gt;
  range 172.16.8.100 172.16.8.200;&lt;br /&gt;
  option routers 172.16.8.1;&lt;br /&gt;
  #option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;&lt;br /&gt;
  option domain-name-servers 172.16.8.1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
	<entry>
		<id>https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10446</id>
		<title>SE5 IdO sécurité des objets 2025/2026 b5</title>
		<link rel="alternate" type="text/html" href="https://wiki-se.plil.fr/mediawiki/index.php?title=SE5_IdO_s%C3%A9curit%C3%A9_des_objets_2025/2026_b5&amp;diff=10446"/>
		<updated>2025-09-29T10:18:07Z</updated>

		<summary type="html">&lt;p&gt;Crhanim : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Serveur Virtuel : ==&lt;br /&gt;
Pour créer la VM : xen-create-image --hostname=SE5-crhanim --dhcp --dir=/usr/local/xen --size=20Gb --memory=2048mb  --dist=daedalus --bridge=bridgeStudents&lt;br /&gt;
&lt;br /&gt;
Configuration réseau de la VM  : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# This file describes the network interfaces available on your system&lt;br /&gt;
# and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
&lt;br /&gt;
# The loopback network interface&lt;br /&gt;
auto lo&lt;br /&gt;
iface lo inet loopback&lt;br /&gt;
&lt;br /&gt;
# The primary network interface&lt;br /&gt;
auto eth0&lt;br /&gt;
iface eth0 inet static&lt;br /&gt;
        address 172.26.145.108&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        gateway 172.26.145.251&lt;br /&gt;
        dsn-nameservers 172.26.145.251&lt;br /&gt;
# post-up ethtool -K eth0 tx off&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vérification : &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ping 8.8.8.8&lt;br /&gt;
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=5.72 ms&lt;br /&gt;
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=6.27 ms&lt;br /&gt;
^C&lt;br /&gt;
--- 8.8.8.8 ping statistics ---&lt;br /&gt;
3 packets transmitted, 3 received, 0% packet loss, time 2004ms&lt;br /&gt;
rtt min/avg/max/mdev = 5.717/5.901/6.267/0.258 ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Ajout d'une interface dans le VLAN 408 :&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#VLAN 408&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
        address 172.16.8.0&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
#&lt;br /&gt;
# The commented out line above will disable TCP checksumming which&lt;br /&gt;
# might resolve problems for some users.  It is disabled by default&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ip a&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&lt;br /&gt;
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
    inet 127.0.0.1/8 scope host lo&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 ::1/128 scope host&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:83 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.26.145.108/24 brd 172.26.145.255 scope global eth0&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 2001:660:4401:6050:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 989sec preferred_lft 889sec&lt;br /&gt;
    inet6 2a01:c916:2047:c850:216:3eff:fed7:3083/64 scope global dynamic mngtmpaddr&lt;br /&gt;
       valid_lft 2591989sec preferred_lft 604789sec&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3083/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
3: eth1: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000&lt;br /&gt;
    link/ether 00:16:3e:d7:30:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
    inet 172.16.8.0/24 brd 172.16.8.255 scope global eth1&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
    inet6 fe80::216:3eff:fed7:3084/64 scope link&lt;br /&gt;
       valid_lft forever preferred_lft forever&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sur Capbreton: etc/xen/SE5-crhanim.cfg&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
#  Networking&lt;br /&gt;
#&lt;br /&gt;
dhcp        = 'dhcp'&lt;br /&gt;
vif         = [ 'mac=00:16:3E:D7:30:83,bridge=bridgeStudents',&lt;br /&gt;
                'mac=00:16:3E:D7:30:84,bridge=g5_crhanim' ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Sur  /etc/network/interfaces.d/g5_crhanim&lt;br /&gt;
&lt;br /&gt;
Configuration de l'interface Vlan408 et bridge: g5_crhanim&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
auto Trunk.408&lt;br /&gt;
iface Trunk.408 inet manual&lt;br /&gt;
        vlan-raw-device Trunk&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
&lt;br /&gt;
auto g5_crhanim&lt;br /&gt;
iface g5_crhanim inet manual&lt;br /&gt;
        bridge_ports Trunk.408&lt;br /&gt;
        up ip link set $IFACE up&lt;br /&gt;
        down ip link set $IFACE down&lt;br /&gt;
        &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sécurisation WiFi par WPA2-PSK ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
dot11 ssid SE5-crhanim&lt;br /&gt;
  vlan 408&lt;br /&gt;
  authentication open&lt;br /&gt;
  authentication key-management wpa&lt;br /&gt;
  wpa-psk ascii 0 &amp;quot; &amp;quot;&lt;br /&gt;
  mbssid guest-mode&lt;br /&gt;
exit&lt;br /&gt;
interface Dot11Radio1&lt;br /&gt;
  encryption vlan 408 mode ciphers aes-ccm&lt;br /&gt;
  ssid SE5-crhanim&lt;br /&gt;
  mbssid&lt;br /&gt;
  no shutdown&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface Dot11Radio1.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&lt;br /&gt;
interface GigabitEthernet0.408&lt;br /&gt;
  encapsulation dot1Q 408&lt;br /&gt;
  bridge-group 8&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Pour vérifier : ap#sh dot11 bssid&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ap#sh dot11 bssid                                                               &lt;br /&gt;
Interface      BSSID         Guest  SSID                                        &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf0  Yes  SE5-azongo                                   &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf1  Yes  SE5-crhanim                                  &lt;br /&gt;
Dot11Radio1   04da.d2d1.4bf2  Yes  SE5-handrian      &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Crhanim</name></author>
	</entry>
</feed>