Introduction
Ce document décrit comment configurer un contrôleur de réseau local sans fil (WLC) 9800 pour l'authentification externe RADIUS ou TACACS+ lorsque vous accédez à son interface graphique utilisateur (GUI) ou à son interface de ligne de commande (CLI).
Informations générales
Lorsqu'un utilisateur tente d'accéder à l'interface de ligne de commande ou à l'interface utilisateur graphique du WLC, il est invité à saisir un nom d'utilisateur et un mot de passe. Par défaut, ces informations d'identification sont comparées à la base de données locale des utilisateurs, qui est présente sur le périphérique lui-même. Sinon, le WLC peut être invité à comparer les informations d'identification d'entrée avec un serveur AAA distant : le WLC peut communiquer avec le serveur à l'aide de RADIUS ou TACACS+.
Conditions préalables
Conditions requises
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Modèle de configuration Catalyst Wireless 9800
- Concepts AAA, RADIUS et TACACS+
Components Used
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- C9800-CL v16.10
- ISE 2.2.0
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Configuration
Dans cet exemple, configurez deux types d'utilisateurs sur le serveur AAA (ISE), respectivement adminuser et helpdeskuser. L'utilisateur adminuser doit se voir accorder un accès complet au WLC, alors que l'helpdeskuser est censé se voir attribuer uniquement des privilèges de surveillance au WLC, d'où l'absence d'accès à la configuration.
Tout d'abord, configurez sur le WLC et sur ISE pour l'authentification RADIUS, puis effectuez les mêmes opérations pour TACACS+.
Restrictions utilisateur en lecture seule
Lorsque TACACS+ ou RADIUS est utilisé pour l'authentification 9800 WebUI, les restrictions suivantes existent :
-
Les utilisateurs de niveau de privilège 1 à 10 ne peuvent afficher que l'onglet Monitor (ce qui équivaut au niveau de privilège d'un utilisateur en lecture seule authentifié localement)
-
Les utilisateurs avec niveau de privilège 15 ont un accès complet
-
Les utilisateurs avec un niveau de privilège 15 et un jeu de commandes autorisant uniquement des commandes spécifiques ne sont pas pris en charge. L'utilisateur peut encore être en mesure d'exécuter les modifications de configuration via l'interface utilisateur Web
Ce comportement ne peut pas être modifié.
Configurer le WLC RADIUS
Étape 1 : déclaration du serveur RADIUS
Tout d'abord, créez le serveur RADIUS ISE sur le WLC. Cela peut être fait à partir de la page Web du WLC de l'interface utilisateur graphique https://<WLC-IP>/webui/#/aaa comme indiqué dans l'image.

Une fenêtre contextuelle s'ouvre, dans laquelle vous pouvez taper le nom du serveur (il ne doit pas nécessairement correspondre au nom du système ISE), son adresse IP, le secret partagé et le port utilisé pour l'authentification et la comptabilité, ainsi que d'autres paramètres.
À partir de CLI :
paolo-9800(config)#radius server labISE
paolo-9800(config-radius-server)# address ipv4 10.48.71.92 auth-port 1812 acct-port 1813
paolo-9800(config-radius-server)# key Cisco123
Étape 2. Mapper le serveur RADIUS à un groupe de serveurs.
Si vous avez plusieurs serveurs RADIUS qui peuvent être utilisés pour l'authentification, il est recommandé de mapper tous ces serveurs au même groupe de serveurs. Le WLC s'occupe de l'équilibrage de charge des différentes authentifications entre les serveurs du groupe de serveurs.
Dans le même onglet GUI que celui de l'image.

Dans la fenêtre contextuelle, donnez un nom au groupe et déplacez les serveurs désirés vers la liste Affecté.
À partir de CLI :
paolo-9800(config)#aaa group server radius radGroup
paolo-9800(config-sg-radius)# server name labISE
Étape 3. Créez une méthode de connexion d'authentification AAA qui pointe vers le groupe de serveurs RADIUS.
Toujours dans la page GUI https://<WLC-IP>/webui/#/aaa, passez à l'onglet AAA Method list et créez la méthode Authentication comme indiqué dans l'image.

