Генерация записей SSHFP во FreeIPA

550
Dave

МОЯ НАСТРОЙКА

У меня есть кластер машин под управлением Centos 7.3, и я использую Kerberos / LDAP для аутентификации. Kerberos / LDAP упакованы в FreeIPA 4.4.0.

Все хосты имеют адрес 192.168.1.0/24 . Я буду называть это «основной» сетью.

У некоторых хостов есть адрес в 192.168.2.0/24 . Я буду называть это «вторичной» сетью. Для хостов, имеющих этот второй интерфейс, в DNS есть соответствующие дополнительные записи A / PTR, которые связывают вторичное имя хоста и вторичный IP-адрес. Во всех случаях вторичное имя хоста - <первичное имя хоста> -eth1 .

МОЯ ЦЕЛЬ

Я работаю над внедрением единого входа в нашем кластере. Единый вход работает нормально в первичной сети, но не во вторичной сети.

То, что я сделал так далеко: сторона сервера

Я настроил сервер следующим образом:

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 

После завершения установки сервера я также должен вручную добавить следующую запись PTR в DNS:

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

Я должен сделать это, так как, по-видимому, флаг --auto-reverse для ipa-server-install не работает (или, возможно, я его не понимаю).

То, что я сделал так далеко: сторона клиента

Я настроил свои клиентские машины следующим образом:

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

Как и при установке сервера, мне также пришлось вручную добавлять записи DNS PTR для клиентов. Форвард А записи, созданные FreeIPA, были хороши во всех случаях.

Затем, чтобы зарегистрировать вторичное имя хоста с FreeIPA, я сделал следующее на клиенте:

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

Как и раньше, это создавало записи пересылки DNS A, но мне пришлось вручную добавлять соответствующие записи DNS PTR.

ЭТА ПРОБЛЕМА

Где у меня возникли проблемы, это на вторичной сети. Например, я могу SSH к хосту-1 без пароля (т. Е. SSO работает в основной сети), но я не могу SSH к хосту-1-eth1 без пароля (т. Е. SSO не работает во вторичной сети) ,

Есть два запроса, которые можно получить от SSH:

  1. Приглашение принять неизвестный ключ хоста SSH
  2. Запрос пароля пользователя

У меня не запрашивается пароль пользователя, когда я SSH к хосту, используя его вторичное имя хоста. Это приглашение принять неизвестный ключ хоста SSH, который я не могу обойти при попытке SSH к хосту, используя его вторичное имя хоста. И это происходит потому, что ...

Я наблюдал, что нет никаких записей DNS SSHFP, генерируемых для вторичных имен хоста. Все одинаковые ключи хоста SSH должны быть связаны с дополнительным именем хоста, как и с основным именем хоста. Однако этого не происходит.

Как я должен использовать FreeIPA, чтобы получить необходимые записи DNS SSHFP, сгенерированные для вторичных имен хостов? Очевидно, что требуется больше, чем ipa-join, которым я занимаюсь.

2

1 ответ на вопрос

0
Michael Ströder

Вероятно, не тот ответ, который вам нравится, но я также рассмотрел записи SSHFP в DNS, но отказался от этого по следующим причинам:

  1. Требуется поддержка клиента (см. Опцию VerifyHostKeyDNS для клиента OpenSSH).
  2. Вам необходимо подписать свои зоны DNS с помощью DNSSEC и иметь локальные средства распознавания для проверки подлинности подписей. В противном случае DNS-записи могут быть легко подделаны.
  3. В некоторых больших средах довольно сложно согласовать это с людьми, ответственными за DNS-серверы. Имейте в виду, что вам потребуется динамическое обновление DNS, если у вас много SSH-серверов.

Я настоятельно рекомендую изучить сертификаты OpenSSH, чтобы позволить доверенному центру сертификации подписывать все ключи хоста. Это также требует поддержки клиента (например, не поддерживается в PuTTY), и вам необходимо распространить открытый ключ (ключи) SSH-CA среди всех клиентов. Но это проще, чем DNSSEC и ИМХО более безопасно.

Похожие вопросы