Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Configuration

Diagramme du réseau

Configuration du VPN d'accès à distance avec authentification AAA/RADIUS via FMC

Configurer la stratégie d'autorisation sur ISE (serveur RADIUS)

Vérification

Dépannage

Introduction

Ce document décrit comment configurer l'autorisation RADIUS avec un serveur ISE (Identity Services Engine) afin qu'il transfère toujours la même adresse IP à Firepower Threat Defense (FTD) pour un utilisateur spécifique du client Cisco AnyConnect Secure Mobility via l'adresse IP tramée RADIUS Attribute 8.

Conditions préalables

Conditions requises

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- FTD

- Firepower Management Center (FMC)

- ISE

- Client de mobilité sécurisée Cisco AnyConnect

- protocole RADIUS

Components Used

Les informations contenues dans ce document sont basées sur les versions de logiciel suivantes :

- FMCv - 7.0.0 (build 94)

- FTDv - 7.0.0 (build 94)

- ISE - 2.7.0.356

- AnyConnect - 4.10.02086

- Windows 10 Pro

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

Diagramme du réseau

Configuration du VPN d'accès à distance avec authentification AAA/RADIUS via FMC

Pour une procédure pas à pas, reportez-vous à ce document et à cette vidéo :

- Configuration VPN d'accès à distance AnyConnect sur FTD

- Configuration AnyConnect initiale pour FTD géré par FMC

La configuration VPN d'accès à distance sur l'interface CLI FTD est la suivante :

ip local pool AC_Pool 10.0.50.1-10.0.50.100 mask 255.255.255.0

interface GigabitEthernet0/0

nameif Outside_Int

security-level 0

ip address 192.168.0.100 255.255.255.0

aaa-server ISE_Server protocol radius

aaa-server ISE_Server host 172.16.0.8

key *****

authentication-port 1812

accounting-port 1813

crypto ca trustpoint RAVPN_Self-Signed_Cert

enrollment self

fqdn none

subject-name CN=192.168.0.100

keypair <Default-RSA-Key>

crl configure

ssl trust-point RAVPN_Self-Signed_Cert

webvpn

enable Outside_Int

http-headers

hsts-server

enable

max-age 31536000

include-sub-domains

no preload

hsts-client

enable

x-content-type-options

x-xss-protection

content-security-policy

anyconnect image disk0:/csm/anyconnect-win-4.10.02086-webdeploy-k9.pkg 1 regex "Windows"

anyconnect enable

tunnel-group-list enable

cache

no disable

error-recovery disable

group-policy DfltGrpPolicy attributes

vpn-tunnel-protocol ikev2 ssl-client

user-authentication-idle-timeout none

webvpn

anyconnect keep-installer none

anyconnect modules value none

anyconnect ask none default anyconnect

http-comp none

activex-relay disable

file-entry disable

file-browsing disable

url-entry disable

deny-message none

tunnel-group RA_VPN type remote-access

tunnel-group RA_VPN general-attributes

address-pool AC_Pool

authentication-server-group ISE_Server

tunnel-group RA_VPN webvpn-attributes

group-alias RA_VPN enable

Configurer la stratégie d'autorisation sur ISE (serveur RADIUS)

Étape 1. Connectez-vous au serveur ISE et accédez à Administration > Network Resources > Network Devices.

Étape 2. Dans la section Périphériques réseau, cliquez sur Ajouter pour qu'ISE puisse traiter les demandes d'accès RADIUS à partir du FTD.

Entrez les champs Nom du périphérique réseau et Adresse IP, puis cochez la case Paramètres d'authentification RADIUS. Le secret partagé doit être la même valeur que celle utilisée lors de la création de l'objet RADIUS Server sur FMC.

Enregistrez-le avec le bouton à la fin de cette page.

Étape 3. Accédez à Administration > Identity Management > Identities.

Étape 4. Dans la section Network Access Users, cliquez sur Add afin de créer user1 dans la base de données locale d'ISE.