Dans la fenêtre contextuelle, attribuez un nom à la méthode, sélectionnez le type login et affectez le serveur de groupe créé à l'étape précédente.
Si vous sélectionnez Type de groupe comme 'local', le WLC vérifie d'abord si l'utilisateur existe localement, puis revient au groupe de serveurs.
CLI :
paolo-9800(config)#aaa authentication login radAutheMethod local group radGroup
Si vous sélectionnez le type de groupe comme 'groupe' et que l'option locale n'est pas rétablie, le WLC vérifie l'utilisateur par rapport au groupe de serveurs.
CLI :
paolo-9800(config)#aaa authentication login radAutheMethod group radGroup
Si vous sélectionnez Group Type comme 'group' et que l'option de retour à l'option locale est activée, le WLC vérifie l'utilisateur par rapport au groupe de serveurs et interroge la base de données locale uniquement si le serveur ne répond pas. Si le serveur envoie un rejet, l'utilisateur ne sera pas authentifié, même s'il peut exister dans la base de données locale.
CLI :
paolo-9800(config)#aaa authentication login radAutheMethod group radGroup local
Dans cet exemple de configuration, certains utilisateurs ne sont créés que localement, et certains utilisateurs seulement sur le serveur ISE, utilisent donc la première option.
Étape 4.Créez une méthode d’exécution d’autorisation AAA qui pointe vers le groupe de serveurs RADIUS. L'utilisateur doit également être autorisé pour obtenir l'accès. Dans le même onglet que celui de l'image.

Utilisez l'ordre local/groupe utilisé pour la méthode d'authentification à l'étape précédente, puis sélectionnez le type 'exec'.
À partir de CLI :
paolo-9800(config)#aaa authorization exec radAuthzMethod local group radGroup
Étape 5. Attribuez les méthodes aux configurations HTTP et aux lignes VTY utilisées pour Telnet/SSH. Ces étapes ne peuvent pas être effectuées à partir de l'interface utilisateur graphique. Il est donc nécessaire de les effectuer à partir de l'interface de ligne de commande.
Pour l'authentification GUI :
paolo-9800(config)#ip http authentication aaa login-authentication radAutheMethod
paolo-9800(config)#ip http authentication aaa exec-authorization radAuthzMethod
Pour l'authentification Telnet/SSH :
paolo-9800(config)#line vty 0 15
paolo-9800(config-line)#login authentication radAutheMethod
paolo-9800(config-line)#authorization exec radAuthzMethod
Lorsque vous modifiez les configurations HTTP, il est préférable de redémarrer les services HTTP et HTTPS :
paolo-9800(config)#no ip http server
paolo-9800(config)#no ip http secure-server
paolo-9800(config)#ip http server
paolo-9800(config)#ip http secure-server
Configurer RADIUS ISE
Étape 1. Configurez le WLC en tant que périphérique réseau pour RADIUS, comme indiqué dans l'image.

Dans la nouvelle fenêtre, ajoutez l'adresse IP, sélectionnez RADIUS et tapez le même secret partagé utilisé sur le WLC.
Étape 2. Créez un résultat d'autorisation pour renvoyer le privilège.
Pour configurer, adminuser doit avoir un niveau de privilège de 15, qui permet d'accéder à l'interpréteur de commandes d'invite exec. L'autre utilisateur, à la place, helpdeskuser n'a pas besoin d'un accès au shell d'invite exec, et il peut se voir attribuer un niveau de privilège inférieur à 15. Pour ce faire, créez un résultat de profil d'autorisation pour adminuser comme indiqué dans l'image.

En particulier, le profil de l'administrateur doit ressembler à ceci :

Ensuite, créez-en un similaire pour l'utilisateur du service d'assistance, modifiez uniquement la chaîne shell:priv-lvl=15 en shell:priv-lvl=X, et remplacez X par le niveau de privilège souhaité. Dans cet exemple, 1 est utilisé.
Étape 3. Créez les utilisateurs sur ISE comme l'illustre l'image.

Les informations d'identification fournies aux utilisateurs sont celles que vous tapez dans le WLC ultérieurement lors de l'authentification.
Étape 4. Authentifier les utilisateurs : Dans ce scénario, la règle de stratégie d'authentification par défaut d'ISE préconfigurée autorise déjà l'accès au réseau par défaut. Il n'est donc pas nécessaire de la modifier :

