Configuration de base de AAA sur un Server d'accès ccnp_cch ccnp_cch
Sommaire • Introduction - Schéma du réseau • Configuration générale de AAA - Validation de AAA - Spécification d'un serveur AAA externe - Configuration du serveur AAA • Configuration de l'authentification - Authentification de login - Authentification PPP • Configuration de l'autorisation - Autorisation Exec - Autorisation Réseau • Configuration de l'accounting ccnp_cch
Configuration générale de AAA Introduction Ce document explique comment configurer l'Authentification, l'Autorisation et l'Accounting (AAA) sur un routeur Cisco utilisant les protocoles RADIUS et TACACS+. Le but de ce document est de fournir des explications sur les commandes principales, quelques exemples ainsi que quelques conseils. Pour avoir une vue complète détaillée des commandes AAA et des options, référez-vous au document IOS 12.2 Security Configuration Guide: Authentication, Authorization and Accounting. LAN Client RNIS RNIS BRI Internet NAS RNIS PRI RTC/RNIS E0 Serveur AAA 172.22.53.100 Lignes analogiques 172.22.53.201 Client W2000 Configuration générale de AAA Pour valider AAA, vous devez utiliser la commande aaa new-model en mode de configu- ration global. Note: Jusqu'à ce que cette commande soit exécutée, toutes les autres commandes aaa sont cachées. Attention: La commande aaa new-model applique immédiatement l'authentification locale à toutes les lignes (line) sauf la ligne console (line cons 0). Si une session Telnet est ouverte sur le routeur après l'utilisation de cette commande (ou si la connexion a besoin d'être ré-exécutée) , l'utilisateur devra s'authentifier en utilisant la base de données locale du routeur. Pour éviter d'être bloqué en entrée sur le routeur, il est recommandé de définir un nom d'utilisateur et un mot de passe sur le serveur d'accès avant de commencer la configu- ration AAA. Exemple: username xxxx password yyyy ccnp_cch
ccnp_cch Spécification d'un serveur AAA externe En mode de configuration global, définissez un protocole de sécurité utilisé avec AAA (RADIUS, TACACS+). Si vous ne voulez pas utiliser ces deux protocoles, vous pouvez utiliser la base de données locale du routeur. Si vous utilisez TACACS+, exécutez la commande tacacs-server host <ip address of the AAA server> <key> Configuration du serveur AAA Sur le serveur AAA, configurez les paramètres suivants: • Nom du serveur d'accès • Adresse IP du serveur d'accès qui communique avec le serveur AAA Note: Si les deux équipements sont sur le même réseau Ethernet, par défaut le serveur d'accès utilise l'adresse IP définie sur l'interface Ethernet pour transmettre des paquets AAA. Ceci peut être un problème important quand un routeur a de multiples interfaces (et par conséquent de multiples adresses IP). Référez-vous à la documentation du serveur AAA pour suivre la procédure de configu- ration de ces paramètres. Le serveur AAA doit être accessible via IP depuis le serveur d'accès (exécutez une com- mande ping pour vérifiez la connectivité). Configuration de l'authentification L'authentification permet d'authentifier les utilisateurs avant de les autoriser à accéder au réseau et aux ressources (cette partie est traitée par l'autorisation). Pour configurer l'authentification AAA: 1. Définissez une liste de méthodes d'authentification (mode de configuration global) 2. Appliquez cette liste à une ou plusieurs interfaces (mode de configuration interface) La seule exception est la liste de méthodes par défaut (nommée "default"). la liste de méthodes par défaut est appliquée automatiquement à toutes les interfaces excepté celles qui ont liste de méthodes définie explicitement. Une liste de méthodes prédéfinie est prioritaire sur la liste de méthode par défaut. Les exemples d'authentification ci-après utilisent RADIUS, l'authentification login et PPP (la plus communément utilisée) pour expliquer les concepts tels que méthodes et listes nommées. Dans tous les exemples, TACACS+ peut être substitué à RADIUS ou à l'authentification locale. L'IOS Cisco utilise la première méthode listée pour authentifier les utilisateurs. Si la première méthode échoue (indiqué par un message ERROR), l'IOS Cisco sélectionne la méthode suivante dans la liste des méthodes. Ce processus continue jusqu'à ce qu'une authentification réussisse avec une méthode ou jusqu'à ce que toutes les méthodes soient épuisées. ccnp_cch
Il est important de noter que l'IOS Cisco tente une nouvelle authentification avec la méthode suivante de la liste uniquement lorsqu'il n'y a pas de réponse avec la précé- dente. Si l'authentification échoue à un endroit quelconque du cycle, signifiant que le serveur AAA ou la base de données locale répond en refusant l'accès à l'utilisateur (message FAIL), le processus d'authentification s'arrête et aucune autre méthode d'authentification sera cherchée. Pour permettre une authentification utilisateur, vous devez configurer le nom d'utilisa- teur et mot de passe sur le serveur AAA. Authentification login Vous pouvez également utiliser la commande aaa authentication login pour authenti- fier les utilisateurs qui veulent un accès Exec sur le serveur d'accès (tty, vty, console et aux). Exemple 1: Accès Exec en utilisant Radius puis Local aaa authentication login default group radius local Dans la commande ci-dessus: • La liste nommée est "default" • Il y a deux méthodes d'authentification (group radius et local) Tous les utilisateurs sont authentifiés en utilisant le serveur Radius (première méthode) Si le serveur Radius ne répond pas, la base de données locale du routeur est utilisée (seconde méthode). Pour l'authentification locale, définissez le nom d'utilisateur et le mot de passe. username xxxx password yyyy Parce que nous utilisons la liste "default" dans la commande aaa authentication login, l'authentification login est appliquée automatiquement à toutes les connexions login (tty, vty, console et aux). Note 1: Le serveur (Radius ou TACACS+) ne répondra pas à une requête aaa uthenti- cation transmises par le serveur d'accès s'il n'y a pas de connectivité IP. Il faut que le serveur d'accès soit correctement défini sur le serveur AAA et réciproquement. Note 2: Dans cet exemple, si nous n'avions pas inclus le mot-clé local, nous aurions eu la commande suivante: aaa authentication login default group radius Si le serveur AAA ne répond pas à la requête d'authentification, l'authentification échoue (le routeur n'a pas d'autre méthode possible). ccnp_cch
Note 3: Le mot-clé group fournit un moyen de grouper des serveurs existants. Cette fonctionnalité permet aux utilisateurs de choisir un ensemble de serveurs et de les utiliser pour un service particulier. Pour plus d'informations, référez-vous au document AAA server-group. Exemple 2: Accès console avec utilisation de mot de passe pour la ligne Reprenons la configuration de l'exemple 1 pour que le login console soit authentifié avec un mot de passe configuré sur line cons 0. La liste CONSOLE est définie et appliquée à line cons 0. Nous configurons: aaa authentication login CONSOLE line Dans la commande ci-dessus: • La liste nommée est CONSOLE • Il y a une seule méthode d'authentification (line) Une fois que la liste nommée CONSOLE (dans cet exemple) est crée, elle doit être appli- quée à une ligne (line) ou à une interface pour qu'elle prenne effet. Ceci est fait par la commande login authentication list-name. line con 0 exec-timeout 0 0 password cisco login authentication CONSOLE La liste CONSOLE remplace la liste de méthode par défaut "default" sur line cons 0. Vous devez entrer le mot de passe "cisco" (configuré sur line cons 0) pour avoir accès à la console. La liste "défault" est toujours utilisable pour tty, vty et aux. Note 1: Pour avoir un accès console authentifié par le nom d'utilisateur local, utilisez la commande: aaa authentication login CONSOLE local Dans ce cas un nom d'utilisateur et un mot de passe doivent être configurés dans la base de données locale du routeur. La liste doit être appliquée à la ligne ou à l'interface. Note 2: Pour ne plus avoir d'authentification utilisez la commande: aaa authentication login CONSOLE none Dans ce cas il n'y aura pas d'authentification pour l'accès console. ccnp_cch
Exemple 3: Mode d'accès enable avec un serveur AAA externe Vous pouvez valider l'authentification pour obtenir un accès en mode enable (privilège 15). Vous devez configurer: aaa authentication enable default group radius enable Seul le mot de passe sera requis, le nom d'utilisateur est $enab15$. Par conséquent le nom d'utilisateur $enab15$ doit être défini sur le serveur AAA. Si le serveur Radius ne répond pas, le mot de passe enable configuré localement sur le routeur devra être entré. Authentification PPP La commande aaa authentication ppp est utilisée pour authentifier une connexion PPP. Cette méthode est typiquement utilisée pour authentifier des utilisateurs distants RNIS ou RTC analogique qui veulent accéder à Internet ou à un site central via un serveur d'accès. Exemple 1: Méthode d'authentification PPP unique pour tous les utilisateurs Le serveur d'accès a une interface RNIS qui est configurée pour accepter les clients PPP distants. Nous utilisons ici un dialer rotary-group 0 mais la configuration peut être effectuée sur l'interface principale ou sur l'interface dialer. Vous devez configurer: aaa authentication ppp default group radius local Cette commande authentifie tous les utilisateurs en utilisant Radius. Si le serveur Radius ne répond pas, la base de données locale est utilisée. Exemple 2: Authentification PPP utilisant une liste spécifique Pour utiliser une liste nommée spécifique au lieu de la liste par défaut, utilisez les commandes suivantes: aaa authentication ppp ISDN_USER group radius interface dialer ppp authentication chap ISDN_USER Dans cet exemple la liste est ISDN_USER et la méthode est Radius. ccnp_cch
Exemple 3: PPP exécuté depuis une session en mode caractère Le serveur d'accès a une modem interne (Mica, Microcom ou Next Port). Supposons que les commandes aaa authentication login et aaa authentication ppp ont été exécutées. Si un utilisateur modem accède d'abord au routeur avec une session en mode caractère ( Hyperterminal après numérotation), l'utilisateur est authentifié sur une ligne tty. Pour débuter une session en mode paquet, l'utilisateur doit entrer ppp default ou ppp. Comme l'authentification ppp est configurée de manière explicite (avec aaa authentica- tion ppp) l'utilisateur est de nouveau authentifié au niveau de PPP. Pour éviter cette deuxième authentification, vous pouvez utiliser le mot-clé if-needed. aaa authentication login default group radius local aaa authentication ppp default group radius local if-needed Note 1: Si le client démarre une session PPP directement, l'authentification PPP est réalisée de suite comme il n'y a pas d'accès login au serveur d'accès. Configuration de l'autorisation L'autorisation est le processus qui vous permet de contrôler ce qu'un utilisateur peut ou ne peut pas faire. L'autorisation AAA a les mêmes règles que l'authentification: 1. Définir la liste nommée des méthodes d'autorisation 2. Ensuite appliquer cette liste à une ou plusieurs interfaces (exceptée la liste des méthodes par défaut) 3. La première méthode listée est utilisée. Si celle-ci ne donne aucune réponse, la seconde est utilisée et ainsi de suite. Les listes de méthodes sont spécifiques au type d'autorisation requis. Ce document se focalise sur les types d'autorisation Exec et Network. Pour de plus amples informations sur les autres types d'autorisation, référez-vous au document Cisco IOS Security Configuration Guide, release 12.2. ccnp_cch
ccnp_cch Autorisation Exec La commande aaa authorization exec détermine si l'utilisateur est autorisé à exécuter un shell EXEC. Cette facilité doit retourner un profil utilisateur avec des infirmations telles que "autocommand", session timeout, liste d'accès et privilège ainsi que d'autres paramètres propres à l'utilisateur. L'autorisation Exec est supportée uniquement sur le lignes vty et tty. Les exemples suivants utilisent Radius. Exemple 1: Méthodes d'authentification Exec communes à tous les utilisateurs Lorsque l'authentification est réalisée par: aaa authentication login default group radius local tous les utilisateurs qui veulent se connecter au serveur d'accès doivent être autorisés en utilisant radius (première méthode) ou la base de données locale du serveur d'accès. (deuxième méthode) Nous configurons: aaa authorization exec default group radius local Note 1: Sur le serveur AAA, Sevice-Type=1 (login) doit être sélectionné. Note 2: Avec cet exemple, si le mot-clé local n'est pas inclus et que le serveur AAA ne répond pas, l'autorisation ne sera pas possible et la connexion échouera. Note 3: Dans les exemples 2 et 3 ci-dessous aucune commande v'est nécessaire sur le routeur, seule une configuration du profil sur le serveur AAA est nécessaire. ccnp_cch
Exemple 3: Affectation du idle-timeout depuis le serveur AAA Pour configurer un "idle timeout" ( pour que la session soit terminée s'il n'y a pas de trafic pendant un temps déterminé), utilisez l'attribut Radius IETF 28: Idle-timeout dans le profil utilisateur. Autorisation Network La commande aaa authorization network applique l'autorisation pour toutes les commandes relatives à des services réseau tels PPP , SLIP et ARAP. Cette section est focalisée sur PPP qui est le plus communément utilisé. Le serveur AAA vérifie si une session PPP initiée par le client est autorisée. De plus, pour un client particulier, le profil AAA peut contenir l'idle-timeout, une liste d'accès et d'autres attributs propres à l'utilisateur qui seront téléchargés par l'IOS Cisco et appliqués à ce client. Les exemples suivants décrivent des autorisations utilisant Radius. Exemple 1: Méthodes d'autorisation Network communes à tous les utilisateurs Le serveur d'accès est utilisé pour accepter des connexions distantes entrantes. Premièrement, les utilisateurs sont authentifiés ( configuré précédemment). aaa authentication ppp default group radius local ensuite les utilisateurs doivent être autorisés: aaa authorization network default group radius local Note 1: Sur le serveur AAA configurez: • Service-Type=7 (framed) • Framed-Protocol=PPP . Exemple 2: Application d'attributs spécifiques utilisateur Vous pouvez utiliser le serveur AAA pour affecter des attributs par utilisateur tels l'adresse IP, le numéro de callback, le dialer idle-timeout ou une liste d'accès.... Dans une implémentation de la sorte, le serveur d'accès réseau télécharge les attributs appropriés depuis le profil utilisateur du serveur AAA. Exemple 3: Autorisation PPP avec une liste spécifique Comme pour l'authentification, on peut configurer un nom de liste au lieu d'utiliser le nom default. aaa authorization network ISDN_USER group radius local Ensuite cette liste est appliquée à l'interface interface dialer 0 ppp authentication ISDN_USER ccnp_cch
Configuration de l'Accounting La fonctionnalité Accounting AAA permet de garder une trace de l'accès aux services par les utilisateurs et du montant des ressources réseau consommées. Les règles de l'Accounting sont les mêmes que celles de l'authentification et de l'auto- risation. 1. Vous devez définir une liste nommée des méthodes d'accounting. 2. Appliquez cette liste à une ou plusieurs interfaces (sauf pour la liste default) 3. La première méthode de la liste est utilisée si celle-ci ne répond pas, la seconde est utilisée et ainsi de suite. AAA supporte différents type d'accounting: • Network accounting fournit des informations pour toutes les sessions PPP, SLIP et ARAP : nombre de paquets, d'octets, durée de session, heure de début et de fin de session. • Exec accounting fournit des informations sur des sessions terminal utilisateur EXEC (session Telnet par exemple) du serveur d'accès réseau: durée de session, heure de début et heure de fin de session. Les exemples ci-dessous sont orientés sur la manière dont les informations peuvent être transmises au serveur AAA. Exemple 1: Génération d'enregistrements d'accounting de début et de fin Pour chaque session PPP distante entrante, l'information d'accounting est transmise au serveur AAA une fois que le client est authentifié et après la déconnexion par l'utilisa- tion du mot-clé start-stop. aaa accounting network default start-stop group radius local Exemple 2: Génération d'enregistrements d'accounting de fin uniquement Si l'information d'accounting doit être transmise après la déconnexion du client, utilisez le mot-clé stop. aaa accounting network default stop group radius local ccnp_cch
Exemple 3: Génération d'enregistrements des échecs d'authentification et de négociation Jusqu'à présent l'accounting a généré des enregistrements pour des communications dont l'authentification a été faite avec succès. Si l'authentification ou la négociation PPP échouent, il n'y a pas d'enregistrement d'authentification. La solution est d'utiliser l'accounting " AAA resource failure stop". aaa accounting send stop-record authentication failure Un enregistrement de fin est transmis au serveur AAA Exemple 4: Validation de l'accounting complet Pour valider l'accounting complet qui génère un enregistrement de début à l'établis- sement de la connexion et un de fin à la fin de la connexion, utilisez la commande suivante: aaa accounting resource start-stop Cette commande a été introduite dans l'IOS Cisco release 12.1(3)T. Avec cette commande, un enregistrement d'accounting d'établissement d'appel et de déconnexion trace la progression de la connexion de la ressource à l'équipement. Un enregistrement d'accounting utilisateur de début et de fin d'authentification trace la progression de la gestion de l'utilisateur. Ces deux ensembles d'enregistrements sont liés par l'utilisation d'un ID de session unique pour l'appel. ccnp_cch