10.10.10.1 / / Routeur [HOSTA: 10.10.10.10] [HOSTB: 10.10.10.11]

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

Master 1 ère année. UE Réseaux Avancés I. Corrections décembre Durée : 2h Documents autorisés

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Sécurité des réseaux Firewalls

Protection des protocoles

MISE EN PLACE DU FIREWALL SHOREWALL

L3 informatique TP n o 2 : Les applications réseau

INSTALLATION DEBIAN 7 (NETINSTALL) SUR VM

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

But de cette présentation. Proxy filtrant avec Squid et SquidGuard. Serveur proxy. Serveur proxy. Hainaut P

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

FILTRAGE de PAQUETS NetFilter

MANUEL D INSTALLATION D UN PROXY

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

M2-RADIS Rezo TP13 : VPN

TP SECU NAT ARS IRT ( CORRECTION )

SQUID Configuration et administration d un proxy

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Linux. Sécuriser un réseau. 3 e édition. l Admin. Cahiers. Bernard Boutherin Benoit Delaunay. Collection dirigée par Nat Makarévitch

Licence 3 Systèmes et Réseaux II. Chapitre V : Filtrage

Accès aux ressources informatiques de l ENSEEIHT à distance

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Serveurs de noms Protocoles HTTP et FTP

Linux Firewalling - IPTABLES

TER Réseau : Routeur Linux 2 Responsable : Anthony Busson

Filtrage IP MacOS X, Windows NT/2000/XP et Unix

Devoir Surveillé de Sécurité des Réseaux

Figure 1a. Réseau intranet avec pare feu et NAT.

Spécialiste Systèmes et Réseaux

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

SSH, le shell sécurisé

Réseau - VirtualBox. Sommaire

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

1/ Introduction. 2/ Schéma du réseau

Mise en place d'un Réseau Privé Virtuel

Utilisation des certificats X.509v3

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Mise en place d un firewall d entreprise avec PfSense

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

TP PLACO. Journées Mathrice d'amiens Mars 2010

Iptables. Table of Contents

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Proxy et reverse proxy. Serveurs mandataires et relais inverses

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

Les réseaux des EPLEFPA. Guide «PfSense»

Formation Iptables : Correction TP

BTS SIO Dossier BTS. PURCHLA Romain

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Maintenance et gestion approfondie des Systèmes d exploitation Master 2 SILI. Année universitaire David Genest

DOCKER MEETUP. Christophe Labouisse

Imprimantes et partage réseau sous Samba avec authentification Active Directory

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

Environnements informatiques

Live box et Nas Synology

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Installation d OpenVPN

Mise en place d un serveur Proxy sous Ubuntu / Debian

Table des matières Hakim Benameurlaine 1

Guide Installation Serveur Extensive Testing

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

CONFIGURATION DE BASE. 6, Rue de l'industrie BP130 SOULTZ GUEBWILLER Cedex. Fax.: Tel.:

Installation d'un serveur sftp avec connexion par login et clé rsa.

SECURIDAY 2013 Cyber War

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

IPS-Firewalls NETASQ SPNEGO

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Authentification sur réseau sans-fil Utilisation d un serveur radius Expérience du CENBG

Sauvegardes par Internet avec Rsync

Installation et configuration de Vulture Lundi 2 février 2009

TCP/IP, NAT/PAT et Firewall

2X ThinClientServer Guide d utilisation

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

ACTION PROFESSIONNELLE N 4. Fabien SALAMONE BTS INFORMATIQUE DE GESTION. Option Administrateur de Réseaux. Session Sécurité du réseau

Serveur d impression CUPS

Petit guide pour l installation de CVW sous Linux

Guide Installation Serveur Extensive Testing

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Les différentes méthodes pour se connecter

I. Présentation du serveur Samba

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

TP : Introduction à TCP/IP sous UNIX

Contrôle d accès à Internet

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Un serveur FTP personnel, ça ne vous a jamais dit?