Étape 5. Autoriser les utilisateurs : Une fois que la tentative de connexion a réussi la stratégie d'authentification, elle doit être autorisée et ISE doit retourner le profil d'autorisation créé précédemment (permit accept, ainsi que le niveau de privilège).
Dans cet exemple, filtrez la tentative de connexion en fonction de l'adresse IP du périphérique (qui est l'adresse IP du WLC), et distinguez le niveau de privilège à accorder en fonction du nom d'utilisateur.
Une autre approche valide consiste à affecter tous les utilisateurs admin à un groupe donné et à accorder le niveau de privilège 15 uniquement aux utilisateurs qui appartiennent à un tel groupe.

Configuration du WLC Tacacs+
Étape 1 : déclaration du serveur Tacacs+ Tout d'abord, créez l'ISE du serveur Tacacs+ sur le WLC. Ceci peut être fait à partir de la page WLC de l'interface utilisateur graphique https://<WLC-IP>/webui/#/aaa.

Une fenêtre contextuelle s'ouvre, dans laquelle vous pouvez taper le nom du serveur (il ne doit pas nécessairement correspondre au nom du système ISE), son adresse IP, la clé partagée, le port utilisé et le délai d'attente.
À partir de CLI :
paolo-9800(config)#tacacs server labISE
paolo-9800(config-server-tacacs)# address ipv4 10.48.71.92
paolo-9800(config-server-tacacs)# key Cisco123
Étape 2. Mapper le serveur Tacacs+ à un groupe de serveurs. Si vous avez plusieurs serveurs Tacacs+ qui peuvent être utilisés pour l'authentification, il est recommandé de mapper tous ces serveurs au même groupe de serveurs. Le WLC s'occupe ensuite de l'équilibrage de charge des différentes authentifications entre les serveurs du groupe de serveurs.
Dans le même onglet GUI que celui de l'image.

Dans la fenêtre contextuelle, donnez un nom au groupe et déplacez les serveurs désirés vers la liste Affecté.
À partir de CLI :
paolo-9800(config)#aaa group server tacacs+ tacGroup
paolo-9800(config-sg-tacacs+)# server name labISE
Étape 3. Créez une méthode de connexion d'authentification AAA qui pointe vers le groupe de serveurs Tacacs+. Toujours dans la page GUI, https://<WLC-IP>/webui/#/aaa, accédez à l'onglet AAA Method list et créez la méthode Authentication comme indiqué dans l'image.

Dans la fenêtre contextuelle, attribuez un nom à la méthode, sélectionnez le type login et affectez le serveur de groupe créé à l'étape précédente.
Si vous sélectionnez Type de groupe comme local, le WLC vérifie d'abord si l'utilisateur existe localement, puis revient au groupe de serveurs.
CLI :
paolo-9800(config)#aaa authentication login tacAutheMethod local group tacGroup
Si vous sélectionnez le type de groupe comme groupe, et que l'option locale n'est pas rétablie, le WLC vérifie l'utilisateur par rapport au groupe de serveurs.
CLI :
paolo-9800(config)#aaa authentication login tacAutheMethod group tacGroup
Si vous sélectionnez Type de groupe comme groupe et que l'option de retour à l'option locale est activée, le WLC vérifie l'utilisateur par rapport au groupe de serveurs et interroge la base de données locale uniquement si le serveur ne répond pas. Si le serveur envoie un rejet, l'utilisateur ne sera pas authentifié, même s'il peut exister dans la base de données locale.
CLI :
paolo-9800(config)#aaa authentication login tacAutheMethod group tacGroup local
Dans cette configuration, certains utilisateurs ne sont créés que localement et certains utilisateurs uniquement sur le serveur ISE, d'où l'utilisation de la première option.
Étape 4. Créez une méthode d'exécution d'autorisation AAA qui pointe vers le groupe de serveurs Tacacs+. L'utilisateur doit également être autorisé pour obtenir l'accès. Dans le même onglet que celui de l'image.

