Vous êtes sur la page 1sur 33

REPUBLIQUE DU SENEGAL

Un peuple -Un But- Une Foi

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE

UNIVERSITE CHEIKH ANTA DIOP DE DAKAR

PROJET DE SERVICES RESEAUX

**************

THEME

MISE EN PLACE D’UN PORTAIL CAPTIF COUPLE AVEC LDAP


ET RADIUS AVEC PFSENSE

Réalisé par :
Abdoul Aziz NDONGO email : aboulazizndongo@gmail.com
Souleymane DIOUF email : sulaayman@hotmail.fr

Encadreur :
Monsieur KASSE

Année académique : 2015-2016


TABLE DES MATIERES

INTRODUCTION ...................................................................................................................... 3

PORTAIL CAPTIF .................................................................................................................... 3

FONCTIONNEMENT D’UN PORTAIL CAPTIF ................................................................... 3

PRESENTATION DE PFSENSE .............................................................................................. 4

RADIUS ..................................................................................................................................... 4

LDAP ......................................................................................................................................... 5

ARCHITECTURE ..................................................................................................................... 6

INSTALLATION ET CONFIGURATION DE FreeRADIUS .................................................. 7

INSTALLATION ET CONFIGURATION D’OPENLDAP ..................................................... 8

INSTALLATION DE PHPLDAPADMIN .............................................................................. 12

COUPLAGE DE LDAP ET DE RADIUS ............................................................................... 16

INSTALLATION DE PFSENSE ............................................................................................. 17

ETAPES DE CONNEXION SUR LE PORTAIL.................................................................... 28

CONCLUSION ........................................................................................................................ 29

ANNEXES ............................................................................................................................... 29

Configuration du point d’accès............................................................................................. 29

Personnalisation du portail captif ......................................................................................... 30

Configuration du serveur DNS ............................................................................................. 31

2
INTRODUCTION
Les réseaux sans fils sont un des moyens de connexions les plus utilisés car ils permettent une
meilleure mobilité par rapport aux réseaux filaires. L’essor des réseaux sans fil est du à sa
facilité et rapidité d’installation, à l’accès de partage des services de hauts débits et à beaucoup
d’autres avantages par rapport aux réseaux filaires.
Cependant les réseaux sans fils ne sont pas sans failles. Les réseaux sans fils sont objets de
plusieurs attaques des pirates et personnes males intentionnées et nécessite donc une
protection.
Nous allons donc essayer de trouver des solutions à ces vulnérabilités. Pour cela nous allons
utiliser un portail captif (couplé avec LDAP et RADIUS) qui est une plateforme permettant de
contrôler l’accès des utilisateurs à Internet.

PORTAIL CAPTIF
Un portail captif est une structure permettant un accès rapide à Internet. Lorsqu'un utilisateur
cherche à accéder à une page Web pour la première fois, le portail captif capture la demande de
connexion par un routage interne et propose à l'utilisateur 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 à un serveur HTTP. Ceci permet à tout ordinateur équipé d'un navigateur
HTML 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 (identifiant, mot de passe) de chaque utilisateur 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é, celui-ci se voit alors autorisé à utiliser son accès pour une durée limitée fixée par
l'administrateur. A la fin de la durée définie, l'utilisateur se verra redemander ses identifiants de
connexion afin d'ouvrir une nouvelle session.

FONCTIONNEMENT 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 a 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

3
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 lui
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.

PRESENTATION DE PFSENSE
PfSense ou « Packet Filter Sense » est un routeur/firewall open source basé sur le système
d'exploitation FreeBSD réputé pour son extrême stabilité et Monowall auquel il rajoute ses
propres fonctionnalités. Ce qui séduit chez Pfsense est sa facilité d'installation et de
configuration des outils d'administration réseau. En effet il est possible de configurer quasiment
toutes les fonctionnalités de Pfsense via l'interface Gui PHP. La distribution Pfsense met ainsi
à la disposition de l'administrateur réseau une multitude d'outils open sources permettant
d'optimiser ses taches. Pfsense assure le Filtrage par source et destination au niveau des
adresses IP, protocole IP, port source et destination des protocoles TCP, et UDP. Il a la capacité
à limiter le nombre de connexion règle par règle. Pfsense est aussi un firewall capable de faire
la traduction d’adresses, le filtrage de paquets entre LAN ET WAN, la QoS et du « load
balancing »entre plusieurs connexions internet.

