Génération de notices SSHFP dans FreeIPA

2

Ma configuration

J'ai un cluster de machines exécutant Centos 7.3 et j'utilise Kerberos / LDAP pour l'authentification. Kerberos / LDAP sont tels que fournis dans FreeIPA 4.4.0.

Tous les hôtes ont une adresse sur 192.168.1.0/24 . Je ferai référence à cela en tant que réseau "principal".

Certains hôtes ont une adresse dans 192.168.2.0/24 . Je ferai référence à cela en tant que réseau "secondaire". Pour les hôtes dotés de cette deuxième interface, il existe des entrées A / PTR supplémentaires correspondantes dans DNS qui associent un nom d'hôte secondaire et une adresse IP secondaire. Dans tous les cas, le nom d'hôte secondaire est <nom d'hôte principal> -eth1 .

MON BUT

Je travaille sur la mise en place de l'authentification unique au sein de notre cluster. L'authentification unique fonctionne correctement sur le réseau principal, mais pas sur le réseau secondaire.

CE QUE J'AI FAIT SI LOIN: SERVER CIDE

J'ai configuré le serveur comme suit:

ipa-server-install \
-r ME.EXAMPLE.COM \
-n me.example.com \
--mkhomedir \
--hostname=host-1.me.example.com \
--ip-address=192.168.1.1 \
--ssh-trust-dns \
--setup-dns \
--auto-forwarders \
--forward-policy=only \
--auto-reverse \
--dirsrv-cert-file=<path to server SSL certificate> \
--http-cert-file=<path to server SSL certificate> \
--no-dnssec-validation

Une fois l'installation du serveur terminée, je dois également ajouter manuellement l'enregistrement PTR suivant au DNS:

1.1.168.192.in-addr.arpa PTR host-1.me.example.com

Je dois le faire car, apparemment, l' indicateur --auto-reverse pour ipa-server-install ne fonctionne pas (ou, peut-être plus probablement, je ne le comprends pas).

CE QUE J'AI FAIT À CE JOUR: CÔTÉ CLIENT

J'ai configuré mes ordinateurs clients comme suit:

ipa-client-install \
--force-ntpd \
-p admin \
-W \
--mkhomedir \
--no-nisdomain \
--ssh-trust-dns

Comme pour l'installation du serveur, j'ai également dû ajouter manuellement des enregistrements DNS PTR pour les clients. Les enregistrements A suivants, tels que créés par FreeIPA, ont été corrects dans tous les cas.

Ensuite, pour obtenir le nom d’hôte secondaire inscrit avec FreeIPA, j’ai effectué les opérations suivantes sur le client:

kinit admin
ipa-join -h host-1-eth1.me.example.com

Comme précédemment, cela créait des enregistrements DNS A en aval, mais je devais ajouter manuellement les enregistrements PTR DNS correspondants.

LE PROBLÈME

Là où j'ai des problèmes, c'est sur le réseau secondaire. Par exemple, je peux utiliser SSH pour host-1 sans mot de passe (c’est-à-dire que le SSO fonctionne sur le réseau principal), mais je ne peux pas passer à SSH pour hôte-1-eth1 sans mot de passe (c’est-à-dire que le SSO ne fonctionne pas sur le réseau secondaire) .

Il y a deux invites que SSH peut recevoir:

  1. Une invite à accepter une clé d'hôte SSH inconnue
  2. Une invite pour le mot de passe de l'utilisateur

Je ne suis pas invité à entrer un mot de passe d'utilisateur lorsque je SSH à un hôte utilisant son nom d'hôte secondaire. C'est l'invite à accepter une clé d'hôte SSH inconnue que je ne peux pas contourner lorsque j'essaie de SSH sur un hôte utilisant son nom d'hôte secondaire. Et cela se passe parce que ...

J'ai constaté qu'aucun enregistrement DNS SSHFP n'était généré pour les noms d'hôte secondaires. Toutes les mêmes clés d’hôte SSH doivent être associées au nom d’hôte secondaire, de même qu’elles sont associées au nom d’hôte principal. Cependant, cela ne se produit pas.

Comment utiliser FreeIPA pour obtenir les enregistrements DNS SSHFP nécessaires générés pour les noms d’hôte secondaires? De toute évidence, il faut plus que l’ ipa-join que je fais.

Dave
la source

Réponses:

0

Ce n’est probablement pas la réponse que vous aimez, mais j’ai aussi envisagé les RR SSHFP dans le DNS, mais j’ai renoncé à cela pour les raisons suivantes:

  1. Il a besoin de la prise en charge du client (voir option VerifyHostKeyDNS pour le client OpenSSH).
  2. Vous devez signer vos zones DNS avec DNSSEC et disposer de résolveurs locaux pour vérifier que les signatures sont vraiment sécurisées. Sinon, les enregistrements DNS peuvent être facilement usurpés.
  3. Dans certains environnements plus importants, il est assez difficile de coordonner cela avec les responsables des serveurs DNS. N'oubliez pas que vous aurez besoin de mises à jour DNS dynamiques si vous avez plusieurs serveurs SSH.

Il est fortement recommandé de se pencher sur les certificats OpenSSH pour permettre à une autorité de certification de confiance de signer toutes les clés d'hôte. Cela nécessite également une assistance client (par exemple, non prise en charge dans PuTTY) et vous devez distribuer la (les) clé (s) publique (s) de l'autorité de certification SSH-CA à tous les clients. Mais il est plus facile que DNSSEC et IMHO plus sécurisé.

Michael Ströder
la source