Utilisez l'ordre local/groupe utilisé pour la méthode d'authentification à l'étape précédente, puis sélectionnez le type 'exec'.
À partir de CLI :
paolo-9800(config)#aaa authorization exec tacAuthzMethod local group tacGroup
Étape 5. Attribuez les méthodes aux configurations HTTP et aux lignes VTY utilisées pour Telnet/SSH
Ces étapes ne peuvent pas être effectuées à partir de l'interface utilisateur graphique, donc elles doivent être effectuées à partir de l'interface de ligne de commande.
- Pour l'authentification GUI :
paolo-9800(config)#ip http authentication aaa login-authentication tacAutheMethod
paolo-9800(config)#ip http authentication aaa exec-authorization tacAuthzMethod
- Pour l'authentification Telnet/SSH :
paolo-9800(config)#line vty 0 15
paolo-9800(config-line)#login authentication tacAutheMethod
paolo-9800(config-line)#authorization exec tacAuthzMethod
Note: lors des modifications apportées aux configurations HTTP, il est préférable de redémarrer les services HTTP et HTTPS :
paolo-9800(config)#no ip http server
paolo-9800(config)#no ip http secure-server
paolo-9800(config)#ip http server
paolo-9800(config)#ip http secure-server
Configuration ISE de Tacacs+
Étape 1. Configurez le WLC en tant que périphérique réseau pour Tacacs+ :

Notez que dans cet exemple, le WLC est déjà ajouté pour RADIUS, par conséquent cliquez sur modifier, puis faites défiler jusqu'à Paramètres d'authentification TACACS et ajoutez le secret nécessaire :

Note: pour utiliser ISE en tant que serveur TACACS+, vous devez disposer d'un package de licence d'administration de périphériques, ainsi que d'une licence de base ou de mobilité.
En outre, une fois les licences installées, vous devez activer la fonctionnalité d'administration de périphérique pour le noeud. Pour ce faire, modifiez le noeud de déploiement du noeud sous Administrateur > Déploiement, puis cochez la case :

Étape 2. Créer des profils TACACS, pour renvoyer le privilège
Pour effectuer des configurations, 'adminuser' doit avoir un niveau de privilège de 15, qui permet d'accéder à l'interpréteur de commandes d'invite exec.
L'autre utilisateur, 'helpDeskuser', n'a pas besoin d'un accès au shell d'invite exec et un niveau de privilège inférieur à 15 peut lui être attribué.
Pour ce faire, créez des profils TACACS :

Configurez un profil admin avec le privilège 15 comme suit :

Dans le profil d'assistance, le privilège par défaut est défini sur 1.
Étape 3. Créez les utilisateurs sur ISE :
Il en va de même pour l'étape 3 de la configuration RADIUS ISE
Étape 4. Créer un ensemble de stratégies d'administration de périphérique :

