IPS-Firewalls NETASQ SPNEGO
Transcription
IPS-Firewalls NETASQ SPNEGO
IPS-Firewalls NETASQ SPNEGO Version 2.0 - © NETASQ 2006 SPNEGO Introduction Un utilisateur doit gérer de nombreux mots de passe. Un mot de passe pour la connexion au poste de travail, un mot de passe pour la messagerie et n mots de passe applicatifs. Quand ce nombre atteint une dizaine ou une quinzaine pour certains utilisateurs ou administrateurs, la gestion de ces mots de passe devient alors problématique pour l’utilisateur, encourageant un comportement négligent, qui se manifeste par exemple sous forme de mots de passe simples, mots de passe identiques sur tous les systèmes, ou des mots de passe notés sur des post-its ou dans un cahier. Le but de protéger les applications par le biais d’un mot de passe est d’assurer la sécurité des données qui y sont contenues. Cependant, le fait d’avoir trop de mots de passe à gérer facilite la possibilité qu’ils tombent aux mains des personnes malintentionnées, ce qui a des conséquences très graves. Ce dilemme a donné lieu à la création du programme à authentification unique, ou SSO pour « Single Sign-On » en anglais, qui permet aux utilisateurs de pouvoir s’authentifier une seule fois pour accéder toutes les ressources qui lui sont autorisées sans devoir saisir les mots de passe propres à chaque application. Le SPNEGO (Simple and Protected GSS-API Negotiation Mechanism, mécanisme de négociation de GSS-API simple et protégé) est un protocole défini par le IETF, rendant possible la négociation entre différents mécanismes GSS-API afin d’établir un contexte de sécurité commun pour un client et un serveur. Ceci est la méthode choisie par NETASQ pour offrir les fonctionnalités d’authentification unique. La GSS-API (Generic Security Service Application Program Interface) est une interface de programmation mettant à disposition des applications y faisant appel un ensemble de services liés à la sécurité. Elle permet entre autres de prendre en charge l'authentification d'un utilisateur, et de garantir la confidentialité et l'intégrité de chaque message échangé. En plus, elle fournit une interface unique qui se met au-dessus des différents mécanismes de sécurité d’une telle manière qu’au cas où les correspondants acquéraient les crédences GSS-API pour le même mécanisme de sécurité, un contexte de sécurité peut être établi entre eux. Pré-requis Pour faire fonctionner le SSO (SPNEGO) avec les IPS-Firewalls, les outils suivants sont nécessaires : - Un IPS-Firewall NETASQ en version 6 ou supérieure (cette fonctionnalité n’est pas supportée dans les versions inférieures à la version 6) ; - Un serveur Windows 2000 ou 2003 avec Active Directory activé et configuré ; - Les outils de support fournis sur le CD d’installation de Windows serveur, préalablement installés ; - Pour Windows 2003, vous trouverez le mappeur du nom principal du service (setspn.exe) et le générateur de keytab (ktpass.exe) parmi les Outils de Support sur le CD d’installation Windows dans le répertoire SUPPORT\OUTILS\. Pour Windows 2000, vous trouverez le générateur de keytab (ktpass.exe) parmi les Outils de Support sur le CD d’installation Windows dans le répertoire SUPPORT\OUTILS\, mais il est possible que le mappeur du nom principal du service doive être téléchargé depuis le site WEB de Microsoft à cette adresse : http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setspn-o.asp; - Des postes de travail connectés sur le domaine d’Active Directory, pourvus d’un navigateur compatible avec le SPNEGO ; Version 2.0 - © NETASQ 2006 Page 2 sur 14 Référence: na_tn_spnego_002_fr SPNEGO o o o - Internet explorer en version 6.0 ou supérieure ; Firefox version 1 ou supérieure ; Certaines versions de Mozilla. Mac OSX ne supporte pas encore le SPNEGO. L’installation du SSO (SPNEGO) sur les appliances Il faut créer une liaison logique entre Active Directory et l’appliance en version 6 ou supérieure afin de pouvoir utiliser le SSO (SPNEGO). Cette liaison peut être réalisée en 3 étapes. 1. Un compte utilisateur spécial doit être créé dans l'Active Directory. 2. La mise en relation logique dans l'Active Directory de ce compte utilisateur et du service SSO doit être réalisée. Cette mise en relation est réalisée grâce à un script fourni sur le CD d'installation NETASQ ou le site WEB NETASQ. 3. Cette mise en relation produit un fichier qu'il faut transférer par le Firewall manager à l’appliance pour activer le SPNEGO. Manipulez ce fichier avec précaution, car il contient un mot de passe (aussi appelé une « clé »). Bien qu’il soit chiffré, il est tout de même considéré comme sensible. Fonctionnement de SPNEGO avec les appliances UTM NETASQ Pour expliquer le principe de fonctionnement du SPNEGO, le document s’appuie sur l’exemple d’un utilisateur souhaitant accéder à Internet. Pour accéder à Internet, cet utilisateur doit s’authentifier sur le réseau (sur son domaine) puis doit répéter l’opération d’authentification sur l’appliance UTM. Dans le cadre du SPNEGO, la phase d’authentification sur l’appliance sera transparente pour l’utilisateur. Cette action s’effectuera automatiquement, sans le concours de l’utilisateur. Pour comprendre le fonctionnement général du SPNEGO reportez-vous donc à l’exemple suivant : 1. L’utilisateur s’authentifie sur le réseau (Domaine Windows) ; 2. Le contrôleur de domaine autorise cette authentification ; 3. L’utilisateur ouvre son navigateur WEB pour se connecter au site WEB de son choix ; 4. Le proxy HTTP activé sur l’appliance NETASQ (voir la configuration du proxy HTTP) redirige le navigateur WEB vers le portail d’authentification activé sur l’appliance (voir la configuration de l’authentification) ; Version 2.0 - © NETASQ 2006 Page 3 sur 14 Référence: na_tn_spnego_002_fr SPNEGO 5. Le navigateur WEB se connecte alors sur le portail d’authentification de l’appliance en utilisant le numéro de série de ce dernier. Dans les schémas, ce numéro de série est représenté par « FW-NOMDNS ». Dans cette optique, il est nécessaire que ce « FWNOMDNS » soit résolu auprès du DNS configuré par le poste client. 6. L’appliance informe le navigateur WEB qu’il doit lui founir les crédences d’authentification de l’utilisateur (informations d’authentification spécifiques à l’utilisateur) pour valider l’authentification ; 7. Le navigateur WEB se connecte au contrôleur de domaine (qui intervient lors des échanges (1) et (2) au début de l’exemple) et lui demande les crédences ; 8. Après avoir vérifié que l’utilisateur est effectivement authentifié sur le domaine, le contrôleur du domaine fournit au navigateur WEB les informations demandées. Dans les schémas, ces informations sont représentées par le « SECRET » ; 9. Le navigateur WEB transfère les crédences à l’appliance qui les valide grâce à une clé partagée entre le contrôleur de domaine et l’appliance et authentifie l’utilisateur pour une durée définie par l’administrateur (voir la configuration de l’authentification).Dans les schémas, cette clé est représentée par « KEY » ; 10. L’appliance redirige le navigateur WEB vers le proxy HTTP de l’appliance qui fournit à l’utilisateur la page WEB initialement demandée (par exemple http://www.lesite.com) ; Version 2.0 - © NETASQ 2006 Page 4 sur 14 Référence: na_tn_spnego_002_fr SPNEGO Tous les échanges d’informations décrits dans cet exemple et représentant le fonctionnement de SPNEGO s’effectuent de manière transparente pour l’utilisateur. L’utilisateur n’a pas besoin de se connecter manuellement au portail d’authentification, il n’a pas besoin de renseigner son login ou son mot de passe, il n’a pas besoin de contacter son contrôleur de domaine après sa connexion au domaine. Cette communication tripartie est indispensable au bon fonctionnement de SPNEGO. L’appliance ne peut communiquer directement avec le contrôleur de domaine pour récupérer les crédences d’authentification de l’utilisateur. Notez qu’il n’y a pas d’interaction directe entre l’appliance et le contrôleur de domaine. La configuration du SPNEGO reflète cet état de fait. Les échanges (5) à (9) sont chiffrés : (5), (6) et (9) en SSL et (7) et (8) en Kerberos. La configuration de SPNEGO La mise en place des fonctionnalités SPNEGO nécessite la modification des paramètres de configuration de chacun des éléments participant à l’architecture : le contrôleur de domaine, l’appliance UTM et enfin les stations clientes (et notamment le navigateur WEB). De plus un équipement n’apparaissant pas sur les schémas joue un rôle important, à savoir un serveur DNS. Configuration du serveur DNS Pour mettre en place les fonctionnalités SPNEGO, la procédure d’installation débute par la modification de la configuration du serveur DNS. Une partie du mécanisme SPNEGO nécessite la résolution de noms DNS et en particulier celui de l’appliance UTM utilisé. Il est donc nécessaire d’ajouter une entrée dans le serveur DNS de manière à permettre la résolution du nom de l’appliance (par défaut ce nom est son numéro de série). Version 2.0 - © NETASQ 2006 Page 5 sur 14 Référence: na_tn_spnego_002_fr SPNEGO Notez qu’il est important que cette résolution s’effectue sinon l’authentification SPNEGO ne pourra s’effectuer. Vérifiez d’ores et déjà que l’entrée ajoutée dans le serveur DNS est effectivement résolue et accessible (ping par exemple). Configuration du contrôleur de domaine Active Directory La procédure d’installation se poursuit par la modification de la configuration du contrôleur de domaine Active Directory. Pour réaliser la configuration du contrôleur de domaine, reportezvous à la procédure suivante : Etapes Actions 1 Récupérer les fichiers pré requis à la configuration du contrôleur de domaine : « reg.exe » et « setspn.exe » et « ktpass.exe » compatible pour Windows 2000™ ou Windows 2003™ suivant la version du contrôleur de domaine. 2 Enregistrer les fichiers dans un répertoire commun. Exemple « C:\SPNEGO\ ». 3 Récupérer le script « spnego.bat » sur le site WEB NETASQ, le CDROM livré avec vos produits ou à la fin de ce document. 4 Enregistrer le script « spnego.bat » dans le même répertoire qu’à l’étape (2). 5 Lancer le script « spnego.bat » en ligne de commande selon l’usage présenté ci-dessous : spnego <FW> <dns> <WINDOWS> <password> <fichier> Où : - <FW> représente le nom de l’appliance sur lequel vous configurez SPNEGO. Ce nom est identique à l’entrée effectuée dans le serveur DNS. NETASQ vous recommande de renseigner ce paramètre en MAJUSCULES ; Version 2.0 - © NETASQ 2006 Page 6 sur 14 Référence: na_tn_spnego_002_fr SPNEGO - <dns> représente le nom de domaine DNS (dans la configuration du serveur DNS ci-dessus le nom de domaine DNS serait « netasq.com »). Ce paramètre est renseigné en MINUSCULES ; - <WINDOWS> représente le nom de domaine WINDOWS pris en charge par le contrôleur de domaine. Dans la très grande majorité des cas ce nom de domaine WINDOWS est identique au nom de domaine DNS. Ce paramètre DOIT être renseigné en MAJUSCULES ; - <password> représente un mot de passe que vous choisissez et qui sera utilisé pour l’utilisateur <FW> créé et le service SPNEGO. - <fichier> représente un nom de fichier que vous choisissez. Le script utilisé effectue deux tâches principales : création d’un compte utilisateur sur le contrôleur de domaine (Service SPNEGO) et génération d’un fichier contenant une clef à partager avec l’appliance (voir la configuration de l’appliance). Ci-dessus les détails de l’utilisateur créé sur le contrôleur de domaine grâce au script SPNEGO. Avant de continuer la configuration, il est important d’enregistrer les informations indiquées par le script SPNEGO, elles sont indispensables à la suite de la configuration. Ci-dessous une représentation des informations affichées en fin de script : values to insert in the manager SPN=HTTP/<FW>.<dns> DOMAIN=<WINDOWS> FILE=<fichier> Version 2.0 - © NETASQ 2006 Page 7 sur 14 Référence: na_tn_spnego_002_fr SPNEGO SPN est le nom du service principal de la configuration SPNEGO. Dans l’exemple présenté ce SPN serait « HTTP\F5000A000099999999.netasq.com ». DOMAIN est le nom de domaine WINDOWS de la configuration SPNEGO. Dans l’exemple présenté ce DOMAIN serait « NETASQ.COM ». Attention il est important d’enregistrer le domaine en MAJUSCULES. Configuration de l’appliance NETASQ La configuration de l’appliance NETASQ s’effectue en deux étapes. Dans un premier temps on activera le proxy HTTP puis on configurera l’authentification à proprement parler. L’étape d’activation du proxy HTTP n’est pas indispensable au fonctionnement de SPNEGO, mais elle permet d’automatiser les étapes (3) à (5) du fonctionnement de SPNEGO, ce qui participe à l’ergonomie de la fonction. Configuration du proxy HTTP La configuration du proxy HTTP consiste à l’activer et à définir les règles de filtrage WEB demandant authentification. Rappel, on met en place les fonctionnalités SPNEGO pour faciliter l’authentification sur l’appliance. Sans règle de filtrage relative à l’authentification, inutile de mettre en place SPNEGO. Configuration de l’authentification Pour configurer l’authentification dirigez-vous dans le sous-menu « Portail captif » du menu « Authentification » de l’arborescence des menus du Firewall Manager et reportez-vous à la procédure ci-dessous. Notez qu’on effectue la configuration de SPNEGO sur les interfaces internes de l’appliance. Menu Paramètres à configurer Global\SPNEGO Nom du service (Principal) : valeur obtenue à la fin du script exécuté sur le contrôleur de domaine (SPN, dans l’exemple : HTTP\F5000A000099999999.netasq.com). ATTENTION à respecter la casse utilisée lors de l’exécution du script. Nom de domaine : valeur obtenue à la fin du script exécuté Version 2.0 - © NETASQ 2006 Page 8 sur 14 Référence: na_tn_spnego_002_fr SPNEGO sur le contrôleur de domaine (DOMAIN, dans l’exemple : NETASQ.COM). ATTENTION à respecter la casse utilisée lors de l’exécution du script. Keytab : fichier obtenu à la fin du script exécuté sur le contrôleur de domaine. Global\Avancé Cocher la case « Utilisez la résolution DNS (numéro de série) ». Interfaces internes Définir la « durée d’authentification SSO » en minutes, durée pendant laquelle l’authentification SSO ne ré effectuera pas d’authentification transparente. Interfaces internes \ Méthodes disponibles Cocher la méthode disponible « SPNEGO ». Sélectionner SPNEGO comme « méthode de redirection par défaut du proxy HTTP ». Configuration des clients (Navigateur WEB) A ce stade de la configuration, le portail d’authentification de l’appliance utilisé pour SPNEGO doit pouvoir être contacté par le navigateur WEB. Pour vérifier que cela est bien le cas, tentez une connexion vers le site WEB « https://numérodesériedel’appliance.domaindns » (dans notre exemple l’URL se présente sous la forme « https://F5000A000099999999.netasq.com »). Si la connexion ne s’effectue pas, vérifier vos branchements et la configuration effectuée jusqu’ici avant d’aller plus loin. La configuration des clients s’effectue par la suite différemment suivant les navigateurs WEB utilisés. Configuration du navigateur WEB Internet Explorer™ 6 Pour configurer le navigateur WEB Internet Explorer™ 6, reportez-vous aux indications présentées ci-dessous : 1. Dans le menu « Outils\Options Internet\ », sélectionnez l’onglet « Sécurité » ; 2. Dans la zone « Intranet Local », cliquez sur le bouton « Sites » puis « Avancé » ; 3. Ajoutez le site WEB « https://numérodesériedel’appliance.domaindns » à la zone (dans notre exemple, nous ajoutons « https://F5000A000099999999.netasq.com ») ; 4. Veillez à ce que l’option « Nécessite un serveur sécurisé (https) pour tous les sites dans cette zone » soit cochée ; Version 2.0 - © NETASQ 2006 Page 9 sur 14 Référence: na_tn_spnego_002_fr SPNEGO 5. Validez la configuration des sites WEB de la zone et retournez dans la configuration générale de l’onglet « Sécurité » du menu « Outils\Options Internet\ » ; 6. Toujours dans la zone « Intranet local », cliquez sur le bouton « Personnaliser le niveau » ; 7. Vérifiez que l’option « Connexion automatiquement uniquement dans la zone intranet » est cochée et valider la configuration ; 8. Si vous utilisez un proxy pour accéder à Internet, il est nécessaire de mettre en place une exception pour l’appliance. Dans ce cas, dirigez-vous dans le menu de configuration des proxies (Onglet « Connexion », Paramètres réseau) et réalisez cette exception sur le site WEB « https://numérodesériedel’appliance.domaindns » (dans notre exemple, nous ajoutons « https://F5000A000099999999.netasq.com ») ; Version 2.0 - © NETASQ 2006 Page 10 sur 14 Référence: na_tn_spnego_002_fr SPNEGO 9. Enfin dans l’onglet « Avancé » du menu « Outils\Options Internet\ », Vérifiez que l’option « Activer l’authentification intégrée de Windows (nécessite un redémarrage) est cochée et validez la configuration des « Options Internet ». Configuration du navigateur WEB Mozilla Firefox™ 1 Pour effectuer la configuration du navigateur WEB Mozilla Firefox™ 1, reportez-vous aux indications présentées ci-dessous : 1. Démarrez Firefox et tapez « about:config » dans la barre d’URL ; 2. Une liste de paramètres de configuration apparaît, retrouvez les paramètres « network.negotiate-auth.delegation-uris » et « network.negotiate-auth.trusted-uris » Version 2.0 - © NETASQ 2006 Page 11 sur 14 Référence: na_tn_spnego_002_fr SPNEGO dans cette liste. Note : la recherche des paramètres est facilitée par l’utilisation de la barre de filtres, située sous la barre d’URL ; 3. Renseignez la valeur « https://numérodesériedel’appliance.domaindns » (dans notre exemple, nous utilisons « https://F5000A000099999999.netasq.com ») pour les deux paramètres sélectionnés ; 4. Fermez le navigateur WEB pour valider la configuration effectuée. La configuration de SPNEGO dans le cadre de la Haute disponibilité Dans le cadre de la Haute disponibilité, la configuration SPNEGO telle qu’elle a été décrite cidessus ne peut convenir. En effet l’ensemble de la configuration est basée sur l’identification de l’appliance utilisé pour l’authentification, par son numéro de série. Or deux appliances en Haute disponibilité ne possèdent pas le même numéro de série. Il est donc nécessaire de modifier la configuration initiale de SPNEGO. Pour cela, il existe deux méthodes de configuration : 1. Utiliser l’adresse IP commune aux deux appliances du cluster de Haute disponibilité ; 2. Modifier l’identification de l’appliance pour en fournir une identique aux deux appliances du cluster (non disponible pour les appliances en version inférieure à 6.0.3). Configuration de SPNEGO par une adresse IP La configuration SPNEGO par une adresse IP est quasiment identique à la configuration présentée ci-dessus. Quelques adaptations doivent être prévues : 1. Les aspects de résolutions de noms DNS ne sont plus nécessaires dans ce cas ; 2. La chaine « numérodesériedel’appliance.domaindns » sera systématiquement remplacé par « addresseipdel’appliance ». Ainsi dans notre exemple, on remplace « https://F5000A000099999999.netasq.com » par « https://10.0.0.1 » ; 3. Le script SPNEGO fournit par NETASQ s’effectue différemment. Pour plus d’informations sur ces modifications du script, reportez-vous à la section ci-dessous. Exécution du script spnego.bat pour une configuration SPNEGO par une adresse IP Lancer le script « spnego.bat » en ligne de commande selon l’usage, spécifique, présenté cidessous : spnego -ha <IPaddress> <spnego_user> <WINDOWS> <password> <fichier> Version 2.0 - © NETASQ 2006 Page 12 sur 14 Référence: na_tn_spnego_002_fr SPNEGO Où : <IPaddress> représente l’adresse IP des appliances participant au cluster de Haute disponibilité. <spnego_user> représente l’utilisateur créé sur le contrôleur de domaine, identifiant les appliances utilisés pour SPNEGO. Cet utilisateur est indispensable à la configuration SPNEGO mais n’est plus évoqué dans la suite de la configuration. <WINDOWS> représente le nom de domaine WINDOWS pris en charge par le contrôleur de domaine. Dans la très grande majorité des cas ce nom de domaine WINDOWS est identique au nom de domaine DNS. Ce paramètre DOIT être renseigné en MAJUSCULES ; <password> représente un mot de passe que vous choisissez et qui sera utilisé pour l’utilisateur <spnego_user> créé et le service SPNEGO. <fichier> représente un nom de fichier que vous choisissez. Le script utilisé effectue deux tâches principales : création d’un compte utilisateur sur le contrôleur de domaine (Service SPNEGO) et génération d’un fichier contenant une clef à partager avec l’appliance (voir la configuration de l’appliance). Configuration de SPNEGO par remplacement de l’identifiant de l’appliance Dans la configuration initiale, l’appliance est représenté par un identifiant sous la forme de son numéro de série. Cet identifiant est utilisé par défaut pour se connecter sur le portail d’authentification. La configuration consiste à remplacer l’identifiant de l’appliance utilisé pour se connecter sur le portail d’authentification. Cet identifiant pourrait, cette fois ci, être identique aux deux appliances qui participent au cluster de Haute disponibilité. Ainsi dans notre exemple, on remplacera « https://F5000A000099999999.netasq.com » par « https://portail.netasq.com ». Pour effectuer ce remplacement, reportez-vous à procédure suivante : 1. Faites l’acquisition d’une « clé privée/certificat serveur », auprès d’organismes spécialisés comme Verisign, Thawte ou autres, généré au nom de l’identifiant que vous souhaitez utilisé (dans notre cas, le certificat est généré au nom « portail.netasq.com ») ; 2. Insérez le certificat serveur obtenu dans l’appliance par l’intermédiaire du menu « Certificats » de l’arborescence des menus du Firewall manager ; Version 2.0 - © NETASQ 2006 Page 13 sur 14 Référence: na_tn_spnego_002_fr SPNEGO 3. Dans le sous menu « portail captif » du menu « Authentification » de l’arborescence du Firewall manager, sélectionnez le menu « Portail WEB », l’écran de configuration suivant apparaît : 4. Ajoutez le certificat serveur dans l’option « Clé privée/certificat », votre configuration doit ressembler à l’écran ci-dessous : 5. Envoyer la configuration pour valider les changements, le remplacement de l’identifiant de l’appliance est terminé. Une fois le remplacement effectué, la configuration de SPNEGO se déroule de manière identique à la procédure initiale de la modification sur serveur DNS à la configuration des clients. A ceci près que : 1. La chaine « numérodesériedel’appliance.domaindns » sera systématiquement remplacé par « identifiantpersonnalisé ». Ainsi dans notre exemple, on remplace « https://F5000A000099999999.netasq.com » par « https://portail.netasq.com » ; 2. Dans le script, la variable <fw> représentant l’identifiant de l’appliance sous la forme de son numéro de série est cette fois ci renseignée sous la forme de l’« identifiantpersonnalisé » oté du nom de domaine DNS. Dans notre exemple, au lieu d’utiliser « F5000A000099999999 » on utilisera « portail ». Version 2.0 - © NETASQ 2006 Page 14 sur 14 Référence: na_tn_spnego_002_fr