Vous êtes sur la page 1sur 28

Gwenael BLUM

Florian LASOWY
Cyril GUERIN
Cédric PFEIFFER

Protocole AAA
Principes et implantations

Encadrante ESIAL : Isabelle CHRISMENT

SOMMAIRE
Introduction ................................................................................. 2
1)
Les protocoles AAA................................................................ 3
1.1) Concepts .............................................................................................3
1.2) RADIUS...............................................................................................4
1.2.1) Description....................................................................................4
1.2.2) Format des paquets .......................................................................4
1.2.3) Diagramme de séquence ................................................................6
1.3) DIAMETER...........................................................................................7
1.3.1) Description....................................................................................7
1.3.2) Format des paquets .......................................................................8
1.3.3) Diagramme de séquence ..............................................................10
1.3.4) Exemple d’une application Mobile IPv6 pour Diameter ......................11
1.4) Différences entre RADIUS et DIAMETER ...............................................14

2)

Mise en œuvre d’un FAI utilisant RADIUS.................................16

Introduction ................................................................................................16
2.1) PPPoE...............................................................................................17
2.2) Radius ..............................................................................................20
2.3) Scénarios ..........................................................................................22
Conclusion ..................................................................................................26

Références..................................................................................27

1

de leur autoriser certains services et de collecter des informations sur l’utilisation des ressources. il permet aux opérateurs d’authentifier un utilisateur ayant souscrit un abonnement auprès d’un autre opérateur. Authorization. Nous présenterons les protocoles AAA (Authentication. Accounting) qui permettent aux opérateurs d’authentifier des utilisateurs. En particulier. Dans chacun de ces cas.Introduction L’accès à l’Internet se fait traditionnellement depuis le domicile. il est devenu nécessaire de développer des protocoles permettant à des utilisateurs de se déplacer de réseau en réseau. Nous verrons en particulier que Diameter est actuellement le protocole le plus à même de satisfaire les nouveaux besoins suscités par la mobilité. Avec le déploiement des mobiles. l’université. ou les salles de conférence. le bureau. 2 . la station d’accès est un équipement fixe ou éventuellement mobile dans une faible mesure (inférieur à 100 mètres pour l’Ethernet sans fil).

1) Concepts AAA signifie Authentication.1 – Architecture AAA 3 . Les protocoles implémentant du AAA sont essentiellement utilisés par des opérateurs offrant des services de télécommunications à des utilisateurs. Authorization. – Compte : le serveur AAA a la possibilité de collecter des informations sur l’utilisation des ressources. La signification de ces termes est la suivante : – Authentification : l’authentification consiste à vérifier qu’une personne/équipement est bien celle qu’elle prétend être. Les clients AAA sont hébergés sur des routeurs ou sur des serveurs d’accès au réseau.1) Les protocoles AAA 1. Ci-dessous un schéma représentant l’architecture AAA la plus commune : Fig. Ces protocoles leur permettent de contrôler l’accès à leurs réseaux et de connaître l’utilisation de leurs ressources. Ils peuvent ainsi facturer selon le temps de connexion ou selon la quantité d’informations téléchargées. Ceci est généralement réalisé en utilisant un secret partagé entre l’utilisateur et le serveur mère AAAH ou à l’aide de certificats (e. – Autorisation : l’autorisation consiste à permettre l’accès à certains services ou ressources. Accounting. Ceci permet à un opérateur de facturer un utilisateur suivant sa consommation. autorisation et compte. une architecture client-serveur AAA permet de rendre l’ensemble de ces services. Les serveurs AAA dans les domaines mère et visité permettent de gérer les utilisateurs. soit authentification. Un utilisateur peut par exemple demander à avoir une certaine bande passante. En pratique.509). Le serveur AAA lui autorisera ou non cette demande.g X.

1) Description Le protocole RADIUS est actuellement utilisé pour faire du AAA avec des utilisateurs se connectant via des modems téléphoniques à Internet. L’utilisateur utilise PPP pour accéder à un FAI via un serveur d’accès.2) RADIUS 1. Length – longueur du paquet (2 octets).2. 1. Celuici les envoie alors à un serveur RADIUS qui se charge de l’authentifier. le serveur RADIUS lui permet l’accès à Internet. un paquet RADIUS est encapsulé dans un paquet UDP.octet utilisé pour comparer la requête et la réponse. de préférence de façon sécurisée.1. 2: Format d’un paquet RADIUS Les champs d’un paquet RADIUS sont les suivants : • • • • • Code . Authenticator . et utilisée dans l’algorithme de masquage du password. Or RADIUS ne gère pas explicitement les communications inter-domaine. Il envoie des informations permettant de l’authentifier (typiquement login/password) au serveur d’accès. Actuellement. les opérateurs doivent pouvoir rendre des services et authentifier des milliers d’utilisateurs utilisant des technologies différentes. Ils doivent aussi être capables de rendre des services à des utilisateurs venant d’opérateurs différents. 4 . Si l’utilisateur est correctement authentifié. RADIUS a été conçu pour supporter un nombre limité d’équipements et donc un nombre limité d’utilisateurs.2.2) Format des paquets Les données sont échangées entre un client et le serveur en paquets RADIUS.Valeur utilisée pour authentifier la réponse du serveur RADIUS. Chaque paquet contient les informations suivantes : Fig. Attributes – les données appartenant à la requête ou à la réponse.octet contenant la requête/réponse RADIUS Identifier . En fait.

