6
Resp. UE : P-F. Bonnefoi, http://p-fb.net/, «Réseaux avancés I–Projet» version du 5 janvier 2018, rédigé avec ConT E Xt – Don’t Panic ! 1/6 Master 1 ère année Réseaux avancés I Projet Réalisation d’un portail captif d’accès authentifié à Internet Présentation du projet Le but du projet est de mettre en place un portail captif permettant : à un poste d’un réseau privé d’accéder à Internet après s’être authentifié : le réseau privé sera défini dans l’adresse 10.10.10.0/24 ; les postes connectés seront configurés automatiquement à l’aide d’un serveur DHCP ; le service d’authentification choisi est celui de l’Université de Limoges utilisant CAS, « Central Authentication Service », et « LemonLDAP » ; l’interception des requêtes DNS (à destination du port 53 d’un serveur DNS) ; l’interception des connexions Web du poste (à destination du port 80 d’une machine située hors réseau local) ; On parlera de « proxy transparent » puisqu’il n’est pas nécessaire de configurer le navigateur pour être pris en charge. la redirection de ces connexions de ce poste vers un serveur réalisant ce portail d’accès : un formulaire de connexion, au format HTML, est retourné au client pour permettre la saisie du couple « login/mdp » ; une interrogation sécurisée par connexion SSL est réalisée vers le serveur cas.unilim.fr de l'Université pour vérifier l'existence du couple « login/mdp » : dans le cas d’un succès : l’accès du poste à Internet est autorisé ; dans le cas d’un échec : le poste est maintenu dans son isolement. le filtrage ou non des connexions du poste et la prise en charge du SNAT nécessaire à l’accès Internet par configuration du firewall présent sur le routeur. Synoptique du réseau privé 10.10.10.0/24 HOSTA 10.10.10.10 Votre VM ou Hôte HOSTB 10.10.10.11 etc Internet (le vrai) 10.10.10.1 La VM sera la même que celle utilisée durant les TPs (ou votre machine personnelle sous Linux), seule la configuration des « netnamespaces » et du « switch » les reliants sera modifiée. La plage d’adresses, à affecter automatiquement par DHCP aux postes du réseau privé, est [10.10.10.10-10.10.10.20]. Pour réaliser le travail demandé, on utilisera : les capacités de routage du noyau Linux ; la connexion Internet de votre machine de travail (VM, ou hôte) ; le firewall NetFilter et la configuration par iptables ; dnsmasq pour le serveur DNS et le serveur DHCP ; les switches administrés virtuels « open vswitch » ; le navigateur Firefox ; les netns pour les différents HOSTA, HOSTB, etc. ; les connexions sécurisées par SSL.

Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Embed Size (px)

Citation preview

Page 1: Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Resp. UE : P-F. Bonnefoi, http://p-fb.net/, « Réseaux avancés I–Projet » version du 5 janvier 2018, rédigé avec ConTEXt – Don’t Panic ! 1/6

Master1èreannée

Réseaux avancés I

Projet

Réalisation d’un portail captif d’accès authentifié à Internet

Présentation du projetLe but du projet est de mettre en place un portail captif permettant :□ à un poste d’un réseau privé d’accéder à Internet après s’être authentifié :

⋄ le réseau privé sera défini dans l’adresse 10.10.10.0/24 ;⋄ les postes connectés seront configurés automatiquement à l’aide d’un serveur DHCP ;⋄ le service d’authentification choisi est celui de l’Université de Limoges utilisant CAS, « Central

Authentication Service », et « LemonLDAP » ;□ l’interception des requêtes DNS (à destination du port 53 d’un serveur DNS) ;□ l’interception des connexions Web du poste (à destination du port 80 d’une machine située hors réseau

local) ;On parlera de « proxy transparent » puisqu’il n’est pas nécessaire de configurer le navigateur pour êtrepris en charge.

□ la redirection de ces connexions de ce poste vers un serveur réalisant ce portail d’accès :⋄ un formulaire de connexion, au format HTML, est retourné au client pour permettre la saisie du

couple « login/mdp » ;⋄ une interrogation sécurisée par connexion SSL est réalisée vers le serveur cas.unilim.fr de

