Guide de déploiement : Découvrez comment configurer Citrix Gateway pour utiliser nFactor pour s’authentifier auprès d’un serveur RADIUS pour MFA

Vue d’ensemble

Comment configurer Citrix Gateway pour utiliser nFactor pour s’authentifier auprès d’un serveur RADIUS pour l’authentification multifacteur (MFA).

Cet article explique comment configurer Citrix ADC Gateway pour utiliser l’authentification nFactor pour l’authentification multifacteur basée sur LDAP et RADIUS, ainsi que les techniques générales de dépannage.

Dans cet article, nous supposons que votre Citrix ADC dispose d’une implémentation Citrix Gateway et de serveurs RADIUS et LDAP.

Cet article recommande également de se connecter à vos serveurs RADIUS et LDAP via des serveurs virtuels d’équilibrage de charge locaux, et suppose que les équilibreurs de charge ont déjà été créés. Vous pouvez en savoir plus sur la création de serveurs virtuels d’équilibrage de charge ici et sur la configuration de la persistance RADIUS sur un équilibreur de charge ici.

Présentation des communications RADIUS

Le flux de communication RADIUS commence par un paquet de demande d’accès provenant du client, dans ce cas, Citrix ADC. Le serveur RADIUS valide le client et authentifie les informations d’identification reçues dans la demande d’accès. Après validation, le serveur RADIUS répond par un Access-Accept, Reject ou Challenge demandant des informations supplémentaires à l’utilisateur.

RADIUS_communication_image

Les serveurs RADIUS disposent d’une liste de clients valides et d’un secret partagé pour chacun d’entre eux. Un serveur RADIUS ignore généralement les demandes de clients non valides, mais certaines implémentations renvoient des échecs d’authentification. Le secret partagé crypte le composant mot de passe des informations d’identification. Lorsque le secret partagé est incorrect, le serveur rejette toujours les mots de passe car ils ne sont pas déchiffrés à la valeur correcte.

Par défaut, Citrix ADC envoie des demandes d’authentification RADIUS à partir du NSIP du nœud HA actif et cible un seul serveur RADIUS.

RADIUS_NSIP_source_image

Plutôt que de définir les NSIP des deux ADC dans une paire HA en tant que clients sur vos serveurs RADIUS, Citrix recommande à l’ADC d’envoyer des demandes d’authentification via un serveur virtuel d’équilibrage de charge local. Le serveur virtuel d’équilibrage de charge ajoute également de la résilience à votre configuration.

Lorsque Citrix ADC envoie des demandes RADIUS via un serveur virtuel d’équilibrage de charge local, les demandes quittent l’ADC via un SNIP. Les SNIP sont des adresses IP flottantes et ne sont disponibles que sur le nœud HA principal actuel.

Lors de l’utilisation d’un serveur virtuel d’équilibrage de charge (LB), les NSIP des nœuds HA principal et secondaire adressent une demande à un VIP local. Le VIP LB envoie au serveur RADIUS à l’aide du SNIP de la paire HA.

RADIUS_NSIP_to_VIP_to_SNIP_image

Outils de dépannage RADIUS

Bien que la plupart des implémentations RADIUS soient effectuées sans, il peut être utile de comprendre les outils de dépannage les plus courants.

Le tube de débogage d’authentification « /tmp/aaad.debug » sur Citrix ADC

Vous pouvez afficher les événements d’authentification sur Citrix ADC en entrant le shell BSH avec « shell », puis en affichant le tube aaad.debug avec « cat /tmp/aaad.debug ».

Vous trouverez plus d’informations sur « aaad.debug » ici : https://support.citrix.com/article/CTX114999

NTRadPing

NTradping est un outil de test RADIUS tiers que vous pouvez utiliser pour générer des demandes d’authentification RADIUS et surveiller la réponse. Vous pouvez télécharger NTradping ici :

Grâce à NTradping, vous pouvez envoyer des demandes d’authentification RADIUS directement de votre client au serveur RADIUS et vous assurer qu’il est pleinement opérationnel. Sur le serveur RADIUS, vous devez définir l’adresse IP de votre client et un secret partagé. Vous aurez également besoin de règles de pare-feu pour permettre à votre client de communiquer avec le serveur RADIUS.