(client->serveur). réponse à une requête d’accès. o access-challenge. requête pour enregistrer les données de comptabilité sur le serveur. accounting request. o access-reject. La réponse à cette commande est: o accounting response. (serveur->client). où le serveur attend une réponse du client encapsulée dans une accessrequest.La communication RADIUS utilise le paradigme de requête-réponse. Les paires requête-réponse possibles sont: • • access-request . et les réponses sont envoyées par le serveur au client. Les réponses possibles à cette commande sont: o access-accept. réponse positive à une requête d’accès d’un client. (serveur->client). réponse vers le client lorsque les données de comptabilité ont bien été stockées sur le serveur. (client->serveur). les requêtes sont envoyées par le client au serveur. 5 . (serveur->client). (serveur->client). requête d’accès par un utilisateur pour certains services. réponse négative à une requête d’accès d’un client.

Lorsqu’un utilisateur se déconnectera. 1. 5. Input octets. le temps d’essai d’envoi de ce message. 3: Flux de messages RADIUS .) au NAS (phase Autorisation). alors le serveur RADIUS envoie un message “accept-accept” avec des informations supplémentaires (par exemple : adresse IP. 4. Fig. masque de réseau. Lorsque la combinaison login/password est valide. le nombre d’octets reçus par le client.1. le NAS va envoyer un message ”Accounting-request (Stop)” avec les informations suivantes : o o o Delay time. Output octets. crypte ces informations avec une clé partagée et envoie cela avec une “access-request” à un serveur (phase Authentification). Le NAS récupère le login/password d’un utilisateur à distance.3) Diagramme de séquence Ci-dessous un schéma d’un diagramme de séquence lorsqu’un utilisateur accède au réseau à travers un NAS (Network Access Server) et se déconnecte lui-même. Le NAS envoie un message “accounting-request (start)” pour indiquer que l’utilisateur est connecté sur le réseau (phase Comptabilité ).2. 2. le nombre d’octets envoyés par le client. 3. Le serveur RADIUS répond avec un message “Accounting-response” lorsque l’information de comptabilité est stockée. 6 . etc.

3) DIAMETER 1. 1. le nombre de paquets envoyés par le client. NAS et CMS. le nombre de secondes que le client s’est connecté. Diameter a été conçu dans l’idée d’être facilement extensible.o o o o Session time. Reason. la raison pour laquelle le client s’est déconnecté. 7 . Pour cette raison. les messages d’erreurs ainsi que les services de sécurité que toutes les implémentations doivent supporter. À ce protocole de base s’ajoutent les applications : Mobile IP. Output packets. l’application Diameter CMS permet de protéger les échanges Diameter au niveau applicatif entre serveurs ou entre un serveur et son client. il s’agit de l’amélioration de RADIUS .3. le protocole de base est séparé de ses applications. le nombre de paquets reçus par le client. L’application Diameter Mobile IPv4 permet de faire du AAA avec un utilisateur utilisant Mobile IPv4 . Il est constitué d’un protocole de base qui définit le format des messages. l’application Diameter NAS permet l’accès au réseau via PPP/EAP.1) Description Diameter est un protocole permettant à des domaines administratifs différents de collaborer pour réaliser les fonctionnalités AAA. 6. Input packets. Le serveur RADIUS répond avec un message “accounting-response” lorsque l’information de comptabilité est stockée. comment ils sont transportés.

W (1 bit).1. 4: Format d’un paquet DIAMETER. Next Received o AVP code (4 octets). • • • • • • • • • Radius PCC (1 octet). Packet length (2 octets). Identifier (4 octets).3. Version (3 bits). doit être positionné à 1. le package est seulement un acquittement. commande DIAMETER (256) o AVP length (2 octets). utilisé pour grouper les AVPs 8 . NS (2 octets). numéro de séquence utilise pour faire correspondre les requêtes et leurs réponses.2) Format des paquets Les données sont échangées entre client et serveur en paquets DIAMETER. longueur totale du paquet. longueur du AVP o Cmd flags (6 bits). peut être utilisé comme commande spécifique. o Reserved (6 bits) o Flag T (1 bit). En fait. et ne contient pas de requêtes. utilisé pour identifier les options A (1 bit). Next Send NR (2 octets). un paquet est encapsulé dans le champ de données UDP. indique la version. positionné si les champs NS et NR sont présents (utilisé lorsque UDP est le protocole de transport). Tag bit. sinon positionné à 0. doit être positionné à 254 qui signifie “paquet DIAMETER” Flags (3 bits). pour une compatibilité avec RADIUS. Chaque paquet contient les informations suivantes : Fig.