Transcription:

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.024 ; 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 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 «loginmdp» ; 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 «loginmdp» : 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.1 Internet \ \-+** [ internal ] VM Routeur **** **+- \ -+--+ - - - - - [HOSTA: 10.10.10.10] [HOSTB: 10.10.10.11] La VM sera la même que celle utilisée durant les TPs, seul la configuration des containers 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 ; le firewall NetFilter et la configuration par iptables ; dnsmasq pour le serveur DNS et le serveur DHCP ; un pont virtuel fournit par le package Linux «bridge-utils» ; le navigateur en mode texte «links» ; les containers LXC ; les connexions sécurisées par SSL. Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 17

LemonLDAP::NG Ce protocole permet de réaliser du «Single Sign On», c-à-d une authentification unique pour de multiples services au travers du Web, à travers l interface d un navigateur, en utilisant les techniques et protocoles suivant : SSL, HTML, HTTP et CGI. Une documentation ainsi qu une liste d organismes utilisant ce protocole est accessible à http:lemonldap-ng.orgreferences. Ce service est proposé au sein de l Université de Limoges en complément de CAS, «Central Authentication Service», protocole réalisant le même travail, c-à-d du SSO, d une façon différente. Le protocole CAS était le 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 permettre l 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 étudiant ou 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 Text Transfer Protocol», sans tenir compte des document au format HTMLs échangés. Le but étant d obtenir une 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 de type «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 etou mot de passe erronés, l entête HTTP ne contient pas de définition de cookie. L utilisation de connexion chiffrée à l aide de SSL permet de rendre confidentielle les données échangées entre 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 transmettant les données suivantes : POST HTTP1.0\r\n Host: cas.unilim.fr\r\n Content-Length: 12345\r\nContent-Type: applicationx-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 des données transmises. Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 27

3. récupération d une réponse avec l entête HTTP contenant ou non la définition de cookie : HTTP1.0 303 See Other Date: Sun, 13 Dec 2015 19:37:44 GMT Server: Apache2.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 Pour réaliser la saisie de votre mot de passe, sans le révéler à vos collègues qui regardent votre écran : 1 commands.getoutput("stty -echo") 2 password=raw_input("mot de passe CAS:") 3 commands.getoutput("stty echo") La connexion SSL Une 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 très 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 CA verify return:1 depth=1 C = NL, ST = Noord-Holland, L = Amsterdam, O = TERENA, CN = TERENA SSL High Assurance CA 3 verify return:1 depth=0 businesscategory = Government Entity, jurisdictionc = FR, serialnumber = Government En tity, street = "33, rue Fran\C3\A7ois Mitterrand", street = Hotel de L Universite, postalcode = 87000, C = FR, ST = Haute-Vienne, L = Limoges, O = Universit\C3\A9 de Limoges, CN = cas.uni lim.fr verify return:1 Certificate chain 0 s:businesscategory=government EntityjurisdictionC=FRserialNumber=Government Enti tystreet=33, rue Fran\xC3\xA7ois Mitterrandstreet=Hotel de L UniversitepostalCode=87000C=FRST=Haute- VienneL=LimogesO=Universit\xC3\xA9 de LimogesCN=cas.unilim.fr i:c=nlst=noord-hollandl=amsterdamo=terenacn=terena SSL High Assurance CA 3 1 s:c=nlst=noord-hollandl=amsterdamo=terenacn=terena SSL High Assurance CA 3 i:c=uso=digicert IncOU=www.digicert.comCN=DigiCert High Assurance EV Root CA Server certificate --BEGIN CERTIFICATE-- MIIHkTCCBnmgAwIBAgIQAn2cxsEgo+MdgOpMiYIznzANBgkqhkiG9w0BAQsFADBz... --END CERTIFICATE-- subject=businesscategory=government EntityjurisdictionC=FRserialNumber=Government Entitystreet=33, rue Fran\xC3\xA7ois Mitterrandstreet=Hotel de L Universitepostal Code=87000C=FRST=Haute-VienneL=LimogesO=Universit\xC3\xA9 de LimogesCN=cas.unilim.fr issuer=c=nlst=noord-hollandl=amsterdamo=terenacn=terena SSL High Assurance CA 3 No client certificate CA names sent Server Temp Key: DH, 1024 bits SSL handshake has read 4074 bytes and written 516 bytes New, TLSv1SSLv3, Cipher is DHE-RSA-AES256-SHA... SSL-Session: Protocol : TLSv1... Verify return code: 0 (ok)\stoptyping Vous serez alors connecté au serveur Apache, hébergeant le code réalisant l autentification ; vous pouvez essayer d envoyer la ligne «GET HTTP1.0», suivie d une ligne vide. En Python, vous pourrez établir une connexion sécurisée de la manière suivante : 1 #! usrbinpython 2 import socket, ssl 3 4 s = socket.socket(socket.af_inet, socket.sock_stream) 5 ssl_sock = ssl.wrap_socket(s) 6 Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 37