Vous pouvez également utiliser NTradping pour envoyer des demandes d’authentification au serveur virtuel LB sur l’ADC, qui les relaie au serveur RADIUS. Puisque ces requêtes proviennent de l’ADC, vous aurez besoin du même secret partagé dans NTradping que l’ADC. Vous aurez également besoin de règles de pare-feu pour permettre au client de communiquer avec le serveur virtuel RADIUS LB de l’ADC.

En testant chaque composant séparément, le test permet d’isoler l’endroit où se produit une défaillance. Supposons que vous puissiez envoyer des demandes réussies manuellement en utilisant le RADIUS de l’ADC. Dans ce cas, vous savez que le problème vient d’un élément antérieur, comme la définition du serveur RADIUS sur votre ADC, et vous pouvez concentrer vos efforts.

RADIUS_test_locations_image

NTradping se compose de deux fichiers que vous extrayez dans le même répertoire à partir de son zip compressé. Au lancement, NTradping vous invite à :

  • Le serveur RADIUS et le port
  • Le secret RADIUS
  • Nom d’utilisateur et mot de passe
  • Type de demande d’authentification

RADIUS_ntradping_image

Selon le test que vous effectuez, vous utiliserez l’adresse IP du serveur RADIUS ou celle du serveur virtuel LB de l’ADC comme destination. Le plus souvent, sur le port 1812.

Définissez un secret RADIUS pour votre client si vous envoyez directement des requêtes. Si vous envoyez des requêtes via le serveur virtuel LB de l’ADC pour imiter les demandes d’authentification de Gateway, utilisez le même secret partagé que celui que vous avez configuré pour l’ADC. Les champs de nom d’utilisateur et de mot de passe contiennent les informations d’identification que l’ADC doit envoyer au serveur RADIUS en votre nom. Généralement, le champ « mot de passe » contient la valeur du jeton MFA de l’utilisateur.

Lorsque vous cliquez sur « Envoyer », NTradping envoie une demande d’authentification depuis votre ordinateur vers la destination spécifiée et affiche la réponse (généralement un Access-Accept ou Access-Reject).

RADIUS_ntradping_accept_image

WireShark

Vous pouvez examiner la demande et la réponse RADIUS dans WireShark si vous effectuez un suivi de paquet sur Citrix ADC pendant le processus d’authentification.

WireShark est l’analyseur de protocole réseau le plus répandu et le plus utilisé au monde. WireShark est gratuit et disponible sans ici.

Vous pouvez trouver les filtres RADIUS de WireShark ici.

Vous trouverez les étapes à suivre pour effectuer un suivi des paquets sur un Citrix ADC ici.

Dans WireShark, vous verrez un paquet de demande d’accès suivi d’une réponse Access-Accept, Access-Reject ou Access-Challenge. Les réponses manquantes indiquent souvent un problème de communication tel que l’absence de règles de pare-feu ou l’absence de définition du client par le serveur RADIUS.

Instructions de l’interface

En supposant que la configuration sur vos serveurs RADIUS est déjà terminée, suivez les étapes suivantes pour l’authentification MFA avec Citrix Gateway :

Activer la fonction Authentification, autorisation et audit (AAA)

  1. Si la fonctionnalité AAA n’est pas déjà activée, accédez à Sécurité > AAA — Trafic des applications, puis cliquez avec le bouton droit de la souris pour activer la fonctionnalité.
    Enable_AAA_image

Ajouter des serveurs d’authentification

  1. Sélectionnez Sécurité > AAA — Trafic des applications, Stratégies, Authentification, Stratégies de base, RADIUS.
    Navigate_to_RADIUS_server_image

  2. Sélectionnez l’onglet Serveurs, puis cliquez sur « Ajouter ».
    Navigate_to_Radius_Server_Image

  3. Renseignez les détails de votre serveur RADIUS

    Citrix vous recommande de ne pas cibler un serveur RADIUS individuel, mais plutôt votre serveur virtuel d’équilibrage de charge. À ce titre, utilisez le VIP de votre RADIUS LB comme adresse IP du serveur dans cette page. La clé secrète doit correspondre à la valeur sur votre serveur RADIUS pour le SNIP de l’ADC. Activer_AAA_Image

  4. Sélectionnez Sécurité > AAA — Trafic des applications, stratégies, authentification, stratégies de base, LDAP. Ensuite, sélectionnez l’onglet « Serveurs » et cliquez sur « Ajouter ».
    LDAP_server_image

  5. Renseigner les détails de votre cible LDAP
    Comme RADIUS, Citrix vous recommande d’utiliser un serveur virtuel d’équilibrage de charge (LB) local comme destination. À ce titre, utilisez le VIP de votre serveur virtuel LDAP LB comme adresse IP du serveur sur cette page. RADIUS_server_details1_image RADIUS_server_details2_image

