REPUBLIQUE DU SENEGAL U N PEUPLE-UN BUT-UNE FOI Université Dakar Bourguiba Géni
REPUBLIQUE DU SENEGAL U N PEUPLE-UN BUT-UNE FOI Université Dakar Bourguiba Génie Informatique Master2 EXPOSE SUR LE PORTAIL CAPTIF (NOTALWEG) Exposants: Barry Ibrahima Seck Hawa Amadou QU'EST-CE QU'UN PORTAIL CAPTIF Un portail captif est une structure permettant un accès rapide et sécurisé à Internet. Lorsqu'un utilisateur cherche à accéder à Internet pour la première fois, le portail capte sa demande de connexion grâce à un routage interne et lui propose de s'identifier afin de pouvoir recevoir son accès. Cette demande d'authentification se fait via une page web stockée localement sur le portail captif grâce au serveur HTTP. Ceci permet à tout ordinateur équipé d'un « Web browser » ou navigateur web et d'un accès Wifi de se voir proposer un accès à Internet. La connexion au serveur est sécurisée par SSL grâce au protocole HTTPS ce qui garantit l'inviolabilité de la transaction. Les identifiants de connexion (Login et Mot de passe) sont stockés dans une base de données qui est hébergée localement ou sur un serveur distant. Une fois l'utilisateur authentifié, les règles de firewall le concernant sont modifiées et celui-ci ce voir autorisé à utiliser son accès Internet pour une durée fixée par l'administrateur. A la fin de la durée fixée, l'utilisateur se verra redemande ses identifiants de connexions afin d'ouvrir une nouvelle session. Fonctionnement générique d'un portail captif Le client se connecte au réseau par l'intermédiaire d'une connexion filaire ou au point d'accès pour du wifi. Ensuite un serveur DHCP lui fournit une adresse IP ainsi que les paramètres de la configuration du réseau. A ce moment là, le client à juste accès au réseau entre lui et la passerelle, cette dernière lui interdisant, pour l'instant, l'accès au reste du réseau. Lorsque le client va effectuer sa première requête de type web en HTTP ou HTTPS, la passerelle le redirige vers une page web d'authentification qui lui permet de s'authentifier grâce à un login et un mot de passe. Cette page est cryptée à l'aide du protocole SSL pour sécuriser le transfert du login et du mot de passe. Le système d'authentification va alors contacter une base de données contenant la liste des utilisateurs autorisés à accéder au réseau. Enfin le système d'authentification indique, plus ou moins directement selon les portails captif, à la passerelle que le couple MAC/IP du client est authentifié sur le réseau. Finalement le client est redirigé vers la page Web qu'il a demandé initialement; le réseau derrière la passerelle lui est dorénavant accessible. Le portail captif, grâce à divers mécanismes comme une fenêtre pop-up sur le client rafraîchie à intervalles réguliers ou des requêtes Ping vers le client, est en mesure de savoir si l'utilisateur est toujours connecté au réseau. Au bout d'un délai d'absence sur le réseau, le portail captif va couper l'accès à cet utilisateur. La différence entre un simple Firewall et un portail captif réside dans le fait que le portail captif ne refuse pas une connexion mais la redirige plutôt vers une page d'authentification I Principe de fonctionnement de No Talweg Figure 14 1. Le client est connecté au Wifi/Réseau, il a donc récupéré une adresse IP via le serveur DHCP et effectue sa première requête : www.google.fr. 2. La requête arrive sur le serveur et comme toutes les requêtes entrantes elle est envoyée à NoTalweg. 3. NoTalweg reçoit cette requête elle n'est pas authentifiée, il ne “marque” donc pas le paquet : “0”. 4. Comme il s'agit d'un paquet Http non authentifié (“0”) celui-ci est dérouté par le serveur(le noyau) vers le serveur Web de NoTalweg afin de procéder à une authentification. NoTalweg envoie une réponse de redirection http pour dire au client de venir s'authentifier sur lui. Il faut bien comprendre que le client pour l'instant a demandé www.google.fr, nous répondons donc à la place de ce site en disant attention nous sommes maintenant joignable ici (la page d'authentification, la vraie adresse de NoTalweg) 5. Le client se connecte et procède à son identification suivant le mode choisi (Ldap, radius, cas, etc. …) 6. NoTalweg renvoie une page qui devra restée ouverte pendant la connexion, elle contient un programme qui dira régulièrement à NoTalweg que l'utilisateur est connecté. 7. Le client émet une nouvelle requête : www.google.fr, pour changer … 8. La requête arrive sur le serveur et comme toutes les requêtes entrantes est envoyée à NoTalweg. 9. NoTalweg reçoit la requête et comme elle est authentifiée, il “marque” la connexion, la “logue” et assure son suivi. 10. La connexion marquée est autorisée, la sortie est autorisée. Pré-requis Pour installer NoTalweg, vous devez disposer d'une machine avec deux cartes réseaux. Avoir compris globalement son fonctionnement. Pour notre configuration nous allons prendre ce scénario : eth0, interface publique. eth1, interface privé avec 172.16.0.0/16 comme réseau. NoTalweg sera en écoute sur 172.16.1.1:8181 en HTTPS. Le domaine associé au réseau sera youssef.mr (sera utile dans le cas de l'utilisation de Talweg) Installation des paquets # vi /etc/apt/sources.list Insérer : # aptitude update # aptitude install notalweg Configuration du réseau # vi /etc/network/interfaces ## talweg package repository deb http://talweg.univ-metz.fr/debian/ lenny main deb-src http://talweg.univ-metz.fr/debian/ lenny main deb http://ftp.fr.debian.org/debian/ lenny main deb http://security.debian.org/ lenny/updates main #download talweg deb http://talweg.univ-metz.fr/debian/ lenny main auto eth1 iface eth1 inet static address 172.16.1.1 netmask 255.255.0.0 network 172.16.0.0 broadcast 172.16.255.254 Configuration du DHCP #aptitude install dhcp3-server # vi /etc/dhcp3/dhcpd.conf # /etc/init.d/dhcp3-server restart Configuration du serveur de nom # aptitude install bind9 Vous devez spécifier l'adresse de votre serveurs DNS dans forwarders. # vi /etc/bind/named.conf.options Génération des certificats pour apache Ce qui suit génére les certificats SSL nécessaires. Ce sont des certificats autosignés. # mkdir /etc/apache2/ssl # cd /etc/apache2/ssl/ # openssl genrsa -out talweg.key 1024 ddns-updates off; option domain-name "youssef.mr"; option domain-name-servers 172.16.1.1; default-lease-time 600; max-lease-time 7200; authoritative; subnet 172.16.0.0 netmask 255.255.0.0 { option routers 172.16.1.1; option broadcast-address 172.16.255.255; range 172.16.1.5 172.16.255.254; } options { listen-on {172.16.1.1;}; forwarders { XX.XX.XX.XX; }; auth-nxdomain no; }; IMPORTANT : ici il faut remplir les informations vous correspondants mais surtout stipuler à : Common Name (eg, YOUR name) : *.youssef.mr # openssl req -new -key talweg.key -out talweg.csr Création du certificat auto-signé # openssl x509 -req -days 365 -in talweg.csr -signkey talweg.key -out talweg.crt Configuration apache Activation de mod_rewrite & mod_ssl & mod_mono a2enmod rewrite ssl mod_mono # vi /etc/apache2/sites-available/notalweg.conf # /etc/init.d/apache2 restart Listen 172.16.1.1:8080 <VirtualHost 172.16.1.1:8080> ServerName viba.youssef.mr RewriteEngine On RewriteRule (.*) https://172.16.1.1:8181/ </VirtualHost> Listen 172.16.1.1:8181 <VirtualHost 172.16.1.1:8181> ServerName viba.youssef.mr MonoAutoApplication disabled MonoRunXSP False MonoUnixSocket /tmp/notalweg-socket SSLEngine On SSLCertificateFile /etc/apache2/ssl/talweg.crt SSLCertificateKeyFile /etc/apache2/ssl/talweg.key SSLVerifyClient none SSLProxyEngine off Alias / /usr/share/notalweg/ ErrorLog /var/log/apache2/notalweg-error.log <Location /> SetHandler mono SSLRequireSSL Allow from all </Location> </VirtualHost> Configuration de NoTalweg # vi /etc/notalweg/notalweg.conf Il faut choisir son authentification : cas.aspx (Central Authentication Service), radius.aspx, ldap.aspx, mysql.aspx, voir les fichiers dans le répertoire login et remplir loginUrl Dans la fin du fichier, il y a quelques valeurs à changer/compléter comme le ou les noms des admins, etc … <forms name=".notalweg" loginUrl="~/login/config.aspx" protection="All" timeout="3000" path="/" > <credentials passwordFormat="Clear"> <user name="ablaye" password="diallo" /> <user name="karim" password="passer" /> <user name="barry" password="barry" /> </credentials> </forms> </authentication> <authorization> <deny users="?" /> </authorization> <appSettings file="login/login.config"> <!-- coma separated list of blacklist users --> <add key="UsersBlacklist" value="" /> <add key="ServerUrl" value="https://172.16.1.1:8181/" /> <!-- user quota in bytes (not functionnal) --> <add key="UserQuota" value="100000000" /> <!-- the nfqueue number --> <add key="queue-num" value="0" /> <!-- Message --> <add key="blacklist_msg" value="Sorry, you're account have been locked" /> <add key="update_error_msg" value="An error occured during authentication process, please restart your browser" /> <!-- {0}:upbytes {1}:downbytes {2}:duration --> <add key="update_msg" value="Up : {0}, Down: {1}, Time: {2}" /> <add key="over_quota_msg" value="Sorry you exceed your quota" /> </appSettings> <location path="admin/Default.aspx"> <system.web> <authorization> <allow users="karim" /> <deny users="*" /> </authorization> </system.web> </location> <location path="files"> <system.web> <authorization> <allow users="*" /> </authorization> </system web> Les règles de firewall # vi /etc/init.d/notalweg-rules #!/bin/sh IPT="/sbin/iptables" #Ip of notalweg gateway IP_PRIVATE="172.16.1.1" #Notalweg private interface NTINT="eth1" test -f $IPT || exit 0 case "$1" in start) echo -n "Loading firewall's rules: " echo 1 > /proc/sys/net/ipv4/ip_forward # Flush table $IPT -t nat -F $IPT -t mangle -F $IPT -t filter -F $IPT -t mangle -A PREROUTING -i $NTINT -j CONNMARK --restore-mark $IPT -t mangle -A PREROUTING -p TCP -i $NTINT -d $IP_PRIVATE -j ACCEPT $IPT -t mangle -A PREROUTING -p TCP -i $NTINT -m state --state NEW -j QUEUE $IPT -t nat -A PREROUTING -p TCP -i $NTINT -j CONNMARK --save-mark # MARK 0xFFFFFFFF = Openacls $IPT -t nat -A PREROUTING -p TCP -i $NTINT -m mark --mark 0xFFFFFFFF -j ACCEPT # MARK 0xFFFFFFFE = use http-to-https redirection $IPT -t nat -A PREROUTING -p TCP -i $NTINT -m mark --mark 0xFFFFFFFE -j DNAT -- to-destination $IP_PRIVATE # MARK 0x0 = unauthenticated - 80 is redirected to authentication page $IPT -t nat -A PREROUTING -p TCP --dport 80 -i $NTINT -m mark --mark 0 -j DNAT -- to-destination $IP_PRIVATE:8080 # MARK 0x1 blacklistacls $IPT -t filter -A FORWARD -m mark --mark 0x1 -j REJECT $IPT -t nat -A POSTROUTING -m mark ! --mark 0 -j MASQUERADE echo "Done." ;; stop) echo -n "Flushing firewall's rules: " uploads/Ingenierie_Lourd/ expose-notalweg.pdf
Documents similaires










-
24
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 31, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 1.3193MB