7 ssl_sock.connect(('www.verisign.com', 443)) 8 # Afficher les infromations relatives a la connexion 9 print (repr(ssl_sock.getpeername())) 10 print (ssl_sock.cipher()) 11 12 # Envoyer une requete HTTP au serveur 13 ssl_sock.write("get HTTP1.0\r\nHost: www.verisign.com\r\n\r\n") 14 # Lire la reponse 15 data = ssl_sock.read() 16 17 # Fermer la connexion SSL qui ferme egalement la socket associee 18 ssl_sock.close() d où le code d authentification complet : #!usrbinpython # coding= utf-8 import os, sys, commands, socket, ssl, re, sys # la fonction de lecture par ligne def lire_ligne(desc): ligne = '' while 1: car = desc.recv(1) if not car : break ligne += car if car == '\n' : break return ligne # la requête requete_post="post HTTP1.0\r\nHost: cas.unilim.fr\r\n" requete_post+="content-length: %d\r\ncontent-type: applicationx-www-form-urlencoded\r\n\r\n" # pour la soumission du formulaire donnees_post="user=%s&password=%s" # les différentes expressions régulières re_cherche_cookie = re.compile(r'set-cookie:\s*(.+)\r\n') # Obtention des identifiants CAS username = raw_input("nom de login CAS:") commands.getoutput("stty -echo") password = raw_input("mot de passe CAS:") commands.getoutput("stty echo") donnees = donnees_post%(username, password) # Soumission du formulaire avec nom et mot de passe # récupération du Cookie s = 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 rep res = re_cherche_cookie.search(rep) if res : cookie = res.group(1) print "Cookie : %s"%cookie print "Authentification reussie!" break ssl_sock.close() Configuration de dnsmaq, «DNS Masquerade», pour les services de DNS et de DHCP Pour installer dnsmasq sous votre VM, «Virtual Machine» : $ sudo apt-get install dnsmasq Pour utiliser dnsmasq, deux possibilités : à l aide du fonctionnement en mode «démon» activé à l installation : Pour le configurer, il faut éditer le fichier etcdnsmasq.conf ; Pour le redémarrer : $ sudo etcinit.ddnsmasq restart Pour le stopper, pour par exemple passer en mode «manuel» : $ etcinit.ddnsmasq stop en mode manuel, après l avoir préalablement stoppé : $ sudo dnsmasq -d -C fichier_dnsmasq_configuration Il se comporte dans ce cas comme un processus normal, que l on peut envoyer en tâche de fond ou bien interrompre avec un CTRL-C Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 47