indique que le AVP est crypté avec le cryptage Hop-by-hop. où le serveur attend une réponse du client encapsulée dans une “AArequest”. Mandatory bit. Command code. Flag M (1 bit). Flag H (1 bit). requête acceptée ou refusée par le serveur. o AA-Challenge-Ind (serveur->client). réponse à une “AA-request”. Vendor id (4 octets. Tag (4 octets. optional). optional). Hop bit. 9 . requête d’authentification et/ou d’autorisation pour un utilisateur. contient l’id de la commande DIAMETER § diameter attributes (AVP's) Commandes DIAMETER: • • • • Message-Reject-Ind (serveur->client) Device-Reboot-Ind (serveur->client) Device-Watchdog-Ind (serveur->client) AA-Request (client->serveur). indique si le support AVP est requis. Le serveur peut répondre à une “AA-Request” avec les messages suivants: o aA-Answer (serveur->client). Vendor-specific bit. indique si le champ optionnel vendredi field est présent.o o o o o o Flag V (1 bit).

10 . Si cette combinaison est valide.1. Ces messages n’ont pas été inclus au diagramme de séquence. 2. 5. et cette combinaison avec un message “AA-Request” vers le serveur DIAMETER (phase Authentification).3. 6. le NAS envoie un message de comptabilité en format ADIF au serveur AAA. 3. Le NAS envoie un message de comptabilité en format ADIF(Accounting Data Interchange Format) au serveur AAA . 2: Flux de messages DIAMETER. Lorsque l’utilisateur se déconnecte. Un protocole de fenêtrage est utilisé par-dessus ce protocole non-fiable pour garantir une transmission correcte. 4. 1. un message DIAMETER sans commande) qui est utilisé pour envoyer un acquittement de message reçu. Fig. Le NAS récupère le login/password d’un utilisateur distant.3) Diagramme de séquence Ci-dessous un diagramme de séquence où un utilisateur accède au réseau par le biais d’un NAS et se déconnecte. alors le serveur DIAMETER envoie un message “AA-Response” avec une information d’autorisation au NAS (phase Autorisation). Le serveur AAA répond avec un message de comptabilité pour acquitter la requête de comptabilité. Les messages affichés dans le diagramme de séquence sont envoyés en utilisant le protocole de transport UDP. Le serveur AAA répond avec un message de comptabilité pour acquitter la requête de comptabilité. Ce protocole introduit un message ZLB (Zero Length Body.

3 Les informations contenues dans les messages échangés sont les suivantes : KMx.1.y : clef de session partagée entre x et y CR: Credentials RC: Result Code 11 .y: Matériel Cryptographique partagé entre x et y NAI: Network Access Identifier RPI: Replay Protection Indicator Kp-x: clef publique de x HA@: Home Agent Address H@: Home Address SecuParam_I: Security Parameter Initiator SecuParam_R: Security Parameter Responder LC: aléa local Kx.4) Exemple d’une application Mobile IPv6 pour Diameter Architecture L’architecture de l’application Mobile IPv6 pour Diameter est représentée sur la figure suivante : Fig.3.

à la réception du message <Areq> extrait les informations utiles et les encapsule dans un message Diameter <AMR> (AA-MN-Request) à destination du serveur Diameter du domaine visité DLS. on suppose que : • Le mobile et le DHS possèdent un secret partagé permettant au serveur d’authentifier son mobile. Dans cette architecture. Le MN est le mobile utilisant Mobile IPv6 dont on souhaite authentifier l’utilisateur. Ces communications sont sécurisées en utilisant TLS entre les serveurs et en utilisant IPsec entre un client et son serveur. Fonctionnement Pour illustrer le fonctionnement de l’application.L’architecture de l’application est constituée de deux serveurs Diameter : • le serveur Diameter du domaine visité DLS (Diameter Local Server) • le serveur Diameter du domaine mère DHS (Diameter Home Server) Le client Diameter est l’interface permettant au mobile et à l’infrastructure Diameter de s’échanger des informations. 2. on prend le cas d’un mobile démarrant dans le réseau visité et possédant déjà un agent mère (HA) ainsi qu’une adresse dans son réseau mère. • Les communications entre serveurs Diameter sont sécurisées. • Les communications entre le client Diameter et le DLS ainsi que les communications entre le DHS et l’agent mère sont sécurisés. Le mobile envoie en premier lieu un message <AS> (Attendant Solicit) afin de découvrir ou de sélectionner un client Diameter dans ce nouveau réseau. La figure précédente illustre les échanges entre le mobile et l’infrastructure Diameter : 1. 12 . Le mobile sélectionne un client Diameter et lui envoie le message <AReq> (Attendant Request) contenant l’aléa local ainsi que des informations permettant son authentification. Le client Diameter. 3. Il peut être situé au niveau du point d’accès ou entre ce point d’accès et le DLS. Les clients Diameter lui répondent par un message <AR> (Attendant Reply) contenant un aléa généré qui permet de détecter les éventuels rejeux.