l'Université pour vérifier l'existence du couple « login/mdp » :⋆ dans le cas d’un succès : l’accès du poste à Internet est autorisé ;⋆ dans le cas d’un échec : le poste est maintenu dans son isolement.

□ le filtrage ou non des connexions du poste et la prise en charge du SNAT nécessaire à l’accès Internetpar configuration du firewall présent sur le routeur.

Synoptique du réseau privé10.10.10.0/24

HOSTA

10.10.10.10Votre VMou Hôte

HOSTB

10.10.10.11 etc

Internet(le vrai)

10.10.10.1

La VM sera la même que celle utilisée durant les TPs (ou votre machine personnelle sous Linux), seule laconfiguration des « netnamespaces » et du « switch » les reliants sera modifiée.

La plage d’adresses, à affecter automatiquement par DHCP aux postes du réseau privé, est[10.10.10.10-10.10.10.20].

Pour réaliser le travail demandé, on utilisera :▷ les capacités de routage du noyau Linux ;▷ la connexion Internet de votre machine de travail (VM, ou hôte) ;▷ le firewall NetFilter et la configuration par iptables ;▷ dnsmasq pour le serveur DNS et le serveur DHCP ;▷ les switches administrés virtuels « open vswitch » ;▷ le navigateur Firefox ;▷ les netns pour les différents HOSTA, HOSTB, etc. ;▷ les connexions sécurisées par SSL.

Page 2: Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Resp. UE : P-F. Bonnefoi, http://p-fb.net/, « Réseaux avancés I–Projet » version du 5 janvier 2018, rédigé avec ConTEXt – Don’t Panic ! 2/6

LemonLDAP::NG Ceprotocole permet de réaliser du « Single Sign On », c-à-d une authentification unique pour de multiplesservices au travers du Web, à travers l’interface d’un navigateur, en utilisant les techniques et protocolessuivant : SSL, HTML, HTTP et CGI.Une documentation ainsi qu’une liste d’organismes utilisant ce protocole est accessible àhttp://lemonldap-ng.org/references.

Ce service est proposé au sein de l’Université de Limoges en complément de CAS, « Central AuthenticationService », protocole réalisant le même travail, c-à-d du SSO, d’une façon différente. Le protocole CAS étaitle seul utilisé avant la rentrée de septembre 2012.

Dans le cadre de ce TP, nous ne présenterons que les éléments essentiels et suffisant pour pouvoir permettrel’authentification d’un utilisateur « légitime » des services offerts par l’Université de Limoges.Autrement dit, seuls les utilisateurs disposants d’un accès à l’Université de Limoges, en tant qu’étudiantou personnel, pourront être authentifiés.Déroulement du protocole d’authentification

Nous présenterons le protocole uniquement du point de vue du protocole d’échange HTTP, « Hyper TextTransfer Protocol », sans tenir compte des document au format HTMLs échangés. Le but étant d’obtenirune authentification automatique sans passer par le navigateur Web.

L’authentification initiale se fait par l’intermédiaire du serveur Web hébergeant le programme CAS :▷ la connexion directe à ce serveur Web, d’adresse cas.unilim.fr, sur le port associé au protocole

« https », c-à-d en établissant une connexion SSL, « Secure Socket Layer », sur le port 443, puis enéchangeant suivant le protocole « http » ;

▷ envoi des données contenant les « login » et « mot de passe » de l’utilisateur dans une requête HTTP detype « POST » ;

▷ réception d’une réponse de la part du serveur, avec deux cas possibles :⋄ l’authentification a fonctionné, c-a-d le login et mdp correspondent à un utilisateur autorisé, alors

l’entête HTTP de la réponse contient la définition du cookie :Set-Cookie: lemonldap=8693121745432c6547604f9c16308; domain=.unilim.fr; path=/; secure; HttpOnly

explications des champs paramètrant les cookies :⋆ « secure » : ces cookies ne peuvent être échangés qu’en mode connexion sécurisée, « https » ;⋆ « HttpOnly » : ces cookies ne peuvent être échangés qu’avec des requêtes de type « http », en