Un exemple de contenu pour le fichier de configuration utilisé par dnsmasq : 1 interface=eth1 2 dhcp-range=192.168.0.1,192.168.0.50,12h 3 server=8.8.8.8 4 server=8.8.4.4 Explications : ligne 1 : le nom de l interface où le service DNS offert par dnsmasq sera activé ; ligne 2 : la plage d adresse fournie par le serveur ; ligne 3&4 : pour l utilisation des serveurs de DNS. depuis un container, pour qu il se configure par DHCP, on lance la commande suivante : # dhclient eth0 Le container obtient depuis le serveur : son adresse IP, le préfixe réseau, la route par défaut passant par le routeur, le serveur DNS (le serveur DNS correspond, ici, au serveur dnsmasq s exécutant sur le serveur). Attention L utilisation de l outil dnsmasq entraîne la modification du fichier etcresolv.conf partagé par la VM et les différents containers. Pour éviter les «effets de bord», il est nécessaire d associer un fichier différent pour chaque container en lieu et place du fichier etcresolv.conf. Configuration d un container LXC avec des répertoires uniques associés Le but de cette configuration est de permettre à un container de disposer de son propre espace disque par rapport à celui de son hôte, afin de pouvoir y créermodifier des fichiers sans conflit : lxc.utsname = HOST1 lxc.network.type = veth lxc.network.flags = up lxc.network.link = bridge_internal lxc.network.name = eth0 lxc.mount.entry = pour_resolv_conf_host1 etc none rw,bind 0 0 Il faudra avant de lancer le container : créer les répertoires pour_resolv_conf_host1 ; copier les fichiers etcfstab, etcpasswd, etcresolv.conf dans le répertoire pour_resolv_conf_host1. Faites attention à lancer le container depuis le répertoire parent de «pour_resolv_conf_host1». Quelques commandes Unix utiles Pour la configuration du réseau par DHCP : sudo dhclient eth0 : lance la configuration dhcp pour l interface eth0 ; sudo dhclient eth0 -r : dé-configure l interface eth0 ; Pour la mise à jour de la distribution GNULinux Ubuntu : sudo apt-get update : met à jour la base de données des différents paquetages disponibles ; sudo apt-get dist-upgrade : met à jour le système avec les dernières versions disponibles des paquetages installés ; Pour obtenir des informations concernant les ports utilisés : $ netstat -ap affiche la liste des sockets (Unix ou IP) ainsi que les processus auxquels elles sont attribuées. Pour installer le navigateur links : sudo apt-get install links Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 57

Travail demandé a. Configurez dnsmasq pour assurer la configuration par DHCP des containers connectés dans le réseau privé 10.10.10.024. Vous mettrez dans votre rapport la configuration du serveur et une trace des échanges de paquets pour la configuration d un container avec le serveur DHCP obtenu à l aide de tcpdump. b. Configurez le firewall présent sur le routeur (la VM) pour : bloquer par défaut le trafic en provenance du réseau privé 10.10.10.024 ; rediriger le trafic en provenance du réseau privé et à destination du Web (tcp et port destination 80) 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. c. É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 container connecté au réseau privé) il répond par un formulaire de saisie de «loginmdp» ; il effectue l authentification sécurisée de ce «loginmdp» 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 au sein de votre programme Python à l aide du module subprocess.check_output, voir dans le 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 links lancé depuis le container. L appui sur la touche «Esc» permet d accèder à un menu en mode texte. rezo@ishtar:~résavi$ links File View Link Downloads Setup Help ++ Go to URL g Go back z History > Reload Ctrl-R Bookmarks s Save bookmarks Save as Save URL as Save formatted document Kill background connections Kill all connections Ctrl-S Flush all caches Resource info OS shell Exit q ++ Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 67

Allez sur Google : Recherche Images Maps Play YouTube Actualites Gmail Drive Plus >> Historique Web Parametres Connexion Google France Recherche avanceeoutils linguistiques [ Recherche Google ] [ J'ai de la chance ] Le domaine Google.fr est disponible en : English Solutions publicitairessolutions d'entreprisegoogle+a propos de GoogleGoogle.com Quittez avec la touche «q» : (c) 2015 - Confidentialite et conditions d'utilisation + Exit Links -+ Do you really want to exit Links? [ Yes ] [ No ] +-+ Vous pourrez tester avec deux containers différents (pensez à adapter les fichiers de configuration). 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 container avant et après le passage du routeur. Remise du travail Le travail devra être remis sous forme d une archive à bonnefoi@unilim.fr. Vous mettrez le programme source Python du portail. Vous inclurez les différents fichiers de configuration des containers, ponts, 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. Resp. UE : P-F. Bonnefoi, http:p-fb.net, «Réseaux avancés I Projet» version du 14 décembre 2015, rédigé avec ConTEXt Don t Panic! 77