Si cette authentification est correcte il vérifie que l’agent mère existe bien et que l’adresse fournie est valide. 7. Le DLS extrait le Network Access Identifier et transfère le message <AMR> au serveur Diameter du domaine mère DHS s’occupant du domaine mentionné dans le NAI. le message contient les informations fournies par le serveur mère : • adresse mère et adresse d’un agent mère dans le cas où le mobile les auraient demandées • les informations permettant de mettre en place l’association de sécurité entre le mobile et son agent mère • un RPI (Replay Protection Indicator) pour éviter que ce paquet ne soit rejoué • et éventuellement une adresse IPv6 locale. Le message <AHR> (AA-HA-Request) permet au DHS de communiquer à l’agent mère les informations qui vont lui permettre de créer une association de sécurité avec son mobile. 13 . Le DHS peut maintenant répondre au DLS par le message <AMA > (AA-MNAnswer). 5. Le client Diameter répond alors au mobile avec le message <ARep> (Attendant Reply). Le mobile peut alors envoyer un message <BU> (Binding Update) authentifié à son agent mère pour enregistrer sa nouvelle adresse. 6. L’agent mère répond au mobile par le message <AHA>. 9. Dans le cas où le mobile a été correctement authentifié.4. Il l’informe du succès ou non de l’authentification et fournit aussi des informations permettant la création d’associations de sécurité entre le mobile et son agent mère et entre le mobile et le client Diameter. 8. Le DLS vérifie que le mobile est bien authentifié (grâce au Result Code (RC)) et répond à son client Diameter en incluant ce que le DHS lui a envoyé. Ce message est protégé grâce à l’association de sécurité nouvellement créée entre le client Diameter et le mobile. Le DHS extrait les informations d’authentification.

Algorithme de retransmission inefficace Radius a seulement un octet comme champ identificateur pour identifier les retransmissions. 14 . 2^32). puisqu’il résout les problèmes connus posés par RADIUS. ces attributs d’essais de réponse peuvent être sécurisés en utilisant un cryptage de bout-en-bout et une authentification. Avec Diameter. Diameter possède un schéma qui régule le flux des paquets UDP (windowing scheme). chaque client Radius peut générer une séquence d’essai de réponse qui peut être interceptée par n’importe quel client Radius ou serveur proxy dans la chaîne . Un client Diameter attend un réponse positive ou négative ou juste un acquittement de la requête reçue par le serveur. mais ne sait pas si la requête a été reçue par le serveur. 255). Aucun support d’erreur serveur Un serveur Radius n’a aucun moyen d’indiquer si il est inactif ou si il est disponible.Diameter consacre deux octets pour la longueur de son champ de données (max. 4. Cela limite le nombre de requêtes qui peuvent être traitées (max. Limitation stricte des attributs de données Radius a seulement un octet réservé pour la longueur du champ de données (max. Diameter a réservé quatre octets dans ce but (max. Diameter implante des messages Keep-alive qui indiquent que le serveur est en dérangement depuis un certain temps. 6. 255) dans son entête d’attributs. Ci-dessous une liste des problèmes connus de RADIUS et de comment DIAMETER les résout : 1. Un serveur Diameter peut envoyer un message d’erreur au client indiquant un problème. Attaque par essai d’authentification En utilisant PPP CHAP . Il va alors essayer de se connecter sur un autre serveur. 3. Incapacité à contrôler le flux vers les serveurs Radius s’opère sur UDP et n’a pas de schémas standards pour réguler son flux de messages. 2. 16535). Cette séquence peut être “rejouée” par un autre client Radius n’importe quand (en partie résolu par l’extension Radius utilisant le protocole EAP). Refus silencieux de paquets Un serveur Radius qui reçoit des paquets qui ne contiennent pas l’information attendue ou qui contient des erreurs les éliminent sans avertissements. Acquittement de message bout-en-bout Un client Radius attend un réponse positive ou négative après une requête.4) Différences entre RADIUS et DIAMETER Le protocole DIAMETER est conçu comme la génération suivante du protocole RADIUS. 7. Cela peut faire croire au client que le serveur est inactif car il ne reçoit plus de réponse. 5.1.

mais seulement des attributs spécifiques. ce qui signifie que chaque saut peut aisément modifier l’information. Le protocole Diameter possède une obligation d’alignement de 32 bits.8. Aucun support pour les commandes spécifiques à l’utilisateur Radius n’implante pas de commande spécifiques à l’utilisateur. Sécurité Hop-by-hop Radius implante seulement la sécurité hop-by-hop . Coût des processeurs élevés Le protocole Radius n’impose pas d’obligations d’alignement. dont on ne sait plus quelle est l’origine. Diameter ne possède pas de code pour les commandes spécifiques à l’utilisateur 10. qui ajoutent une charge inutile sur la plupart des processeurs. 15 . 9. Diameter implante une sécurité de bout-en-bout qui garantit que l’information ne peut être modifié sans avertissement. qui peut être plus facilement supportée par la plupart des processeurs.

Provider Internet . une configuration qui peut être utilisée par un fournisseur d’accès à un réseau (notamment Internet). Le serveur AAA vérifiera l’authentification et les autorisations des clients puis gèrera les comptes des clients du FAI.168. Le serveur AAA sera un serveur Radius.254 .197. Les clients demandent l’accès à Internet et sont connectés directement au serveur de connexion.49 192. Pour ce faire. d’un point de vue pratique.48/28 192.168. Le FAI communique avec le serveur RADIUS en UDP.132 . à petite échelle.78 Serveur de Connexion à Internet Serveur AAA . 16 . La configuration mise en pace est illustrée par le schéma ci-dessous.2) Mise en œuvre d’un FAI utilisant RADIUS Introduction Cette partie concerne la mise en place.50 . Les communications entre le FAI et les clients se feront par le biais du protocole PPPoE qui est l’utilisation du protocole PPP sur un réseau Ethernet. C’est le point d’accès à Internet pour tous les clients du FAI.197. nous avons réalisé.64/28 Client 1 Client 2 Client 3 Clients Il y a trois protagonistes principaux pour la mise en place d’une configuration d’un Fournisseur d’Accès à Internet (FAI) : Ø un serveur de connexion Ø un serveur AAA Ø les clients Le serveur de connexion permet l’accès au réseau Internet. Il routera les demandes des clients vers leur destination ainsi que les réponses dans le sens inverse. des protocoles AAA.