interdisant leur accès par des scripts Javascripts ;⋆ « domain=.unilim.fr » : ces cookies ne concernent que le domaine « unilim.fr »

⋄ l’authentification n’a pas fonctionné, c-a-d login et/ou mot de passe erronés, l’entête HTTP necontient pas de définition de cookie.

L’utilisation de connexion chiffrée à l’aide de SSL permet de rendre confidentielle les données échangéesentre la navigateur et le serveur Web (empêcher la récupération de l’identifiant et du mot de passe associépermettant l’authentification de l’utilisateur).

Les étapes de la procédure d’authentification sont les suivantes :1. établissement d’une connexion sécurisée SSL vers le serveur Web réalisant l’authentification, de

TSAP :(cas.unilim.fr, 443) ;2. envoi de la requête POST avec les données suivantes ;

⋄ le champ : user qui contient votre identifiant d'accès unilim.fr ;⋄ le champ : password qui contient votre mot de passe unilim.fr ;

L’envoi des données du formulaire suivant la méthode POST, sur la ressource /, se fait en trans-mettant les données suivantes :POST / HTTP/1.0\r\n

Host: cas.unilim.fr\r\n

Content-Length: 12345\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n

immédiatement suivie des données du formulaires formatées comme pour la méthode GET (d'oùl'indication MIME x-www-form-urlencoded) :user=toto&password=XXXX

Il faudra bien sûr remplacer la valeur 12345 du Content-Length par la taille exacte desdonnées transmises.

Page 3: Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Resp. UE : P-F. Bonnefoi, http://p-fb.net/, « Réseaux avancés I–Projet » version du 5 janvier 2018, rédigé avec ConTEXt – Don’t Panic ! 3/6

3. récupération d’une réponse avec l’entête HTTP contenant ou non la définition de cookie :HTTP/1.1 303 See Other

Date: Sun, 04 Dec 2016 19:44:05 GMT

Server: Apache/2.2.16 (Debian)

X-FRAME-OPTIONS: DENY

Set-Cookie: lemonldap=8693121745432c6547604f9c16308; domain=.unilim.fr; path=/; secure; HttpOnly

Pour savoir si l’authentification s’est bien passée, il suffit de trouver la chaîne «Set-Cookie:lemonldap » dans l'entête de la réponse.

Saisie de mot de passe & Connexion SSL Pourréaliser la saisie de votre mot de passe, sans le révéler à vos collègues qui regardent votre écran :1 subprocess.check_output("stty -echo",shell=True)2 password = raw_input("Mot de passe CAS:")3 subprocess.check_output("stty echo",shell=True)

La connexion SSLUne connexion « SSL », correspond :⋆ à l’établissement d’une connexion TCP sur le port par défaut 443 ;⋆ à la négociation :

⋄ d’algorithmes de chiffrement disponibles chez le client et le serveur ;⋄ des paramètres de ces algorithmes ;

⋆ à l’authentification du serveur par l’intermédiaire d’un certificat électronique ;⋆ éventuellement, à l’authentification du client par un certificat (cette authentification est rarement faite).Vous pouvez tester la connexion SSL à l’aide de l’outil openssl :

xterm$ openssl s_client -connect cas.unilim.fr:443

Vous obtiendrez un affichage similaire à :CONNECTED(00000003)depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert High Assurance EV Root CAverify return:1depth=1 C = NL, ST = Noord-Holland, L = Amsterdam, O = TERENA, CN = TERENA SSL High Assurance CA 3verify return:1depth=0 businessCategory = Government Entity, jurisdictionC = FR, serialNumber = Government Entity,street = Hotel de L Universite, postalCode = 87000, C = FR, ST = Haute-Vienne, L = Limoges, O = Universit\C3\A9 de Limoges, CN = cas.unilim.frverify return:1---Certificate chain0 s:/businessCategory=Government Entity/jurisdictionC=FR/serialNumber=Government Entity/street=Hotelde L Universite/postalCode=87000/C=FR/ST=Haute-Vienne/L=Limoges/O=Universit\xC3\xA9 de Limoges/CN=cas.unilim.fr