RADIUS
Le protocole RADIUS mis au point initialement par Livingston, est un protocole
d’authentification standard, défini par un certain nombre du RFC. Le fonctionnement de
RADIUS est basé sur un système client/serveur chargé de définir les accès d’utilisateurs distant
à un réseau. Il s’agit du protocole de prédilection des fournisseurs d’accès à internet car il est
relativement standard et propose des fonctionnalités de comptabilité permettant aux FAI de
facturer précisément leurs clients.
Le protocole RADIUS repose principalement sur un serveur (le serveur RADIUS), relié à une
base d’identification (base de données, annuaire LDAP, etc.) et un client RADIUS, appelé NAS
faisant office d’intermédiaire entre l’utilisateur final et le serveur. L’ensemble des transactions
entre le client RADIUS et le serveur RADIUS est chiffré et authentifié grâce à un secret partagé.

4
Il est à noter que RADIUS peut faire office de proxy, c'est-à-dire transmettre les requêtes du
client à d’autres serveurs RADIUS.
Le fonctionnement de RADIUS est basé sur un scénario proche de celui-ci :

Un utilisateur envoie une requête au NAS afin d’autoriser une connexion à distance ;
Le NAS achemine la demande au serveur RADIUS ;
Le serveur RADIUS consulte la base de données d’identification afin de connaître le
type de scénario d’identification demandé pour l’utilisateur. Soit le scénario actuel
convient, soit une autre méthode d’identification est demandée à l’utilisateur. Le
serveur RADIUS retourne ainsi une des trois requêtes suivantes :
ACCEPT : l’identification a réussi
REJECT : l’identification a échoué
CHALLENGE : le serveur RADIUS souhaite des informations supplémentaires de
la part de l’utilisateur et propose un « défi » ;

Le schéma suivant récapitule les éléments entrant en jeu dans un système utilisant un serveur
RADIUS :

Figure 1 : Fonctionnement de RADIUS

LDAP
LDAP (Lightweight Directory Access Protocol,) est un protocole standard permettant de gérer
des annuaires, c'est-à-dire d'accéder à des bases d'informations sur les utilisateurs d'un réseau
par l'intermédiaire de protocoles TCP/IP.
Le protocole LDAP est uniquement prévu pour gérer l'interfaçage avec les annuaires. Plus
exactement il s'agit d'une norme définissant la façon suivant laquelle les informations sont
échangées entre le client et le serveur LDAP ainsi que la manière de laquelle les données sont
représentées. Ainsi ce protocole se conforme à quatre modèles de base :

5
un modèle d'information : définissant le type d'information stocké dans l'annuaire
un modèle de nommage (parfois appelé modèle de désignation) : définissant la façon de
laquelle les informations sont organisées dans l'annuaire et leur désignation
un modèle fonctionnel (parfois appelé modèle de services) : définissant la manière
d'accéder aux informations et éventuellement de les modifier, c'est-à-dire les services offerts
par l'annuaire.
un modèle de sécurité : définissant les mécanismes d'authentification et de droits d'accès
des utilisateurs à l'annuaire.
De plus, LDAP définit la communication entre
Le client et le serveur, c'est-à-dire les commandes de connexion et de déconnexion au
serveur, de recherche ou de modification des entrées
Les serveurs eux-mêmes, pour définir d'une part le service de réplication (réplication
service), c'est-à-dire un échange de contenu entre serveurs et synchronisation, d'autre part
pour créer des liens entre les annuaires (on parle de referral service).

ARCHITECTURE

le1 le0

10.1.1.254/24

INTERNET SERVEUR PFSENSE

10.1.1.1/24

SERVEUR LDAP ET
RADIUS

1 1