inclue un plugin pour utiliser PPPoE (Roaring Penguin http://www. tous les modules nécessaires à son fonctionnement sont chargés lors de son démarrage . téléchargeable par CVS (http://www. et. qui ne sont plus nécessaires.roaringpenguin. les instructions d’installation sont fournies à cette adresse : http://www.5-1 du logiciel Roaring Penguin qui contient un serveur PPPoE http://www.2.html • Linux Pour linux. # télécharger la dernière version de ppp $ cvs -z5 -d :pserver:cvs@pserver. Typiquement. Nous avons travaillé sur la version 4. # lancement du serveur PPPoE $ pppoe-server 17 . sont les suivantes : options NETGRAPH options NETGRAPH_PPPOE options NETGRAPH_SOCKET Si vous souhaitez avoir la dernière version de PPP.org/doc/fr/books/handbook/ppp-and-slip.freebsdfr. il n’est plus nécessaire d’inclure des options dans le noyau. on trouve une implémentation de PPP sur http://www.roaringpenguin.samba.samba.org). La dernière version.1) PPPoE Produits • FreeBSD PPPoE peut être utilisé sur Unix. PPP et PPPoE sont déjà implantés dans le noyau.com/pppoe/. make install Aussi nous avons téléchargé la version 3.7 de FreeBSD.com/pppoe/) et un plugin pour communiquer avec un serveur RADIUS. les options à rajouter dans le noyau. de plus./configure make . ce qui ne nécessite aucune installation supplémentaire.tgz cd ppp_xxx #éditer le makefile et décommenter la ligne pour permettre l’utilisation du plugin .cvshome.org:/cvsroot co ppp # installation tar xvzf ppp_xxx.org/ppp. En effet. L’utilisation de PPPoE sur cet environnement est assez simple.

conf l'adresse de son serveur DNS Le lancement du client se fait par la commande : ppp –ddial pppoe Pour le lancement du client au démarrage de l'ordinateur.Avec la version 2.conf.conf ppp_enable="YES" ppp_mode="ddial" ppp_profile="pppoe" # nom d'étiquette de configuration dans le ppp.conf 18 . la machine linux semble ne pas parvenir à envoyer ses paquets au client. set authkey : l'indication du nom d'utilisateur et du mot de passe enable pap chap : la possibilité d'authentification par PAP ou CHAP (voir section suivante) add default HISADDR : la définition de l'adresse de route par défaut comme étant celle du serveur enable dns : la possibilité pour le serveur d'écrire dans le fichier /etc/resolv. les ajouts dans le fichier /etc/rc.conf sont les suivants : /etc/rc. Pour le client.0 et une autre client PPPoE sous FreeBSD 4. nous n’avons pas réussi à établir une connexion PPPoE entre une machine serveur PPPoE sous Linux Mandrake 9.4.conf) Ø Ø Ø Ø Ø Les options principales sont : set device : l'utilisation de PPPoE sur l'interface fxp0 set authname. Des exemples de configurations peuvent être trouvés dans le répertoire /var/share/exemples/ppp/ sous Unix. Configuration client et serveur La configuration de PPP se fait par le fichier /etc/ppp/ppp.conf pppoe: set device PPPoE:fxp0:pppoe-in enable lqr set cd 5 set dial set login set redial 0 0 set authname cyril set authkey jesuisclient enable pap chap add default HISADDR # Add a (sticky) default route enable dns # request DNS info (for resolv. Nous avons à définir les paramètres chez le client et chez le serveur afin qu’ils puissent supporter PPPoE.2b de pppd. Après un première échange PPPoE.1.7. nous donnons les paramètres suivants : /etc/ppp/ppp. elle affiche l’erreur : « timeout sending message ».

Les nom de login et mot de passe peuvent être inscrit dans le ppp. pas les utilisateurs. Ainsi les connexions PPP peuvent être établies par n’importe quel utilisateur d’un système.168. entre autre. cependant elle peut éventuellement se faire de manière bidirectionnelle (le FAI auprès du client aussi).conf pppoed_enable="YES" # lance le démon PPPoE pppoed_provider="pppoe-in" # étiquette de configuration dans ppp.conf pppoed_flags="-P /var/run/pppoed.pid" # Flags to pppoed (if enabled).secret pour les parties devant s'identifier à la machine locale. pour un client.197. Ces deux derniers protocoles ont été conçus pour authentifier les ordinateurs. Ceci permet.77 # @IP accordée accept dns # Allow DNS negotiation set authname fai set authkey jesuisfai Les options principales en plus de celles indiquées chez le client : Ø enable passwdauth : on accepte l'authentification système Ø set ifaddr : indique l'adresse du serveur et le pool d'adresses allouées aux clients Ø accept dns : on accepte l'option enable dns chez les clients (voir au-dessus) Le serveur se lance par la commande /usr/libexec/pppoed -p pppoe-in fxp1. fxp1 est le nom de l’interface connectée aux clients.78 192. Cette dernière nécessite donc que le client s'authentifie mais aussi que le FAI fasse de même.168. L’authentification PAP se fait de manière unidirectionnelle (le client auprès du FAI).conf pppoe-in: allow mode direct enable lqr proxy # Enable LQR and proxy-arp enable chap pap passwdauth # Force client authen set ifaddr 192.conf pour l'utilisateur et s'écrivent dans le fichier /etc/ppp/ppp. pppoed_interface="fxp1" # interface réseau sur laquelle lancer pppoed Authentification PPP PPP utilise plusieurs protocoles pour l’authentification qui sont : l'authentification système. /etc/rc.Les paramètres du serveur sont les suivants : /etc/ppp/ppp.197. 19 . PAP (Password Authentification Protocol) et CHAP (Challenge/Handshake Authentication Protocol).65-192. de gérer plusieurs comptes vers des FAI différents. Avec CHAP elle se fait impérativement de manière bidirectionnelle.197.168.

conf. clients.conf. etc.secret # Authname Authkey fai jesuisfai Peer's IP address Label Callback Peer's IP address Label Callback Le serveur : /etc/ppp/ppp.freeradius. Sous Linux.1 L’installation sous Linux ou sous FreeBSD se passe sans problème.1/ o Semble le plus complet • OpenRadius http://www.nl/~evbergen/radius-pppd.xs4all. La configuration standard ouvre le serveur sur les ports UDP 1812. par défaut la configuration se trouve dans le répertoire /usr/local/etc/raddb/ et les fichiers importants sont radiusd. Le client : /etc/ppp/ppp.Dans notre cas.secret # Authname Authkey cyril jesuisclient 2. Il semble y avoir des problèmes pour le chargement de modules notamment du module CHAP.2) Radius Produits libre • FreeRadius http://www. • • lancement en mode debug : radiusd –X test (normalement) : radtest test test localhost 0 testing123 Nous n’avons pas réussi à faire fonctionner le test. Nous n’avons pas eu le temps de tenter de configurer.org o Développement original pour linux o ports FreeBSD : /usr/ports/net/freeradius/work/freeradius-0.8. 1813 et 1814. ces fichiers se composent comme suit pour le client et le serveur.html Installation du serveur FreeRadius 8. 20 .

deux manipulations sont à faire. Configuration du NAS Afin que le serveur PPP puisse communiquer avec le serveur Radius.conf … set radius /etc/radius.conf.conf indique le mode d’authentification utilisé.conf auth 192. /etc/radius. nous n’avons pas eu le temps de nous occuper de la configuration.197.168. L’utilisation de Radius est précisée dans le fichier /etc/ppp/ppp.Installation de OpenRadius Comme précédemment. l’adresse de la machine serveur Radius ainsi que le numéro de port où le contacter. /etc/ppp/ppp.conf Le fichier de configuration /etc/radius. 21 .50 sur le port UDP 1812.197. le répertoire standard de configuration est : /usr/local/etc/openradius/. Le fichier de configuration est « configuration ».168. • • lancement en mode debug : /usr/local/sbin/radiusd -dall –b Nous n’avons pas réussi à faire fonctionner le script test.50 1812 Nous indiquons ici que nous utilisons l’authentification système et que le serveur Radius se trouve à l’adresse IP 192. Sous Linux.

168. Les configurations initiales sont donc les suivantes : côté serveur PPP § ifconfig fxp0: flags=8843<UP.fr nameserver 193.0.RUNNING.197.BROADCAST.168.SIMPLEX.1 22 .254 127.0.168.RUNNING.2.79 ether 00:d0:b7:85:f3:d6 media: Ethernet autoselect (100baseTX <full-duplex>) status: active fxp2: flags=8843<UP.197.197.168.168.MULTICAST> mtu 1500 inet 192.0.197.168.LOOPBACK.197.0.0.197.168.78 netmask 0xfffffff0 broadcast 192. le client ne possède pas de configuration de routage propre (pas d’adresse IP.1 192. ni de serveur DNS connu). mais est en liaison physique directe avec le serveur.168.BROADCAST.48/28 192.MULTICAST> mtu 1500 inet 192.SIMPLEX.MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6 inet 127.197. Les trames sont capturées grâce à Ethereal.MULTICAST> mtu 1500 § netstat -nr Internet: Destination default 127.3) Scénarios Initialement.168.63 ether 00:d0:b7:85:28:05 media: Ethernet autoselect (100baseTX <full-duplex>) status: active lo0: flags=8049<UP.1 netmask 0xff000000 ppp0: flags=8010<POINTOPOINT.197.64/28 192.40. Le serveur PPP est connecté au réseau des clients.168.197.254 Gateway 192.conf domain esial.49 netmask 0xfffffff0 broadcast 192. ainsi qu’au serveur Radius. à Internet.168.50.RUNNING.RUNNING.SIMPLEX.255 ether 00:d0:b7:dd:1a:77 media: Ethernet autoselect (100baseTX <full-duplex>) status: active fxp1: flags=8843<UP.0.197. ni de route par défaut.197 192.uhp-nancy.132 netmask 0xffffff00 broadcast 192.MULTICAST> mtu 1500 inet6 fe80::2d0:b7ff:fedd:1a77%fxp0 prefixlen 64 scopeid 0x1 inet 192.BROADCAST.1 link#1 link#2 link#3 link#1 Flags UGSc UH UC UC UC UHLW Refs 0 0 1 1 1 1 Use 0 24 0 0 0 0 Netif Expire fxp0 lo0 fxp0 fxp1 fxp2 fxp0 § cat /etc/resolv.