i:/C=NL/ST=Noord-Holland/L=Amsterdam/O=TERENA/CN=TERENA SSL High Assurance CA 31 s:/C=NL/ST=Noord-Holland/L=Amsterdam/O=TERENA/CN=TERENA SSL High Assurance CA 3i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA

---Server certificate-----BEGIN CERTIFICATE-----MIIIRjCCBy6gAwIBAgIQCS9lL+1iRqWBLRtluShPszANBgkqhkiG9w0BAQsFADBz...8bCoUd8u5rNFKoQu8e5TW+WpWQMy2mfzwOHLK8216G8sWhv/8LKU0QamVGppX0ZC1hKk9PiVY4E+4w==-----END CERTIFICATE-----subject=/businessCategory=Government Entity/jurisdictionC=FR/serialNumber=Government Entity/street=Hotel de L Universite/postalCode=87000/C=FR/ST=Haute-Vienne/L=Limoges/O=Universit\xC3\xA9 de Limoges/CN=cas.unilim.frissuer=/C=NL/ST=Noord-Holland/L=Amsterdam/O=TERENA/CN=TERENA SSL High Assurance CA 3---No client certificate CA names sentServer Temp Key: DH, 1024 bits---SSL handshake has read 4255 bytes and written 506 bytes---New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHAServer public key is 2048 bitSecure Renegotiation IS supportedCompression: NONEExpansion: NONENo ALPN negotiatedSSL-Session:

Protocol : TLSv1Cipher : DHE-RSA-AES256-SHASession-ID: BE9F4B3013FAB8DCA22E4F33B4AC99C20191FE9DEB3A3B85F003D811C708E018Session-ID-ctx:Master-Key: 696AB97D96FED929C8B989A8973B176172E720F92CB5D10FF9889F02039058D2CDCA74F847D5C6FE7FDA9F4538903559Key-Arg : NonePSK identity: NonePSK identity hint: NoneSRP username: NoneTLS session ticket:0000 - 73 33 0d 41 ad ec 99 78-ce 3b d6 86 48 f4 e5 f7 s3.A...x.;..H...

...00b0 - 4c 85 3c 2d 97 56 0e 20-e1 61 b6 6a b8 9b d2 fd L.<-.V. .a.j....

Start Time: 1512943193Timeout : 300 (sec)Verify return code: 0 (ok)

---

Page 4: Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Resp. UE : P-F. Bonnefoi, http://p-fb.net/, « Réseaux avancés I–Projet » version du 5 janvier 2018, rédigé avec ConTEXt – Don’t Panic ! 4/6

Vous serez alors connecté au serveur Apache, hébergeant le code réalisant l’autentification ; vous pouvezessayer d’envoyer la ligne «GET / HTTP/1.0 », suivie d'une ligne vide.

En Python, vous pourrez établir une connexion sécurisée de la manière suivante :1 #! /usr/bin/python2 import socket, ssl34 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)5 ssl_sock = ssl.wrap_socket(s)67 ssl_sock.connect(('www.verisign.com', 443))8 # Afficher les infromations relatives a la connexion9 print (repr(ssl_sock.getpeername()))10 print (ssl_sock.cipher())1112 # Envoyer une requete HTTP au serveur13 ssl_sock.write("GET / HTTP/1.0\r\nHost: www.verisign.com\r\n\r\n")14 # Lire la reponse15 data = ssl_sock.read()1617 # Fermer la connexion SSL qui ferme egalement la socket associee18 ssl_sock.close()

d’où le code d’authentification complet :#!/usr/bin/python# coding= utf-8import os, sys, subprocess, socket, ssl, re, sys

# la fonction de lecture par lignedef lire_ligne(desc):

ligne = ''while 1:

car = desc.recv(1)if not car : breakligne += carif car == '\n' : break

return ligne

# la requêterequete_post="POST / HTTP/1.0\r\nHost: cas.unilim.fr\r\n"requete_post+="Content-Length: %d\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"

# pour la soumission du formulairedonnees_post="user=%s&password=%s"

# les différentes expressions régulièresre_cherche_cookie = re.compile(r'Set-Cookie:\s*(.+)\r\n')