LAN

Figure 2: Architecture
Le serveur ou pfsense doit être équipé de deux interfaces réseaux l’une des interfaces est
reliée au WAN et l’autre au LAN.
Nous avons utilisé une machine virtuelle installée sous VMware avec deux cartes réseaux
l’une ponté sur la carte wifi (WAN) et l’autre sur la carte Ethernet (LAN).
La carte WAN (le1) va récupérer une adresse via DHCP.

6
INSTALLATION ET CONFIGURATION DE FreeRADIUS
FreeRADIUS est un serveur RADIUS libre il offre une alternative aux autres serveurs
d’entreprise RADIUS, et est un des serveurs RADIUS les plus modulaires et riche en
fonctionnalités aujourd’hui. FreeRADIUS est, entre autre, utilisé par des fournisseurs d’accès
à l’internet pour authentifier leurs clients et leur communiquer une configuration IP. Il est
considéré comme le serveur le plus utilisé dans le monde. Pour l’installer on tape la
commande: apt-get install freeradius freeradius-utils freeradius-ldap

Figure 3 : Installation de freeradius


Une fois radius installé on le lance en mode debug avec la commande freeradius –X puis on
modifie le fichier /etc/freeradius/users en y ajoutant un compte afin de faire des tests.

On ajoute la ligne suivante : souleymane Cleartext-Password := ‘p@sser123’

Figure 4 : Création d’un compte Radius


La commande radtest est celle qui nous permettra de faire le test d’authentification avec le
compte créer ci-dessous, c’est une commande issue du paquet freeradius-utils.

radtest souleymane p@sser123 127.0.0.1 0 testing123

Figure 5 : Test d’authentification


On a le message suivant : « Access-Accept » qui veut dire que l’authentification a réussi,
notre serveur Radius est bien installé.

7
INSTALLATION ET CONFIGURATION D’OPENLDAP
OpenLDAP est une implémentation libre du protocole LDAP distribuée selon les termes de la
licence OpenLDAP Public Licence. OpenLDAP est un annuaire informatique qui fonctionne
sur le modèle client/serveur. Il contient des informations de n'importe quelle nature qui sont
rangées de manière hiérarchique. Pour bien comprendre le concept, il est souvent comparé
aux pages jaunes, où le lecteur recherche un numéro de téléphone particulier : il va d'abord
sélectionner la profession, puis la ville, puis le nom de l'entrée pour trouver au final le numéro
de téléphone. En pratique, dans un réseau informatique, il est utilisé pour enregistrer une grande
quantité d'utilisateurs ou de services, parfois des centaines de milliers. Il permet d'organiser
hiérarchiquement les utilisateurs par département, par lieu géographique ou par n'importe quel
autre critère.

Dans notre cas nous utilisons le serveur LDAP pour le relier avec notre serveur radius pour
l’authentification.

Pour l’installer on tape la commande : apt-get install slapd ldap-utils ldap-auth-client

Figure 6 : Installation d’OpenLDAP

Dans notre configuration présenté dans les sections suivantes, le nom de domaine du serveur
doit correspondre avec le nom de domaine de notre machine donc le suffixe sera dc=ucad,
dc=sn.

Figure 7 : Configuration du mot de passe administrateur

On clique sur ok puis on confirme le mot de passe.

8
Editons maintenant le fichier /etc/ldap/ldap.conf comme indiquer dans la figure

Renseignons ces entrées comme indiquer ci-dessous en fin de page.

Figure 8 : configuration du suffixe

Enregistrons le fichier et reconfigurer le package ldap en tapant la commande :

dpkg-reconfigure slapd

Figure 9 : configuration du package ldap

Figure 10 : configuration du package ldap (2)

Cliquons sur NO

9
Figure 11 : Renseignement du domaine DNS

Configuration du nom de l’organisation

Figure 12 : Configuration de l’Organisation Name

Configuration du mot de passe administrateur

Figure 13 : Configuration du mot de passe administrateur

Cliquons sur Ok puis confirmons le mot de passe. Ensuite configurons la base de données,
Choisissons HDB puis appuyer sur Entrer