Ajouter des stratégies d’authentification avancées

  1. Sélectionnez Sécurité > AAA — Trafic des applications, Stratégies, Authentification, Stratégies avancées, Stratégie. Cliquez ensuite sur « Ajouter ».
    RADIUS_select_advanced_image

  2. Renseignez les détails de la stratégie comme indiqué, puis cliquez sur « Créer ».
    RADIUS_server_details_image

  3. Répétez l’étape pour créer une autre stratégie pour RADIUS, puis cliquez sur « Créer ».
    LDAP_auth_pol_image

Créer un serveur virtuel AAA

  1. Accédez à Configuration > Sécurité > AAA - Trafic des applications > Serveurs virtuels.
    RADIUS_auth_pol_image

  2. Cliquez sur « Ajouter » pour créer un serveur virtuel d’authentification.
    AAA_serveur virtuel_add_image

  3. Entrez les informations suivantes, puis cliquez sur OK.
    • Name : nom du serveur virtuel AAA.
    • Type d’adresse IP : remplacez le type d’adresse IP par Non adressable, car ce serveur virtuel est utilisé uniquement pour Citrix Gateway.
      aaa_virtual server_details_image
  4. Sous Certificat, sélectionnez « Aucun certificat de serveur ».
    AAA_serveur virtuel_cert1_image

  5. Cliquez sur « Cliquez pour sélectionner » pour sélectionner le certificat de serveur
    AAA_Cert_Binding_Image

  6. Cliquez sur le bouton radio en regard d’un certificat pour le serveur virtuel AAA, puis cliquez sur « Sélectionner ». Le certificat choisi n’a pas d’importance car ce serveur n’est pas directement accessible.
    AAA_cert_binding2_image

  7. Cliquez sur « Bind ».
    AAA_cert_binding3_image

  8. Cliquez sur « Continuer » pour fermer la section Certificat.
    AAA_cert_binding4_image

  9. Cliquez sur « Aucune stratégie d’authentification » dans « Stratégies d’authentification avancées ».
    AAA_serveur virtuel_auth_image

  10. Cliquez sur « Click to select » sous le champ « Select Policy ».
    AAA_serveur virtuel_auth2_image

  11. Sélectionnez la stratégie « LDAP_Pol » et cliquez sur « Sélectionner ».
    AAA_serveur virtuel_auth3_image

  12. Cliquez sur « Cliquez pour sélectionner » sous le champ « Sélectionner le facteur suivant ».
    AAA_serveur virtuel_auth4_image

  13. Cliquez sur « Ajouter » dans « Étiquettes de stratégie d’authentification ».
    AAA_serveur virtuel_auth5_image

  14. Entrez un nom pour l’étiquette de stratégie que l’ADC utilise pour déclencher l’authentification RADIUS et cliquez sur « Continuer ».
    AAA_serveur virtuel_create_pol_image

  15. Cliquez sur « Click to select » sous le champ « Select Policy ».
    AAA_serveur virtuel_pols1_image

  16. Sélectionnez la stratégie « Radius_Pol » et cliquez sur « Sélectionner ».
    AAA_serveur virtuel_pols2_image

  17. Cliquez sur « Lier » en bas de l’écran « Créer une étiquette de stratégie d’authentification ».
    AAA_serveur virtuel_create_pol_image

  18. Cliquez sur « Terminé » en bas de l’écran « Étiquette de stratégie d’authentification ».
    AAA_serveur virtuel_radius_pol1_image

  19. Cliquez sur « Sélectionner ».
    AAA_serveur virtuel_radius_pol2_image

  20. Cliquez sur « Bind » en bas de l’écran « Policy Binding ».
    AAA_serveur virtuel_pollab_image

Appliquer un schéma de connexion qui présente à l’utilisateur un champ de nom d’utilisateur, de mot de passe et de code secret

  1. Cliquez sur « Login Schemas » dans le menu « Advanced Settings » situé à droite.
    AAA_serveur virtuel_cert6_image

  2. Cliquez sur « Aucun schéma de connexion » pour afficher une fenêtre permettant de sélectionner le schéma.
    AAA_serveur virtuel_loginschema_image

  3. Cliquez sur « Click to Select » sous « Select Policy ».
    AAA_serveur virtuel_loginschema_binding_image

  4. Sélectionnez la stratégie intégrée « lschema_dual_factor_builtin » et cliquez sur « Sélectionner ».
    AAA_serveur virtuel_loginschema_binding2_image

  5. Cliquez sur « Lier » et sélectionnez « Terminé » pour quitter le menu de configuration du serveur virtuel AAA.
    AAA_serveur virtuel_loginschema_binding3_image