Entrez le nom d'utilisateur et le mot de passe dans les champs Nom et Mot de passe de connexion, puis cliquez sur Envoyer.

Étape 5. Répétez les étapes précédentes afin de créer user2.

Étape 6. Accédez à Stratégie > Jeux de stratégies.

Étape 7. Cliquez sur la flèche > à droite de l'écran.

Étape 8. Cliquez sur la flèche > en regard de Stratégie d'autorisation pour la développer. Cliquez maintenant sur le symbole + afin d'ajouter une nouvelle règle.

Entrez un nom pour la règle et sélectionnez le symbole + dans la colonne Conditions.

Cliquez dans la zone de texte Éditeur d'attributs et cliquez sur l'icône Objet. Faites défiler la liste vers le bas jusqu'à ce que vous trouviez l'attribut Nom d'utilisateur RADIUS et que vous le choisissiez.

Conservez Equals en tant qu'opérateur et entrez user1 dans la zone de texte à côté. Cliquez sur Use afin d'enregistrer l'attribut.

La condition de cette règle est maintenant définie.

Étape 9. Dans la colonne Résultats/Profils, cliquez sur le symbole + et choisissez Créer un nouveau profil d'autorisation.

Donnez-lui un nom et conservez ACCESS_ACCEPT comme type d'accès. Faites défiler jusqu'à la section Paramètres des attributs avancés.

Cliquez sur la flèche orange et choisissez Radius > Framed-IP-Address—[8].

Tapez l'adresse IP que vous souhaitez affecter de manière statique à cet utilisateur et cliquez sur Enregistrer.

Étape 10. Sélectionnez maintenant le profil d'autorisation nouvellement créé.

La règle d'autorisation est maintenant définie. Click Save.

Vérification

Étape 1. Accédez à la machine cliente sur laquelle le client Cisco AnyConnect Secure Mobility est installé. Connectez-vous à votre tête de réseau FTD (un ordinateur Windows est utilisé ici) et entrez les informations d'identification user1.

Cliquez sur l'icône du rapport (coin inférieur gauche) et accédez à l'onglet Statistiques. Confirmez dans la section Address Information que l'adresse IP attribuée est effectivement celle configurée sur la stratégie d'autorisation ISE pour cet utilisateur.

La sortie de la commande debug radius all sur FTD affiche :

firepower# SVC message: t/s=5/16: The user has requested to disconnect the connection.

webvpn_svc_np_tear_down: no ACL

webvpn_svc_np_tear_down: no IPv6 ACL

np_svc_destroy_session(0x9000)

radius mkreq: 0x13

alloc_rip 0x0000145d043b6460

new request 0x13 --> 3 (0x0000145d043b6460)

got user 'user1'

got password

add_req 0x0000145d043b6460 session 0x13 id 3

RADIUS_REQUEST

radius.c: rad_mkpkt

rad_mkpkt: ip:source-ip=192.168.0.101

RADIUS packet decode (authentication request)

RADIUS packet decode (response)

--------------------------------------

Raw packet data (length = 136).....

02 03 00 88 0c af 1c 41 4b c4 a6 58 de f3 92 31 | .......AK..X...1

7d aa 38 1e 01 07 75 73 65 72 31 08 06 0a 00 32 | }.8...user1....2

65 19 3d 43 41 43 53 3a 63 30 61 38 30 30 36 34 | e.=CACS:c0a80064

30 30 30 30 61 30 30 30 36 31 34 62 63 30 32 64 | 0000a000614bc02d

3a 64 72 69 76 65 72 61 70 2d 49 53 45 2d 32 2d | :driverap-ISE-2-

37 2f 34 31 37 34 39 34 39 37 38 2f 32 31 1a 2a | 7/417494978/21.*

00 00 00 09 01 24 70 72 6f 66 69 6c 65 2d 6e 61 | .....$profile-na