fr #nameserver 193.0.197.0.1 netmask 0xff000000 § netstat -nr Internet: Destination 127.0.LOOPBACK.RUNNING.78) Possibilité de ping du client vers n’importe quelle machine du réseau Accès à Internet disponible pour le client ü Résolution de nom effective lorsqu’il n’y a rien dans /etc/resolv.1 Flags UH Refs 0 Use 0 Netif Expire lo0 § cat /etc/resolv.0.conf chez le client.1 Gateway 127.SIMPLEX.uhp-nancy.conf #domain esial.1 Scénario sans serveur Radius Côté serveur PPP ü Lancement du daemon « pppoed » Coté Client ü Lancement du client « ppp » Résultat : Connexion PPPoE entre le client et le serveur PPP Connexion PPP du client vers le serveur Demande d’authentification CHAP de la part du client Succès de l’authentification Affectation d’une adresse IP au client par le serveur PPP Attribution d’une route par défaut par le serveur au client (192.MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7 inet 127.côté client § ifconfig fxp0: flags=8802<BROADCAST.40. Le serveur y ajoute l’adresse de DNS qu’il utilise.MULTICAST> mtu 1500 ether 00:d0:b7:8f:4f:0a media: Ethernet autoselect (100baseTX <full-duplex>) status: active ppp0: flags=8010<POINTOPOINT.MULTICAST> mtu 1500 lo0: flags=8049<UP.50.0.0.168. ü ü ü ü ü ü ü ü 23 .

