Documente Academic
Documente Profesional
Documente Cultură
EXPOSE SUR LE PORTAIL CAPTIF (NOTALWEG) Exposants: Barry Ibrahima Seck Hawa Amadou
Le client se connecte au rseau par l'intermdiaire d'une connexion filaire ou au point d'accs pour du wifi. Ensuite un serveur DHCP lui fournit une adresse IP ainsi que les paramtres de la configuration du rseau. A ce moment l, le client juste accs au rseau entre lui et la passerelle, cette dernire lui interdisant, pour l'instant, l'accs au reste du rseau. Lorsque le client va effectuer sa premire requte de type web en HTTP ou HTTPS, la passerelle le redirige vers une page web d'authentification qui lui permet de s'authentifier grce un login et un mot de passe. Cette page est crypte l'aide du protocole SSL pour scuriser le transfert du login et du mot de passe. Le systme d'authentification va alors contacter une base de donnes contenant la liste des utilisateurs autoriss accder au rseau. Enfin le systme d'authentification indique, plus ou moins directement selon les portails captif, la passerelle que le couple MAC/IP du client est authentifi sur le rseau. Finalement le client est redirig vers la page Web qu'il a demand initialement; le rseau derrire la passerelle lui est dornavant accessible. Le portail captif, grce divers mcanismes comme une fentre pop-up sur le client rafrachie intervalles rguliers ou des requtes Ping vers le client, est en mesure de savoir si l'utilisateur est toujours connect au rseau. Au bout d'un dlai d'absence sur le rseau, le portail captif va couper l'accs cet utilisateur. La diffrence entre un simple Firewall et un portail captif rside dans le fait que le portail captif ne refuse pas une connexion mais la redirige plutt vers une page d'authentification
Figure 14 1. Le client est connect au Wifi/Rseau, il a donc rcupr une adresse IP via le serveur DHCP et effectue sa premire requte : www.google.fr. 2. La requte arrive sur le serveur et comme toutes les requtes entrantes elle est envoye NoTalweg. 3. NoTalweg reoit cette requte elle n'est pas authentifie, il ne marque donc pas le paquet : 0. 4. Comme il s'agit d'un paquet Http non authentifi (0) celui-ci est drout par le serveur(le noyau) vers le serveur Web de NoTalweg afin de procder une authentification. NoTalweg envoie une rponse 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 rpondons 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 procde son identification suivant le mode choisi (Ldap, radius, cas, etc. ) 6. NoTalweg renvoie une page qui devra reste ouverte pendant la connexion, elle contient un programme qui dira rgulirement NoTalweg que l'utilisateur est connect. 7. Le client met une nouvelle requte : www.google.fr, pour changer 8. La requte arrive sur le serveur et comme toutes les requtes entrantes est envoye NoTalweg. 9. NoTalweg reoit la requte et comme elle est authentifie, il marque la connexion, la logue et assure son suivi. 10. La connexion marque est autorise, la sortie est autorise.
Pr-requis
Pour installer NoTalweg, vous devez disposer d'une machine avec deux cartes rseaux. Avoir compris globalement son fonctionnement. Pour notre configuration nous allons prendre ce scnario :
eth0, interface publique. eth1, interface priv avec 172.16.0.0/16 comme rseau. NoTalweg sera en coute sur 172.16.1.1:8181 en HTTPS. Le domaine associ au rseau sera youssef.mr (sera utile dans le cas de l'utilisation de Talweg)
Insrer :
## 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
Configuration du rseau
# vi /etc/network/interfaces
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
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; }
# /etc/init.d/dhcp3-server restart
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
Configuration apache
Activation de mod_rewrite & mod_ssl & mod_mono
a2enmod rewrite ssl mod_mono # vi /etc/apache2/sites-available/notalweg.conf
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>
# /etc/init.d/apache2 restart
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 rpertoire login et remplir loginUrl
<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>
Dans la fin du fichier, il y a quelques valeurs changer/complter comme le ou les noms des admins, etc
<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>
$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: " echo 0 > /proc/sys/net/ipv4/ip_forward ########################### # FLUSH TABLES ########################### $IPT -t filter -F $IPT -t nat -F $IPT -t mangle -F echo "Done." ;;
status) # List tables echo echo "---------- FILTER TABLE -----------" echo $IPT -t filter -L -v echo echo "---------NAT TABLE -----------" echo $IPT -t nat -L -v echo echo "---------MANGLE TABLE -----------" echo $IPT -t mangle -L -v echo ;; restart|force-reload) $0 stop $0 start echo "Done." ;; *) echo "Usage: /etc/init.d/firewall {start|stop|status|restart}" exit 1 ;; esac
exit 0
Il ne faut oublier de crer le lien symbolique : # ln /etc/apache2/sites-available/notalweg.conf /etc/apache2/sites-enabled/notalweg.conf # # # # chmod +x /etc/init.d/notalweg-rules update-rc.d notalweg-rules start 98 2 3 4 5 . stop 98 0 1 6 . /etc/init.d/notalweg-rules start /etc/init.d/notalweg restart
Voir le certificat :
Ensuite Accepter
ET vous voici connect en mode administrateur pour superviser et grer votre portail captif
On accepte le certificat
NB :Ce TP a t ralis en virtuelle avec Vmare 3.1.3 build-324285 avec une machine linux Debian 5.0 et une machine cliente Windows xp Sp2. Et jai eu a tester la mme TP en physique et jai obtenu le mme rsultat. Ce document est ouvert tous les critiques et correctifs.
Contact : barryvieux9@hotmail.com