6d 65 3d 57 69 6e 64 6f 77 73 31 30 2d 57 6f 72 | me=Windows10-Wor

6b 73 74 61 74 69 6f 6e | kstation

Parsed packet data.....

Radius: Code = 2 (0x02)

Radius: Identifier = 3 (0x03)

Radius: Length = 136 (0x0088)

Radius: Vector: 0CAF1C414BC4A658DEF392317DAA381E

Radius: Type = 1 (0x01) User-Name

Radius: Length = 7 (0x07)

Radius: Value (String) =

75 73 65 72 31 | user1

Radius: Type = 8 (0x08) Framed-IP-Address

Radius: Length = 6 (0x06)

Radius: Value (IP Address) = 10.0.50.101 (0x0A003265)

Radius: Type = 25 (0x19) Class

Radius: Length = 61 (0x3D)

Radius: Value (String) =

43 41 43 53 3a 63 30 61 38 30 30 36 34 30 30 30 | CACS:c0a80064000

30 61 30 30 30 36 31 34 62 63 30 32 64 3a 64 72 | 0a000614bc02d:dr

69 76 65 72 61 70 2d 49 53 45 2d 32 2d 37 2f 34 | iverap-ISE-2-7/4

31 37 34 39 34 39 37 38 2f 32 31 | 17494978/21

Radius: Type = 26 (0x1A) Vendor-Specific

Radius: Length = 42 (0x2A)

Radius: Vendor ID = 9 (0x00000009)

Radius: Type = 1 (0x01) Cisco-AV-pair

Radius: Length = 36 (0x24)

Radius: Value (String) =

70 72 6f 66 69 6c 65 2d 6e 61 6d 65 3d 57 69 6e | profile-name=Win

64 6f 77 73 31 30 2d 57 6f 72 6b 73 74 61 74 69 | dows10-Workstati

6f 6e | on

rad_procpkt: ACCEPT

Got AV-Pair with value profile-name=Windows10-Workstation

RADIUS_ACCESS_ACCEPT: normal termination

RADIUS_DELETE

remove_req 0x0000145d043b6460 session 0x13 id 3

free_rip 0x0000145d043b6460

radius: send queue empty

Les journaux FTD affichent :

firepower#

<omitted output>

Sep 22 2021 23:52:40: %FTD-6-725002: Device completed SSL handshake with client Outside_Int:192.168.0.101/60405 to 192.168.0.100/443 for TLSv1.2 session

Sep 22 2021 23:52:48: %FTD-7-609001: Built local-host Outside_Int:172.16.0.8

Sep 22 2021 23:52:48: %FTD-6-113004: AAA user authentication Successful : server = 172.16.0.8 : user = user1

Sep 22 2021 23:52:48: %FTD-6-113009: AAA retrieved default group policy (DfltGrpPolicy) for user = user1

Sep 22 2021 23:52:48: %FTD-6-113008: AAA transaction status ACCEPT : user = user1

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.radius["1"]["1"] = user1

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.radius["8"]["1"] = 167785061

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.radius["25"]["1"] = CACS:c0a800640000c000614bc1d0:driverap-ISE-2-7/417494978/23

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.cisco.grouppolicy = DfltGrpPolicy

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.cisco.ipaddress = 10.0.50.101

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.cisco.username = user1

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.cisco.username1 = user1

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.cisco.username2 =

Sep 22 2021 23:52:48: %FTD-7-734003: DAP: User user1, Addr 192.168.0.101: Session Attribute aaa.cisco.tunnelgroup = RA_VPN

Sep 22 2021 23:52:48: %FTD-6-734001: DAP: User user1, Addr 192.168.0.101, Connection AnyConnect: The following DAP records were selected for this connection: DfltAccessPolicy

Sep 22 2021 23:52:48: %FTD-6-113039: Group <DfltGrpPolicy> User <user1> IP <192.168.0.101> AnyConnect parent session started.

<omitted output>