MULTICAST> mtu 1500 lo0: flags=8049<UP.0.1 link#1 link#2 link#3 link#1 192.1 netmask 0xff000000 ppp0: flags=8010<POINTOPOINT.SIMPLEX.197.168.65 Gateway 192.255 ether 00:d0:b7:dd:1a:77 media: Ethernet autoselect (100baseTX <full-duplex>) status: active fxp1: flags=8843<UP.197.RUNNING.40.254 127.197.197.MULTICAST> mtu 1500 inet 192.0.168.168.197.168.POINTOPOINT.conf #domain esial.78 127.255.197.SIMPLEX.MULTICAST> mtu 1500 inet6 fe80::2d0:b7ff:fe8f:4f0a%fxp0 prefixlen 64 scopeid 0x1 ether 00:d0:b7:8f:4f:0a media: Ethernet autoselect (100baseTX <full-duplex>) status: active ppp0: flags=8010<POINTOPOINT.0.78 Flags UGSc UH UC UC UC UHLW UH Refs 2 0 1 1 1 1 0 Use 0 24 0 0 0 0 0 Netif Expire fxp0 lo0 fxp0 fxp1 fxp2 fxp0 tun0 côté client § ifconfig fxp0: flags=8843<UP.197.50.197.168.0.MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6 inet 127.RUNNING.POINTOPOINT.197.48/28 192.132 netmask 0xffffff00 broadcast 192.78 Gateway 192.0.40.255 nameserver 193.BROADCAST.LOOPBACK.168.168.197.168.0.RUNNING.0.254 192.197.168.MULTICAST> mtu 1500 tun0: flags=8051<UP.197.168.BROADCAST.0.MULTICAST> mtu 1500 inet6 fe80::2d0:b7ff:fedd:1a77%fxp0 prefixlen 64 scopeid 0x1 inet 192.197.BROADCAST.197 192.168.1 192.78 --> 192.168.0.MULTICAST> mtu 1492 inet6 fe80::2d0:b7ff:fe8f:4f0a%tun0 --> fe80::2d0:b7ff:fedd:1a77%tun0 prefixlen 128 scopeid 0x8 inet 192.168.255.78 netmask 0xffffffff Opened by PID 229 § netstat -nr Internet: Destination default 127.168.79 ether 00:d0:b7:85:f3:d6 media: Ethernet autoselect (100baseTX <full-duplex>) status: active fxp2: flags=8843<UP.On obtient donc les configurations suivantes : côté serveur PPP § ifconfig xp0: flags=8843<UP.78 netmask 0xfffffff0 broadcast 192.0.RUNNING.0.fr #nameserver 193.168.197.BROADCAST.168.65 netmask 0xffffffff inet6 fe80::2d0:b7ff:fedd:1a77%tun0 --> fe80::2d0:b7ff:fe8f:4f0a%tun0 prefixlen 128 scopeid 0xe Opened by PID 318 § netstat -nr Internet: Destination default 127.168.64/28 192.RUNNING.SIMPLEX.50.1 192.MULTICAST> mtu 1492 inet 192.RUNNING.MULTICAST> mtu 1500 inet 192.1 24 .197.1 netmask 0xff000000 tun0: flags=8051<UP.RUNNING.0.168.MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7 inet 127.197.1 192.168.65 --> 192.168.65 Flags UGSc UH UH Refs 0 0 1 Use 0 0 0 Netif Expire tun0 lo0 tun0 § cat /etc/resolv.uhp-nancy.197.197.1 nameserver 255.63 ether 00:d0:b7:85:28:05 media: Ethernet autoselect (100baseTX <full-duplex>) status: active lo0: flags=8049<UP.SIMPLEX.LOOPBACK.197.RUNNING.49 netmask 0xfffffff0 broadcast 192.

