Utilisation des enregistrements d'authentification de canal MQ
26 juillet 2019.
Cette semaine, nous verrons comment améliorer la sécurité d'un gestionnaire de files d'attente en utilisant les enregistrements d'authentification de canal MQ.
Introduction
De nombreux administrateurs MQ pensent que l'authentification de canal est compliqué à installer et nécessite beaucoup de micro-gestion. Je vais vous montrer que l’authentification de canal est une excellente fonctionnalité de sécurité MQ et ne nécessite aucune configuration ou administration particulière.
L’authentification de canal a été introduite dans la version 7.1 de MQ. Son modèle de sécurité est similaire à celui de l’ouverture de ports sur un système UNIX: d’abord, vous verrouillez tout, puis vous ouvrez les ports un par un au fur et à mesure de leurs besoins. La même chose est vraie pour l'authentification de canal. Tout d'abord, vous créez des enregistrements pour refuser toutes les connexions au gestionnaire de files d'attente, puis vous créez des enregistrements pour autoriser les connexions que vous devez autoriser. Les enregistrements d'authentification de canal suivent la règle générale selon laquelle des enregistrements plus spécifiques sont prioritaires par rapport aux plus génériques. Par exemple, si vous refusez les connexions à partir de *. Untrusted-domain.com (tous les hôtes de ce domaine non approuvé), puis créez un enregistrement pour autoriser les connexions à partir de Trusted-host.untrusted-domain .com le gestionnaire de files d'attente autorisera les connexions à partir de cet hôte spécifique dans l'ensemble du domaine.
Deuxièmement, n'oubliez pas qu'il n'est pas nécessaire d'actualiser la sécurité après avoir modifié les enregistrements d'authentification de canal. Il sera immédiatement récupéré par le gestionnaire de files d'attente après que vous en ayez créé, modifié ou supprimé.
Pour refuser toutes les connexions, vous souhaitez interdire trois choses spécifiques:
- Accès par les utilisateurs administrateurs, tel que mqm [19659009] Accès à partir de tous les hôtes (restriction générale)
- Accès via le canal SYSTEM.ADMIN.SVRCONN
Étapes techniques
Ces étapes ont été testées sur MQ v8 et v9.
1. Créez une règle pour bloquer l'accès des utilisateurs privilégiés:
SET CHLAUTH ('[') TYPE (BLOCKUSER) USERLIST (' MQADMIN') WARN (NO) ACTION (AJOUT)
* MQADMIN est une désignation spéciale pour les utilisateurs de l'administrateur MQ, qui diffèrent d'une plate-forme à l'autre (par exemple, mqm sous Linux).
2. Créez une règle pour bloquer toutes les connexions entrantes:
SET CHLAUTH ('['] ADRESSE DE TYPE (ADDRESSMAP) ('') USERSRC (NOACCESS) WARN (NO) ACTION (AJOUTER)
] Ces deux règles vont bloquer toutes les connexions entrantes et aucun utilisateur ou application ne pourra se connecter en tant qu'administrateur, ce qui signifie que chaque ID utilisateur sera évalué par le gestionnaire de files d'attente pour déterminer le niveau d'accès à accorder à l'aide d'OAM (Object Authority Manager). [19659013] 3. Supprimer l'accès via un canal SYSTEM
Par défaut, un nouveau gestionnaire de files d'attente est créé avec une règle d'authentification de canal autorisant les connexions via le canal SYSTEM.ADMIN.SVRCONN . Vous souhaitez supprimer cette règle, car ce nom de canal est largement connu et toute tentative d'obtenir un accès non autorisé à votre gestionnaire de files d'attente utilisera ce nom de canal (avec SYSTEM.AUTO.SVRCONN et d'autres canaux créés automatiquement. de MQ):
SET CHLAUTH (SYSTEM.ADMIN.SVRCONN) TYPE (ADDRESSMAP) ADRESSE (*) ACTION (SUPPRIMÉ)
4. Créer une règle pour les administrateurs
Ensuite, vous souhaitez activer les connexions pour les administrateurs, tels que vous-même, afin de pouvoir accéder au gestionnaire de files d'attente à l'aide de MQ Explorer ou de l'utilitaire RFH:
SET CHLAUTH ('ADMIN_CHANNEL'), TYPE (ADDRESSMAP) ADDRESS ('workstation1.mydomain.com') USERSRC (CHANNEL) CHCKCLNT (REQUIS) ACTION (ADD)
ADMIN_CHANNEL est le nom du canal sur lequel cet administrateur sera autorisé à se connecter. Le nom du poste de travail, d'où doit provenir la connexion, doit être workstation1 dans le domaine mydomain.com. Le nom d'utilisateur sera adopté à partir du canal: il sera défini sur l'utilisateur qui passe de l'application. CHCKCLNT (OBLIGATOIRE) est un paramètre qui oblige l'utilisateur à envoyer un mot de passe valide avec le nom d'utilisateur. Cette paire sera vérifiée pour sa validité. Si aucun mot de passe n'est envoyé ou si le mot de passe de cet utilisateur n'est pas valide, la connexion sera refusée.
Vous souhaitez activer cette règle pour chaque poste de travail spécifique de chaque administrateur. Que se passe-t-il si vous utilisez une connexion VPN depuis des appareils mobiles ou depuis un ordinateur portable domestique? Dans ces cas, vous devez utiliser un réseau privé virtuel (VPN) vers un poste de travail virtuel, qui porte un nom DNS dans un réseau approuvé, ce qui permettra d'établir une connexion avec MQ. ou vous pouvez utiliser RDP sur VPN vers un poste de travail physique de votre bureau qui aura également un nom DNS dans un réseau approuvé et vous pourrez vous connecter à MQ à partir de là. Vous pouvez également définir ADDRESS ('*') mais cela va à l’encontre de l’objectif de la sécurisation des canaux avec des enregistrements d’authentification de canal.
Un autre point important à souligner ici est que vous pouvez spécifier un ID utilisateur au lieu de utilisant USERSRC (CHANNEL) . Utilisez USERSRC (MAP) puis spécifiez l'ID utilisateur dans l'option MCAUSER, tel que MCAUSER ('legacy_user').
Une règle ressemblera à ceci:
SET CHLAUTH ('LEGACY_CHANNEL ') TYPE (ADDRESSMAP) ADDRESS (' legacy-host.mydomain.com ') USERSRC (MAP) MCAUSER (' legacy_user ') ACTION (ADD)
Ceci va cartographier toutes les connexions entrantes à partir de legacy- host.mydomain.com hôte via le canal LEGACY_CHANNEL vers l'ID utilisateur legacy_user. Peu importe ce que l'application enverrait de l'autre côté, le gestionnaire de files d'attente recevant la connexion le mapperait sur legacy_user. Cela peut être utile lorsque vous avez d'anciennes applications héritées qui ne peuvent pas transmettre un ID utilisateur. Vous leur attribuez ensuite un ID utilisateur et leur accordez des autorisations uniquement aux objets auxquels ils ont besoin d'accéder.
Notez que si une application ne peut pas transmettre un ID utilisateur, il est probable qu'elle ne puisse pas non plus envoyer de mot de passe. C'est pourquoi le paramètre CHCKCLNT est absent de la règle ci-dessus. La règle examinera les paramètres du gestionnaire de files d'attente. Assurez-vous de le définir sur CHCKCLNT (FACULTATIF) au niveau du gestionnaire de files d'attente. Ensuite, en spécifiant CHCKCLNT (REQUIRED) pour des règles individuelles, vous allez remplacer le paramètre du gestionnaire de files d'attente et obliger les applications à envoyer un ID utilisateur et un mot de passe, puis en omettant CHCKCLNT pouvoir se connecter sans identifiant ni mot de passe. En tant qu’administrateur MQ, vous contrôlerez ce comportement.
5. Créer une règle pour autoriser les connexions des gestionnaires de files d'attente du cluster
Une règle importante, à créer ensuite, consiste à autoriser les connexions des gestionnaires de files d'attente du cluster:
SET CHLAUTH ('CLUSTER_CHANNEL') TYPE (ADDRESSMAP) ADRESSE ( '* .mydomain.com') USERSRC (CHANNEL) ACTION (ADD)
Cette règle autorisera les connexions sur les canaux de la grappe à partir de n'importe où dans le domaine approuvé et aucun identifiant ni mot de passe ne sera demandé. Vous pouvez également créer une règle distincte pour chaque gestionnaire de files d'attente du cluster avec leurs noms d'hôtes respectifs dans le paramètre ADDRESS, mais si vous avez des dizaines de gestionnaires de files d'attente dans vos clusters, cela risque de ne pas être réalisable.
Un seul gestionnaire de files d'attente s'exécutant sur le même hôte (par exemple, un référentiel de cluster complet et un référentiel de cluster partiel), parfois, DNS résout le nom d'hôte différemment que s'il se trouvait sur des hôtes différents. N'oubliez pas que MQ utilise la recherche DNS inversée pour déterminer les noms d'hôte des clients en connexion. Dans ma pratique, j'ai vu qu'un nom d'hôte se lisait host1.mydomain.com sur des hôtes extérieurs et sur host1.msad.msroot.com sur le même ordinateur. Est-ce une configuration DNS particulière au niveau du réseau? Il peut y avoir plusieurs raisons, mais vous devez tenir compte de ces cas lorsque vous utilisez des enregistrements d'authentification de canal.
Ceci couvre toutes les règles nécessaires. Ensuite, lorsque les applications demandent des connexions à votre gestionnaire de files d'attente, vous créez leurs règles.
6. Créer une règle pour permettre à une application de se connecter
Par exemple, une application APP1 veut se connecter. Vous leur demandez à partir de quel hôte ils vont se connecter et quel ID utilisateur ils vont utiliser pour se connecter, puis vous créez une règle pour cette application:
SET CHLAUTH ('APP1_CHANNEL') TYPE (USERMAP) CLNTUSER ('app1_user') USERSRC (CHANNEL) ADDRESS ('app1-host.mydomain.com') CHCKCLNT (REQUIS) ACTION (AJOUTER)
7. Créez une règle pour permettre à un utilisateur de se connecter
Un autre exemple est lorsqu'un utilisateur Rachel demande l'accès pour surveiller ses files d'attente à l'aide de MQ Explorer et de RFH Utility. Vous lui demandez quel est le nom d'hôte de son poste de travail et quel est son nom d'utilisateur:
SET CHLAUTH ('SUPPORT_CHANNEL') TYPE (USERMAP) CLNTUSER ('RACHEL') USERSRC (CHANNEL) ADRESSE ('rachels-workstation.mydomain.' com ') CHCKCLNT (REQUIS) ACTION (AJOUTER)
Il est important de noter ici que chaque application peut obtenir son propre canal dédié, mais que les utilisateurs doivent être regroupés et affectés à un canal en fonction de leur rôle. Par exemple, s'il existe une équipe qui prend en charge MQ et qui sont tous administrateurs, vous souhaiterez créer un canal ADMIN_CHANNEL uniquement pour ce groupe. Si Rachel est un utilisateur autorisé disposant des autorisations nécessaires pour drainer les files d'attente et augmenter leur profondeur, sans pour autant être un administrateur complet, vous souhaitez créer un canal distinct pour ces personnes et l'appeler ainsi: SUPPORT_CHANNEL . Enfin, si vous avez un groupe d’utilisateurs qui souhaitent consulter les files d’attente et les messages sans disposer d’autorisations, vous pouvez créer un canal USER_CHANNEL ou READ_ONLY_CHANNEL pour ce groupe.
8. Créez une règle pour permettre à un autre gestionnaire de files d'attente de se connecter
Un autre exemple important est le gestionnaire de files d'attente pour la communication avec le gestionnaire de files d'attente. Il existe un type spécial d’enregistrement d’authentification de canal qui vous permettra de le faire. Voici un exemple:
SET CHLAUTH ('ANOTHER_QMGR_CHANNEL') TYPE (QMGRMAP) QMNAME ('ANOTHER_QMGR') USERSRC (CHANNEL) ADRESSE ('another-qmgr-host.mydomain.com') ACTION (ADD) (1945)
Il semble similaire et suit la même logique. Ne spécifiez pas CHCKCLNT (REQUIRED) car les gestionnaires de files d’attente ignorent et sont incapables de transmettre des mots de passe.
Modifier le gestionnaire de files d'attente
Nous devons ensuite effectuer quelques manipulations sur le gestionnaire de files d'attente pour activer l'authentification de canal et la configurer pour qu'elle fonctionne. Modifiez le gestionnaire de files d'attente pour activer l'authentification de canal:
ALTER QMGR CHLAUTH (ENABLED)
Si vous utilisez l'objet d'authentification par défaut SYSTEM.DEFAULT.AUTHINFO.IDPWOS fourni pour la nouvelle création. gestionnaires de file d'attente, vous devez le modifier pour définir facultatif le paramètre ID utilisateur et mot de passe de la connexion du client de vérification.
ALTER AUTHINFO (SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE (IDPWOS)
CHCKCLNT (OPTIONAL) CHCKLOCL (NONE )
REFRESH SECURITY TYPE (CONNAUTH)
Les détails relatifs à l’authentification de connexion font l’objet d’un autre article de blog.
Et la dernière chose à faire est de définir les autorisations pour différents groupes ayant accès à votre gestionnaire de files d'attente utilisant les commandes setmqaut (également sujet d'un autre article de blog).
Restez à l'écoute pour plus d'informations!
Source link