Sep 22 2021 23:53:17: %FTD-6-725002: Device completed SSL handshake with client Outside_Int:192.168.0.101/60412 to 192.168.0.100/443 for TLSv1.2 session

Sep 22 2021 23:53:17: %FTD-7-737035: IPAA: Session=0x0000c000, 'IPv4 address request' message queued

Sep 22 2021 23:53:17: %FTD-7-737035: IPAA: Session=0x0000c000, 'IPv6 address request' message queued

Sep 22 2021 23:53:17: %FTD-7-737001: IPAA: Session=0x0000c000, Received message 'IPv4 address request'

Sep 22 2021 23:53:17: %FTD-6-737010: IPAA: Session=0x0000c000, AAA assigned address 10.0.50.101, succeeded

Sep 22 2021 23:53:17: %FTD-7-737001: IPAA: Session=0x0000c000, Received message 'IPv6 address request'

Sep 22 2021 23:53:17: %FTD-5-737034: IPAA: Session=0x0000c000, IPv6 address: no IPv6 address available from local pools

Sep 22 2021 23:53:17: %FTD-5-737034: IPAA: Session=0x0000c000, IPv6 address: callback failed during IPv6 request

Sep 22 2021 23:53:17: %FTD-4-722041: TunnelGroup <RA_VPN> GroupPolicy <DfltGrpPolicy> User <user1> IP <192.168.0.101> No IPv6 address available for SVC connection

Sep 22 2021 23:53:17: %FTD-7-609001: Built local-host Outside_Int:10.0.50.101

Sep 22 2021 23:53:17: %FTD-5-722033: Group <DfltGrpPolicy> User <user1> IP <192.168.0.101> First TCP SVC connection established for SVC session.

Sep 22 2021 23:53:17: %FTD-6-722022: Group <DfltGrpPolicy> User <user1> IP <192.168.0.101> TCP SVC connection established without compression

Sep 22 2021 23:53:17: %FTD-7-746012: user-identity: Add IP-User mapping 10.0.50.101 - LOCAL\user1 Succeeded - VPN user

Sep 22 2021 23:53:17: %FTD-6-722055: Group <DfltGrpPolicy> User <user1> IP <192.168.0.101> Client Type: Cisco AnyConnect VPN Agent for Windows 4.10.02086

Sep 22 2021 23:53:17: %FTD-4-722051: Group

User

IP <192.168.0.101> IPv4 Address <10.0.50.101> IPv6 address <::> assigned to session

Les journaux RADIUS Live sur ISE montrent :

Étape 2. Connectez-vous à votre tête de réseau FTD (un ordinateur Windows est utilisé ici) et entrez les informations d'identification user2.

La section Address Information indique que l'adresse IP attribuée est effectivement la première adresse IP disponible dans le pool local IPv4 configuré via FMC.

La sortie de la commande debug radius all sur FTD affiche :

firepower# SVC message: t/s=5/16: The user has requested to disconnect the connection.

webvpn_svc_np_tear_down: no ACL

webvpn_svc_np_tear_down: no IPv6 ACL

np_svc_destroy_session(0xA000)

radius mkreq: 0x15

alloc_rip 0x0000145d043b6460

new request 0x15 --> 4 (0x0000145d043b6460)

got user 'user2'

got password

add_req 0x0000145d043b6460 session 0x15 id 4

RADIUS_REQUEST

radius.c: rad_mkpkt

rad_mkpkt: ip:source-ip=192.168.0.101

RADIUS packet decode (authentication request)

RADIUS packet decode (response)

--------------------------------------

Raw packet data (length = 130).....

02 04 00 82 a6 67 35 9e 10 36 93 18 1f 1b 85 37 | .....g5..6.....7

b6 c3 18 4f 01 07 75 73 65 72 32 19 3d 43 41 43 | ...O..user2.=CAC

53 3a 63 30 61 38 30 30 36 34 30 30 30 30 62 30 | S:c0a800640000b0