Avec le serveur Radius Coté serveur Radius ü Lancement du daemon « radiusd » Côté serveur PPP ü Ajout de l’option d’utilisation de Radius dans ppp. 25 .conf ü Lancement du daemon « pppoed » Coté Client ü Lancement du client « ppp » Résultat : ü ü ü ü ü ü ü ü Connexion PPPoE du client vers le serveur PPP Connexion PPP du client vers le serveur PPP Demande d’authentification CHAP de la part du client Le serveur PPP vérifie la requête d’authentification auprès du serveur AAA Echec de l’authentification de la part du serveur AAA Connexion refusée de la part du serveur PPP auprès du client Fermeture de la connexion PPP Fermeture de la connexion PPPoE Aucune configuration du client n’a été faite.

Conclusion La connexion PPP entre un client et le FAI s’établie et l’attribution d’une adresse IP du pool fonctionne. mais celui-ci rejette toutes les demandes. Tout cela sans RADIUS. les requêtes du FAI parviennent bien au serveur RADIUS. 26 . Pour la suite du projet il faudrait travailler sur la configuration du serveur FreeRADIUS. En utilisant RADIUS.

1/Technology/ 27 .org/ppp/ • Overview Radius & Diameter http://ing.ctit.org/doc/en_US.finepoint.nu/~squirrel/PPPoE/FreeBSD%20PPPoE%20Howto.org/200101/pppoe.ietf.utwente.daemonnews.org/ • FreeBSD Handbook http://www.com/coinfo/pdf/Implementing-PPPoE-in-a-Network.1-bournelle-article.html http://free.pdf • Protocole L2TP Routage.org http://www.lip6.shtml • Implementing PPPoE in a Network (août 2002) Fine Point Technologies.html • Linux Mandrake http://www.html http://www.html • Site officiel de DIAMETER http://www.org/l2tp1. Inc.freebsd-fr.htm • FreeRadius http://www.freebsd.fr/dnac/5.pdf • Daemon News http://www.mine.Références • Adaptation et implémentation de Diameter/AAA pour Mobile IPv6 (2002-2003) Julien Bournelle et Maryline Laurent-Maknavicius http://www-rp. White Paper Series http://www.org/handbook/pppoe.routage.freebsd.mandrakelinux.html http://www.freeradius.html • Samba PPP http://dp.diameter.nl/WU5/D5.org/html.org/doc/fr/books/handbook/ppp-and-slip.com/ressource/howtos/PPP-HOWTO-13.charters/aaa-charter.samba.ISO8859-1/books/handbook/index.journaldunet.org • Howto PPP Linux http://developpeur.com • RFC AAA http://www.