Le jeu de stratégies spécifique « IOS-9800 », dans cet exemple, filtre les requêtes avec une adresse IP égale à l'exemple 9800 IP.
En tant que stratégie d'authentification, nous quittons la règle par défaut et avons défini deux règles d'autorisation :
- le premier est déclenché lorsque le nom d'utilisateur est 'adminuser', il autorise toutes les commandes (via la règle 'Permit_all' par défaut) et attribue le privilège 15 (via 'IOS_Admin)
- la seconde est déclenchée lorsque le nom d'utilisateur est 'helpdeskuser', qu'elle autorise toutes les commandes (via la règle 'Permit_all' par défaut) et qu'elle attribue le privilège 15 (via 'IOS_Helpdesk)
Dépannage
Afin de dépanner l'accès TACACS+ à l'interface utilisateur graphique ou à l'interface de ligne de commande du WLC, émettez la commande debug tacacs, ainsi que 'term mon' et consultez la sortie en direct lorsqu'une tentative de connexion est effectuée.
Une tentative de connexion réussie de l'utilisateur 'adminuser' s'affiche :
paolo-9800#terminal monitor
paolo-9800#debug tacacs
TACACS access control debugging is on
paolo-9800#
Apr 17 12:16:55.269: TPLUS: Queuing AAA Authentication request 0 for processing
Apr 17 12:16:55.270: TPLUS(00000000) login timer started 1020 sec timeout
Apr 17 12:16:55.270: TPLUS: processing authentication start request id 0
Apr 17 12:16:55.270: TPLUS: Authentication start packet created for 0(adminuser)
Apr 17 12:16:55.270: TPLUS: Using server 10.48.71.92
Apr 17 12:16:55.270: TPLUS(00000000)/0/NB_WAIT/7FF771A25E18: Started 5 sec timeout
Apr 17 12:16:55.271: TPLUS(00000000)/0/NB_WAIT: socket event 2
Apr 17 12:16:55.271: TPLUS(00000000)/0/NB_WAIT: wrote entire 29 bytes request
Apr 17 12:16:55.271: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.272: TPLUS(00000000)/0/READ: Would block while reading
Apr 17 12:16:55.277: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.277: TPLUS(00000000)/0/READ: read entire 12 header bytes (expect 15 bytes data)
Apr 17 12:16:55.277: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.277: TPLUS(00000000)/0/READ: read entire 27 bytes response
Apr 17 12:16:55.277: TPLUS(00000000)/0/7FF771A25E18: Processing the reply packet
Apr 17 12:16:55.278: TPLUS: Received authen response status GET_PASSWORD (8)
Apr 17 12:16:55.278: TPLUS: Queuing AAA Authentication request 0 for processing
Apr 17 12:16:55.278: TPLUS(00000000) login timer started 1020 sec timeout
Apr 17 12:16:55.279: TPLUS: processing authentication continue request id 0
Apr 17 12:16:55.279: TPLUS: Authentication continue packet generated for 0
Apr 17 12:16:55.279: TPLUS(00000000)/0/WRITE/7FF771A25E18: Started 5 sec timeout
Apr 17 12:16:55.279: TPLUS(00000000)/0/WRITE: wrote entire 25 bytes request
Apr 17 12:16:55.302: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.302: TPLUS(00000000)/0/READ: read entire 12 header bytes (expect 103 bytes data)
Apr 17 12:16:55.302: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.302: TPLUS(00000000)/0/READ: read entire 115 bytes response
Apr 17 12:16:55.302: TPLUS(00000000)/0/7FF771A25E18: Processing the reply packet
Apr 17 12:16:55.302: TPLUS: Received authen response status PASS (2)
Apr 17 12:16:55.303: TPLUS: Queuing AAA Authorization request 0 for processing
Apr 17 12:16:55.303: TPLUS(00000000) login timer started 1020 sec timeout
Apr 17 12:16:55.303: TPLUS: processing authorization request id 0
Apr 17 12:16:55.304: TPLUS: Inappropriate protocol: 25
Apr 17 12:16:55.304: TPLUS: Sending AV service=shell
Apr 17 12:16:55.304: TPLUS: Sending AV cmd*
Apr 17 12:16:55.304: TPLUS: Authorization request created for 0(adminuser)
Apr 17 12:16:55.304: TPLUS: Using server 10.48.71.92
Apr 17 12:16:55.304: TPLUS(00000000)/0/NB_WAIT/7FF771A25E18: Started 5 sec timeout
Apr 17 12:16:55.305: TPLUS(00000000)/0/NB_WAIT: socket event 2
Apr 17 12:16:55.305: TPLUS(00000000)/0/NB_WAIT: wrote entire 48 bytes request
Apr 17 12:16:55.305: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.305: TPLUS(00000000)/0/READ: Would block while reading
Apr 17 12:16:55.335: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.335: TPLUS(00000000)/0/READ: read entire 12 header bytes (expect 18 bytes data)
Apr 17 12:16:55.335: TPLUS(00000000)/0/READ: socket event 1
Apr 17 12:16:55.335: TPLUS(00000000)/0/READ: read entire 30 bytes response
Apr 17 12:16:55.335: TPLUS(00000000)/0/7FF771A25E18: Processing the reply packet
Apr 17 12:16:55.335: TPLUS: Processed AV priv-lvl=15
Apr 17 12:16:55.335: TPLUS: received authorization response for 0: PASS
Apr 17 12:16:55.335: AAA Proxy: Couldnt get the login info
Apr 17 12:16:55.426: Socket I/O cleanup message sent to TACACS
Apr 17 12:16:55.426: Socket I/O cleanup message sent to TACACS
TPLUS Proc:SOCKET IO CLEANUP EVENT
TPLUS Proc:SOCKET IO CLEANUP EVENT
Apr 17 12:16:55.336: %WEBSERVER-5-LOGIN_PASSED: Chassis 1 R0/0: nginx: Login Successful from host 10.149.4.75 by user 'adminuser' using crypto cipher 'ECDHE-RSA-AES256-GCM-SHA384'
On peut voir que le serveur Tacacs+ renvoie le privilège correct 'AV-priv-lvl=15'
Lors de l'authentification RADIUS, une sortie de débogage similaire est affichée, concernant le trafic RADIUS.
'debug aaa authentication' et 'debug aaa Authorization' indiquent à la place quelle liste de méthodes est sélectionnée par le WLC lorsque l'utilisateur tente de se connecter.