30 30 36 31 34 62 63 30 61 33 3a 64 72 69 76 65 | 00614bc0a3:drive

72 61 70 2d 49 53 45 2d 32 2d 37 2f 34 31 37 34 | rap-ISE-2-7/4174

39 34 39 37 38 2f 32 32 1a 2a 00 00 00 09 01 24 | 94978/22.*.....$

70 72 6f 66 69 6c 65 2d 6e 61 6d 65 3d 57 69 6e | profile-name=Win

64 6f 77 73 31 30 2d 57 6f 72 6b 73 74 61 74 69 | dows10-Workstati

6f 6e | on

Parsed packet data.....

Radius: Code = 2 (0x02)

Radius: Identifier = 4 (0x04)

Radius: Length = 130 (0x0082)

Radius: Vector: A667359E103693181F1B8537B6C3184F

Radius: Type = 1 (0x01) User-Name

Radius: Length = 7 (0x07)

Radius: Value (String) =

75 73 65 72 32 | user2

Radius: Type = 25 (0x19) Class

Radius: Length = 61 (0x3D)

Radius: Value (String) =

43 41 43 53 3a 63 30 61 38 30 30 36 34 30 30 30 | CACS:c0a80064000

30 62 30 30 30 36 31 34 62 63 30 61 33 3a 64 72 | 0b000614bc0a3:dr

69 76 65 72 61 70 2d 49 53 45 2d 32 2d 37 2f 34 | iverap-ISE-2-7/4

31 37 34 39 34 39 37 38 2f 32 32 | 17494978/22

Radius: Type = 26 (0x1A) Vendor-Specific

Radius: Length = 42 (0x2A)

Radius: Vendor ID = 9 (0x00000009)

Radius: Type = 1 (0x01) Cisco-AV-pair

Radius: Length = 36 (0x24)

Radius: Value (String) =

70 72 6f 66 69 6c 65 2d 6e 61 6d 65 3d 57 69 6e | profile-name=Win

64 6f 77 73 31 30 2d 57 6f 72 6b 73 74 61 74 69 | dows10-Workstati

6f 6e | on

rad_procpkt: ACCEPT

Got AV-Pair with value profile-name=Windows10-Workstation

RADIUS_ACCESS_ACCEPT: normal termination

RADIUS_DELETE

remove_req 0x0000145d043b6460 session 0x15 id 4

free_rip 0x0000145d043b6460

radius: send queue empty

Les journaux FTD affichent :

<omitted output>

Sep 22 2021 23:59:26: %FTD-6-725002: Device completed SSL handshake with client Outside_Int:192.168.0.101/60459 to 192.168.0.100/443 for TLSv1.2 session

Sep 22 2021 23:59:35: %FTD-7-609001: Built local-host Outside_Int:172.16.0.8

Sep 22 2021 23:59:35: %FTD-6-113004: AAA user authentication Successful : server = 172.16.0.8 : user = user2

Sep 22 2021 23:59:35: %FTD-6-113009: AAA retrieved default group policy (DfltGrpPolicy) for user = user2

Sep 22 2021 23:59:35: %FTD-6-113008: AAA transaction status ACCEPT : user = user2

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.radius["1"]["1"] = user2

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.radius["25"]["1"] = CACS:c0a800640000d000614bc367:driverap-ISE-2-7/417494978/24

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.cisco.grouppolicy = DfltGrpPolicy

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.cisco.username = user2

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.cisco.username1 = user2

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.cisco.username2 =

Sep 22 2021 23:59:35: %FTD-7-734003: DAP: User user2, Addr 192.168.0.101: Session Attribute aaa.cisco.tunnelgroup = RA_VPN

Sep 22 2021 23:59:35: %FTD-6-734001: DAP: User user2, Addr 192.168.0.101, Connection AnyConnect: The following DAP records were selected for this connection: DfltAccessPolicy

Sep 22 2021 23:59:35: %FTD-6-113039: Group <DfltGrpPolicy> User <user2> IP <192.168.0.101> AnyConnect parent session started.