Remarque : La stratégie « lschema_dual_factor_builtin » a été ajoutée au microprogramme ADC 13.0. Si vous utilisez une version antérieure, vous devez créer une stratégie. Vous trouverez des instructions expliquant comment créer une stratégie ici.

Configurez votre serveur virtuel Gateway pour utiliser le nouveau serveur AAA

  1. Sélectionnez « Citrix Gateway, Virtual Servers », puis sélectionnez votre serveur virtuel Gateway et cliquez sur « Edit ».
    Gateway_virtual server_image

  2. Sélectionnez « Profil d’authentification » dans le menu « Paramètres avancés » du côté droit.
    Gateway_serveur virtuel1_image

  3. Sélectionnez « Ajouter » dans la section « Profil d’authentification ».
    Gateway_Virtual Server2_image

  4. Entrez un nom pour le nouveau profil d’authentification comme indiqué, puis cliquez sur « Click to select » sous « Authentication Virtual Server ».
    Passerelle_serveur virtuel3_image

  5. Sélectionnez le serveur virtuel AAA que nous avons créé précédemment et cliquez sur « Sélectionner ».
    Gateway_serveur virtuel4_image

  6. Cliquez sur « Créer ».
    Gateway_serveur virtuel5_image

  7. Cliquez sur « OK ».
    Gateway_serveur virtuel6_image

  8. Cliquez sur « Terminé ».
    Passerelle_serveur virtuel7_image

Effectuer des tests

Vous êtes maintenant prêt à utiliser l’authentification multifacteur sur votre serveur virtuel Citrix Gateway. Gateway_serveur virtuel8_image

Si vous rencontrez des difficultés d’authentification, veuillez vous reporter à la section de dépannage de ce document.

Instructions CLI

Si vous préférez configurer l’ADC à l’aide de l’interface de ligne de commande, le script de configuration suivant exécute toutes les étapes nécessaires.

# 1. Enable AAA
en ns feature aaa

# 2. Creating LDAP Server
add authentication ldapAction LDAP_for_Gateway -serverIP LDAP_LB_IP -serverPort 636 -ldapBase "DC=citrix,DC=lab" -ldapBindDn readonly@citrix.lab -ldapBindDnPassword PASSWORD -ldapLoginName sAMAccountName -groupAttrName memberOf

# 3. Creating LDAP Policy
add authentication Policy LDAP_Pol -rule true -action LDAP_for_Gateway

# 4. Creating RADIUS Server
add authentication radiusAction RADIUS_Server -serverIP 192.168.1.100 -serverPort 1812 -radKey sharedsecret

# 5. Create RADIUS Policy
add authentication Policy RADIUS_Pol -rule true -action RADIUS_Server

# 6. Create a PolicyLabel triggering the RADIUS Policy
add authentication policylabel RADIUS_PolicyLabel -loginSchema LSCHEMA_INT
bind authentication policylabel RADIUS_PolicyLabel -policyName RADIUS_Pol -priority 100

# 7. Create the AAA virtual server
add authentication vserver nFactorAuthvServer SSL 0.0.0.0

# 8. Bind an SSL certificate to the AAA virtual server
bind ssl vserver nFactorAuthvServer -certkeyName "Example Cert"

# 9. Bind the LDAP policy and RADIUS PolicyLabel to the AAA virtual server
bind authentication vserver nFactorAuthvServer -policy LDAP_Pol -priority 100 -nextFactor RADIUS_PolicyLabel -gotoPriorityExpression NEXT

# 10. Bind the builtin Login Schema for dual factor authentication to the AAA virtual server
bind authentication vserver nFactorAuthvServer -policy lschema_dual_factor_builtin -priority 100 -gotoPriorityExpression END

# 11. Create an Authentication Profile attached to the AAA virtual server
add authentication authnProfile MFA_Authentication_Profile -authnVsName nFactorAuthvServer

# 12. Configure your existing Gateway virtual server to use the Authentication Profile
set vpn vserver "Steven Demo Gateway" -authnprofile "MFA_Authentication_Profile"
<!--NeedCopy-->