# Obtention des identifiants CASusername = raw_input("Nom de login CAS:")subprocess.check_output("stty -echo",shell=True)password = raw_input("Mot de passe CAS:")subprocess.check_output("stty echo",shell=True)donnees = donnees_post%(username, password)

# Soumission du formulaire avec nom et mot de passe# récupération du Cookies = socket.socket(socket.AF_INET, socket.SOCK_STREAM)ssl_sock = ssl.wrap_socket(s)ssl_sock.connect(('cas.unilim.fr', 443))ssl_sock.sendall(requete_post%len(donnees))ssl_sock.sendall(donnees)print requete_post%len(donnees)while 1:

rep = lire_ligne(ssl_sock)if not rep : break#print repres = re_cherche_cookie.search(rep)if res :

cookie = res.group(1)print "Cookie : %s"%cookieprint "Authentification reussie !"break

ssl_sock.close()

Configuration de dnsmaq, « DNS Masquerade », pour les services de DNS et de DHCP⋆ Pour exécuter dnsmasq depuis un netns :

xterm

$ sudo ip netns exec routeur dnsmasq -d -z -i routeur-eth0 -F137.204.212.200,137.204.212.240

⋆ depuis un netns, pour qu’il se configure par DHCP, on lance la commande suivante :xterm

$ sudo ip netns exec web dhclient

Le netns obtient depuis le serveur : adresse IP, préfixe réseau, route par défaut passant par le routeur.

Page 5: Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Resp. UE : P-F. Bonnefoi, http://p-fb.net/, « Réseaux avancés I–Projet » version du 5 janvier 2018, rédigé avec ConTEXt – Don’t Panic ! 5/6

Configuration d’un netns avec des répertoires uniques associésLe but de cette configuration est de permettre à un netns de disposer de ses propres fichiers de configura-tion par rapport à celui du netns root (celui associé à la VM), en particulier son fichier « /etc/resolv.conf »où il trouve les adresses des serveurs DNS à utiliser.▷ vous créerez le réperoire «/etc/netns/web » pour un netns s'appelant «web » ;

▷ dans ce répertoire vous créerez le fichier resolv.conf avec le contenu suivant :1 nameserver 8.8.8.82 nameserver 8.8.4.4

▷ après création du netns «web », vous pourrez vérifier qu'il dispose de ce fichier de configuration enlieu et place de celui du netns root :

xterm

$ sudo ip netns exec web cat /etc/resolv.confnameserver 8.8.8.8nameserver 8.8.4.4

Le chemin « /etc/resolv.conf » est remplacé pour le netns « web » par le chemin« /etc/netns/web/resolv.conf ».C’est la magie du netns...

Configuration du routage passant par la VM ou l’hôte ou simplement le « netnamespace » root

Un bridge openvswitch est vu comme une interface depuis l’hôte :xterm

pef@cube:~/NET_LAB$ sudo ovs-vsctl list-brinternets1s2pef@cube:~/NET_LAB$ ip l show s15: s1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT groupdefault qlen 1000

link/ether 4e:99:31:53:5a:4a brd ff:ff:ff:ff:ff:ff

Ici, on peut voir que le bridge « s1 » correspond à une interface inactive depuis le netns root.

Si l’on veut activer le routage par l’intermédaire du netns root, par exemple pour donner l’accès à Internet(le vrai), il faut :▷ activer l’interface correspondant au bridge depuis le « netns root » ;▷ la configurer pour faire partie du réseau des netns connectés au bridge concerné ;▷ configurer les netns connectés pour utiliser le « netns root » comme passerelle de sortie ;▷ activer la fonction de routage, « forwarding » du noyau, sur le « netns root » ;▷ configurer le firewall du « netns root » pour effectuer le SNAT.

xterm

pef@cube:~/NET_LAB$ sudo ip link set s1 uppef@cube:~/NET_LAB$ ip l show s15: s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN modeDEFAULT group default qlen 1000