<omitted output>

Sep 22 2021 23:59:52: %FTD-6-725002: Device completed SSL handshake with client Outside_Int:192.168.0.101/60470 to 192.168.0.100/443 for TLSv1.2 session

Sep 22 2021 23:59:52: %FTD-7-737035: IPAA: Session=0x0000d000, 'IPv4 address request' message queued

Sep 22 2021 23:59:52: %FTD-7-737035: IPAA: Session=0x0000d000, 'IPv6 address request' message queued

Sep 22 2021 23:59:52: %FTD-7-737001: IPAA: Session=0x0000d000, Received message 'IPv4 address request'

Sep 22 2021 23:59:52: %FTD-5-737003: IPAA: Session=0x0000d000, DHCP configured, no viable servers found for tunnel-group 'RA_VPN'

Sep 22 2021 23:59:52: %FTD-7-737400: POOLIP: Pool=AC_Pool, Allocated 10.0.50.1 from pool

Sep 22 2021 23:59:52: %FTD-7-737200: VPNFIP: Pool=AC_Pool, Allocated 10.0.50.1 from pool

Sep 22 2021 23:59:52: %FTD-6-737026: IPAA: Session=0x0000d000, Client assigned 10.0.50.1 from local pool AC_Pool

Sep 22 2021 23:59:52: %FTD-6-737006: IPAA: Session=0x0000d000, Local pool request succeeded for tunnel-group 'RA_VPN'

Sep 22 2021 23:59:52: %FTD-7-737001: IPAA: Session=0x0000d000, Received message 'IPv6 address request'

Sep 22 2021 23:59:52: %FTD-5-737034: IPAA: Session=0x0000d000, IPv6 address: no IPv6 address available from local pools

Sep 22 2021 23:59:52: %FTD-5-737034: IPAA: Session=0x0000d000, IPv6 address: callback failed during IPv6 request

Sep 22 2021 23:59:52: %FTD-4-722041: TunnelGroup <RA_VPN> GroupPolicy <DfltGrpPolicy> User <user2> IP <192.168.0.101> No IPv6 address available for SVC connection

Sep 22 2021 23:59:52: %FTD-7-609001: Built local-host Outside_Int:10.0.50.1

Sep 22 2021 23:59:52: %FTD-5-722033: Group <DfltGrpPolicy> User <user2> IP <192.168.0.101> First TCP SVC connection established for SVC session.

Sep 22 2021 23:59:52: %FTD-6-722022: Group <DfltGrpPolicy> User <user2> IP <192.168.0.101> TCP SVC connection established without compression

Sep 22 2021 23:59:52: %FTD-7-746012: user-identity: Add IP-User mapping 10.0.50.1 - LOCAL\user2 Succeeded - VPN user

Sep 22 2021 23:59:52: %FTD-6-722055: Group <DfltGrpPolicy> User <user2> IP <192.168.0.101> Client Type: Cisco AnyConnect VPN Agent for Windows 4.10.02086

Sep 22 2021 23:59:52: %FTD-4-722051: Group

User

IP <192.168.0.101> IPv4 Address <10.0.50.1> IPv6 address <::> assigned to session

Les journaux RADIUS Live sur ISE montrent :

Note: Vous devez utiliser différentes plages d'adresses IP pour l'attribution d'adresses IP à la fois sur le pool local IP FTD et les stratégies d'autorisation ISE afin d'éviter les conflits d'adresses IP en double parmi vos clients AnyConnect. Dans cet exemple de configuration, FTD a été configuré avec un pool local IPv4 de 10.0.50.1 à 10.0.50.100 et le serveur ISE attribue l'adresse IP statique 10.0.50.101.

Dépannage

Cette section fournit les informations que vous pouvez utiliser pour dépanner votre configuration.

Sur FTD :

- debug radius all

Sur ISE :

- Journaux en direct RADIUS