10
Figure 14 : Configuration de la base de données

Figure 15 : Configuration de la base de données (2)

Cliquons sur Yes.

Figure 16 : Configuration de la base de données (3)

Configuration du protocole LDAPv2

11
Figure 17 : Configuration du protocole LDAPv2 (3)

Cliquons sur No. Maintenant la configuration est finit.

INSTALLATION DE PHPLDAPADMIN
Tapons les commandes suivantes pour installer phpldapadmin et ses dépendances

apt-get install apache2 php5 php5-mysql phpldapadmin

Maintenant nous avons besoin de modifier le fichier config.php de phpldapamin pour donner
aux serveurs les droits pour cela tapons la commande : nano /etc/phpldapadmin/config.php

Puis renseigner les valeurs comme indiquer dans la figure

Figure 18 : Configuration de phpldapadmin

Maintenant nous pouvons accéder à phpldapadmin en tapant l’URL suivante au niveau de


notre navigateur :

http://10.1.1.2/phpldapadmin

12
Figure 18 : Interface d’administration de phpldapadmin

Cliquons sur connexion puis renseignons le mot de passe de phpldapadmin

Figure 19 : Mot de passe de connexion à phpldapadmin

13
Figure 20 : Interface de connexion de phpldapadmin après connexion

Ajoutons maintenant une Unité organisationnelle pour cela cliquons sur dc=ucad, dc=sn puis
sur ajouter une sous entrée.

Figure 21 : Création d’une unité organisationnelle

Figure 22 : Création d’une unité organisationnelle (2)

Créons ensuite un compte utilisateur de type Kolab : User Entry

14
Figure 23 : Création d’un compte utilisateur

Figure 24 : Création d’un compte utilisateur (2)

15
COUPLAGE DE LDAP ET DE RADIUS
Editons le fichier /etc/freeradius/modules/ldap puis mettons-y les informations suivantes :

Figure 25 : Configuration du module LDAP pour RADIUS

Dans /etc/freeradius/sites-enabled/default, dans le champ autorize, décommettons ldap et


checkval. Puis dans le champ authenticate décommettons également :

