Geração de registros SSHFP no FreeIPA

2

MINHA CONFIGURAÇÃO

Eu tenho um cluster de máquinas rodando o Centos 7.3, e estou usando o Kerberos / LDAP para autenticação. Kerberos / LDAP são empacotados no FreeIPA 4.4.0.

Todos os hosts têm um endereço em 192.168.1.0/24 . Vou me referir a isso como a rede "primária".

Alguns anfitriões têm um endereço em 192.168.2.0/24 . Vou me referir a isso como a rede "secundária". Para hosts que possuem essa segunda interface, há entradas extras de A / PTR correspondentes no DNS que associam um nome de host secundário e o endereço IP secundário. Em todos os casos, o nome do host secundário é < nome do host principal > -eth1 .

MEU OBJETIVO

Estou trabalhando para que o SSO seja implementado em todo o nosso cluster. O SSO está funcionando bem na rede principal, mas não na rede secundária.

O que eu fiz até agora: Lado do servidor

Eu configurei o servidor da seguinte forma:

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

Após a conclusão da instalação do servidor, também tenho que adicionar manualmente o seguinte registro PTR ao DNS:

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

Eu tenho que fazer isso já que, aparentemente, o sinalizador - auto-reverse para ipa-server-install não funciona (ou, o que é mais provável, eu não entendo isso.

O QUE FIZEM ATÉ O LADO DO CLIENTE

Eu configurei minhas máquinas clientes da seguinte forma:

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

Como na instalação do servidor, eu também tive que adicionar manualmente registros DNS PTR para os clientes. Os registros A de encaminhamento, conforme criados pelo FreeIPA, foram bons em todos os casos.

Em seguida, para obter o nome do host secundário registrado no FreeIPA, fiz o seguinte no cliente:

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

Como antes, isso criou registros DNS A de encaminhamento, mas tive que adicionar manualmente os registros DNS PTR correspondentes.

O PROBLEMA

Quando estou tendo problemas, estou na rede secundária. Por exemplo, posso SSH para host-1 sem senha (ou seja, o SSO está funcionando na rede principal), mas não consigo SSH para host-1-eth1 em uma maneira sem senha (ou seja, o SSO não está funcionando na rede secundária).

Existem dois prompts que um pode receber do SSH:

  1. Um aviso para aceitar uma chave de host SSH desconhecida
  2. Um aviso para a senha do usuário

Eu não sou solicitado para uma senha de usuário quando eu SSH para um host usando seu nome de host secundário. É o prompt para aceitar uma chave do host SSH desconhecida que não consigo entender ao tentar executar o SSH em um host usando seu nome de host secundário. E isso está acontecendo porque ...

Eu observei que não há registros DNS do SSHFP sendo gerados para os nomes de host secundários. Todas as mesmas chaves do host SSH devem ser associadas ao nome do host secundário, conforme associadas ao nome do host principal. No entanto, isso não está acontecendo.

Como devo usar o FreeIPA para obter os registros DNS SSHFP necessários para os nomes de host secundários? Obviamente, mais do que o ipa-join que estou fazendo é necessário.

    
por Dave 06.08.2018 / 22:52

1 resposta

0

Provavelmente não é a resposta que você gosta, mas também considerei os RRs do SSHFP no DNS, mas desisti disso pelas seguintes razões:

  1. É necessário suporte ao cliente (consulte a opção VerifyHostKeyDNS para o cliente OpenSSH).
  2. Você precisa assinar suas zonas DNS com o DNSSEC e ter resolvedores locais para verificar se as assinaturas estão realmente seguras. Caso contrário, os registros DNS podem ser facilmente falsificados.
  3. Em alguns ambientes maiores, é muito difícil coordenar isso com as pessoas responsáveis pelos servidores DNS. Lembre-se de que você precisaria de atualizações de DNS dinâmicas se tiver muitos servidores SSH.

É altamente recomendável consultar os certificados OpenSSH para permitir que uma autoridade de certificação confiável assine todas as chaves do host. Isso também precisa de suporte ao cliente (por exemplo, não suportado no PuTTY) e você precisa distribuir a (s) chave (s) pública (s) do SSH-CA para todos os clientes. Mas é mais fácil do que DNSSEC e IMHO mais seguro.

    
por 07.08.2018 / 10:15