link/ether 4e:99:31:53:5a:4a brd ff:ff:ff:ff:ff:ffpef@cube:~/NET_LAB$ sudo ip a add dev s1 192.168.10.253/24pef@cube:~/NET_LAB$ sudo ip netns exec h1 ping -c 1 192.168.10.253PING 192.168.10.253 (192.168.10.253) 56(84) bytes of data.64 bytes from 192.168.10.253: icmp_seq=1 ttl=64 time=0.147 ms

--- 192.168.10.253 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 0.147/0.147/0.147/0.000 ms

Ici, on peut constater que le netns « h1 » peut contacter le « netns root », il peut donc l’utiliser commepasserelle .

Page 6: Reseaux I TP projet 2017 2018 - P-FB Site pédagogique P-FBp-fb.net/fileadmin/ResAvI/TPs/2017-2018/Reseaux_I_TP_projet_2017... · SSL handshake has read 4255 bytes and written 506

Resp. UE : P-F. Bonnefoi, http://p-fb.net/, « Réseaux avancés I–Projet » version du 5 janvier 2018, rédigé avec ConTEXt – Don’t Panic ! 6/6

Travail demandéa. Vous configurerez votre réseau de la même manière que les « labs » vu dans les différents TPs.

Vous incluerez votre fichier de configuration et le graphe obtenu dans votre archive de rendu.

b. Vous configurerez dnsmasq pour assurer la configuration par DHCP des netns connectés dans leréseau privé 10.10.10.0/24.Vous mettrez dans votre rapport la configuration du serveur et une trace des échanges de paquets pourla configuration d’un container avec le serveur DHCP obtenu à l’aide de tcpdump.

c. Vous configurerez le firewall présent sur le routeur pour :⋄ bloquer par défaut le trafic en provenance du réseau privé 10.10.10.0/24 ;⋄ intercepterer le trafic DNS et le redirigerer vers un serveur DNS fonctionnel ;⋄ rediriger le trafic en provenance du réseau privé et à destination du Web vers un serveur logiciel

s’exécutant sur le routeur et réalisant le travail du portail ;Vous mettrez dans votre rapport la liste des règles que vous avez employé pour configurer votre firewall :une sortie de la commande « iptables -nL » pour les différentes tables modifiées.

d. Écrire un programme Python réalisant le travail du portail :⋄ il implèmente un serveur TCP discutant avec le poste client par l’intermédiaire de son navigateur

Web ;⋄ lors de la connexion d’un client vers un site Web (depuis un netns connecté au réseau privé) il

répond par un formulaire de saisie de « login/mdp » ;⋄ il effectue l’authentification sécurisée de ce « login/mdp » auprès du serveur CAS par l’utilisation

de LemonLDAP décrite plus haut ;⋄ si l’authentification est correcte, alors le trafic provenant de ce poste :

⋆ doit être autorisé à traversé le routeur ;⋆ doit subir du SNAT en version « masquerading » pour la prise en charge du trafic vers Internet ;

⋄ Vous modifierez les règles du firewall en conséquence, en utilisant la commande iptables ausein de votre programme Python à l'aide du module subprocess.check_output, voir dansle support de cours Python.Conseil : faites attention à l’ordre des règles...

⋄ Vous testerez votre serveur et le bon fonctionnement du portail à l’aide de firefox lancé depuisle netns.

⋄ Vous pourrez tester avec deux netns différents.

Vous mettrez dans votre rapport :⋄ une trace de la modification des règles de firewall avant et après le succès de l’authentification d’un

client ;⋄ une capture d’écran du navigateur avec le formulaire d’authentification lors de la soumission, et

après un succès & un échec ;⋄ une capture obtenue à l’aide de tcpdump du segment « SYN » d'une connexion d'un netns avant

et après le passage du routeur.

Remise du travail

Le travail devra être remis sous forme d’une archive à [email protected] par l’intermédiaire duservice FileX de l’Université.

▷ Vous mettrez le programme source Python du portail.▷ Vous inclurez les différents fichiers de configuration des netns, switches, routage, firewall etc.▷ Pour les captures et commentaires sur votre programme, vous joindrez un rapport au format PDF

à cette archive.Ce rapport peut être rédigé simplement : pas de plan, juste les éléments techniques demandés.