Auth-type LDAP {

ldap

Dans le fichier /etc/ldap/ldap.conf ajoutons les informations suivantes :

URI ldap://127.0.0.1

BASE dc=ucad, dc=sn

Dans le fichier /etc/ldap.conf décochons et renseignons ces lignes de la manière suivante :

Base dc=ucad, dc=sn

Binddn cn=admin, dc=ucad, dc=sn

Bindpw passer

Port 389

16
Vérifions que les utilisateurs de phpldapadmin peuvent s’authentifier sur radius.

Taper la commande suivante :

radtest souleymane@retel.ucad.sn passer 127.0.0.1 0 testing123

Figure 26 : Test d’authentification


Dans le fichier /etc/freeradius/clients.conf ajoutons pfsense comme client RADIUS

Figure 27: Ajout d’un client RADIUS

INSTALLATION DE PFSENSE
Insérons l’image de pfsense puis sélectionnons l’option 1

17
Figure 28 : Installation de pfsense

Configuration du Vlan tapons sur n puis sur entrée

Figure 29 : Configuration du vlan

Configurons maintenant les interfaces choisissons le0 pour le Wlan et le1 pour le Lan

Figure 29 : Configuration des noms des interfaces

18
Fixons maintenant l’adresse de l’interface LAN que cous utiliserons pour l’administration de
l’interface Web. Configurons aussi le DHCP en définissant les plages d’adresses qui seront
attribuées aux clients.

Figure 30: Configuration des interfaces réseaux et du DHCP

Maintenant nous utiliserons l’adresse http://10.1.1.254 pour accéder à l’interface web de


pfsense.

Figure 30: Configuration web

Tapons maintenant sur 99 pour installer pfsense sur le disque dur

19
Figure 31: Installation de pfsense sur le disque dur

Choisissons l’option Accept these Settings

Figure 32: Installation de pfsense (2)

Choisissons l’option Quick Easy Install

Figure 33: Installation de pfsense (3)

Cliquons ensuite sur ok pour l’installer avec les options par défaut

20
Figure 34: Installation de pfsense (4)

Choisissons l’option Standard Kernel

Figure 35: Installation de pfsense (5)

L’installation est à présent fini tapons maintenant l’adresse http://10.1.1.254 au niveau de notre
navigateur pour accéder à l’interface web de pfsense.
Le nom d’utilisateur par défaut est admin et le mot de passe est pfsense.

21
Figure 36: Connexion à l’interface web de pfsense

Cliquons ensuite sur Système puis sur General Setup et renseignons les informations comme
suit :

22
Figure 37: Configuration générale

8.8.8.8 est le serveur DNS de Google et 10.1.1.2 le serveur DNS que nous avons configuré (voir
Annexe).

Cliquons ensuite sur System puis sur Advanced et renseignons les informations suivantes

23
Figure 38: Configuration avancée de pfsense

Configurons maintenant le SSH pour la configuration à distance de pfsense

Figure 38: Configuration du SSH

Activons maintenant le DNS Forwarder

24
Figure 39: Configuration du DNS forwarder

Cliquons sur Service puis sur DHCP Server pour configurer notre serveur DHCP

Figure 40: Configuration du DHCP

Cliquons maintenant sur services puis sur CaptivePortal ensuite sur l’ongle + pour ajouter
un portail captif

25
Figure 41: Ajout d’un portail Captif

Renseignons le nom de la zone et la description

Figure 42: Renseignement du nom

Cliquons sur Continue puis renseignons les informations comme indiquer dans la figure

Figure 43: Configuration du portail captif

26
Figure 44: Configuration du portail captif (1)

Configuration de Radius

Figure 45: Configuration de RADIUS

Ensuite dans la partie Portail Page Content cliquons sur choisissez un fichier pour aller
sélectionner le code HTML que nous avons codé pour la page d’authentification (voir
annexe). On fait aussi la même chose pour Authentication Error Page Contents qui sera la
page ou ne serons redirigé s’il y’à erreur d’authentification.

27
Figure 46: Personnalisation du portail

On clique ensuite sur save pour activer les modifications.


Pour importer les images du site Web qu’on a configuré pour l’authentification, on clique sur
File Manager

Figure 47: Importation des images

ETAPES DE CONNEXION SUR LE PORTAIL


Se connecter d’abord au réseau wifi, lorsque vous tentez d’accéder à une page web vous serez
automatiquement redirigé vers la page d’authentification.
Entrez ensuite votre login et votre mot de passe pour vous connectez.

28
Figure 48: Page d’authentification

CONCLUSION
PfSense est donc un moyen efficace pour gérer, protégé, l’accès au Wifi. Les différentes
options qui nous sont proposées permettent d’intégrer parfaitement PfSense dans une
architecture déjà existante, notamment pour l’identification des utilisateurs Ldap via un serveur
Radius.

ANNEXES
Configuration du point d’accès
Connectons nous d’abord à notre point d’accès en renseignant l’adresse IP au niveau du
navigateur puis désactivons le service DHCP.

29
Figure 49: Configuration Point d 'accées

Personnalisation du portail captif


Code HTML pour la page Portal Page Content :

Figure 50: Portal Page Content

Code HTML pour la page Authentication Error Page Content :

30
Figure 50: Authentication Error Page Content

Configuration du serveur DNS


Pour installer le serveur DNS on tape la commande :
apt-get install bind9
Ensuite on édite le fichier /etc/bind/named.conf.local pour y déclarer nos zones

Figure 51: Déclaration des zones

Créons ensuite le fichier de zone directe db.ucad.sn pour y mettre les informations de zones

31
Figure 51: Création du fichier de zone directe

Créons le fichier de zone inverse db.192 pour y mettre les informations de résolution inverse

Figure 52: Création du fichier de zone inverse

32
Redémarrons ensuite le serveur

Figure 53: Redémarrage du serveur DNS

33

Vous aimerez peut-être aussi