Autenticando o OpenBSD no Active Directory

23

Editar: reformatado como Q & A. Se alguém pode mudar isso do Wiki da Comunidade para uma pergunta típica, provavelmente é mais apropriado também.

Como posso autenticar o OpenBSD no Active Directory?

    
por sh-beta 09.06.2009 / 17:16

2 respostas

16

Prefácio

Autenticar-se contra o Active Directory com o Kerberos é bastante simples em sistemas que usam o PAM, mas o OpenBSD não faz isso e o torna mais difícil. De um tcpdump, parece que os sistemas PAM estão apenas fazendo pré-autenticação enquanto o sistema bsd_auth do OpenBSD está usando todo o processo de autenticação Kerberos.

De qualquer forma, isso me levou um tempo para descobrir, então espero que algumas instruções concisas economizem seu tempo.

Algumas notas rápidas antes de começarmos:

  • Os usuários devem existir no sistema OpenBSD antes de tentarem efetuar login. Eles não são autocriados.
  • Se você quiser que os usuários sejam criados automaticamente, procure no Samba / Winbind. Eu não tive nada além de problemas (falhas inexplicáveis, grave spam de log, autenticação não confiável), então eu só uso quando preciso.
  • Isso foi testado no OpenBSD 4.5 e no Windows Server 2003. Tenho certeza que funcionará com o Win2k, mas com o YMMV.
  • Esta versão do OpenBSD usa o Heimdal 0.7.2. Tudo aqui além dos caminhos e do arquivo login.conf provavelmente funcionará em outros * nixes rodando o mesmo Heimdal, mas novamente, YMMV.

Instruções

Estas etapas pressupõem que você está tentando autenticar [email protected] no domínio EXAMPLE.COM. O controlador de domínio é pdc.EXAMPLE.COM.

  1. Crie uma conta de usuário do Active Directory chamada myhost (isso não é um erro de digitação, essas instruções não funcionarão com uma conta do computador). Desative a expiração da senha e não deixe o usuário alterar sua própria senha. Defina a senha como quiser - ela será alterada em breve.

  2. Provavelmente, é uma boa ideia criar a conta do usuário em uma nova UO, removê-la do grupo Usuários do domínio e adicioná-la a um grupo dedicado. Tudo isso é uma questão de gosto e seu layout de segurança.

  3. Em pdc.EXAMPLE.COM, baixe e instale as ferramentas de suporte do Windows Server (especificamente, você precisará do ktpass.exe)

  4. Em pdc.EXAMPLE.COM, execute:

    ktpass -out c:\temp\myhost.keytab -princ host/[email protected] -mapuser myhost -pType KRB5_NT_PRINCIPAL +rndpass

    Isso atualiza a senha do usuário myhost para algo aleatório (+ rndpass), mapas o principal do Kerberos "host/[email protected]" para o usuário "myhost" em Active Directory e, em seguida, despeja as informações da chave principal e privada no -out arquivo keytab.

  5. Copie com segurança c: \ temp \ myhost.keytab para myhost e exclua o arquivo de pdc.EXAMPLE.COM

  6. No meu host, adicione o keytab do AD ao seu keytab principal:

    ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. Configure o /etc/krb5.conf. Abaixo está o mínimo que você precisa. Há muitas opções disponíveis, dê uma olhada na manpage para mais detalhes. Isso apenas define o desvio de clock máximo aceitável para 5 minutos, torna EXAMPLE.COM a região padrão e informa ao Kerberos como fazer a conversão entre os domínios DNS e Kerberos.

    [libdefaults]
    clockskew = 300
    default_realm = EXAMPLE.COM

    [realms]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm]
    .EXAMPLE.COM = EXAMPLE.COM

  8. Verifique se você consegue um ingresso:

    # kinit [email protected]
    [email protected]'s Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: [email protected]

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/[email protected]

  9. Modifique o /etc/login.conf para usar a autenticação Kerberos. Sua configuração exata do login.conf irá variar dependendo de como você usa seu sistema, mas para ir de uma instalação simples para o Kerberos, apenas edite e comente esta linha sob a classe de login padrão:

    :tc=auth-defaults:\

    E adicione acima:

    :auth=krb5-or-pwd:\

    Isso verifica o Kerberos primeiro, a menos que o usuário seja root. Se o Kerberos falhar, ele usará senhas locais.

  10. Adicione os usuários que você deseja autenticar neste host. Deixe as senhas em branco, a menos que você queira que elas usem o Active Directory e as senhas locais (não recomendadas).

    Você pode deixar em branco as senhas dos usuários existentes "chpass <user> " e substituir o valor "Senha criptografada:" por um asterisco (*)

  11. Teste o SSH e o Sudo. Ambos devem funcionar perfeitamente com suas credenciais do Active Directory.

Isso é tudo que existe para isso.

Links

Alguns sites úteis:

por 02.03.2018 / 07:51
4

Uma atualização das instruções acima, já que algumas coisas mudaram desde então.

No OpenBSD 5.6, foi tomada a decisão de remover o Heimdal da distribuição base devido a preocupações com a qualidade do código e ninguém está disposto a gastar o tempo para auditá-lo. Em 5.7, ele foi disponibilizado como um pacote (para 5.6 você precisará construir a partir da fonte ou descobrir como reabilitá-lo na origem). Portanto, antes de seguir as instruções acima, as seguintes etapas adicionais deverão ser concluídas:

-3. Instale os pacotes heimdal e login_krb5 do seu espelho favorito.

-2. Copie /usr/local/libexec/auth/login_krb5* para /usr/libexec/auth .

-1. Se você pretende usar muito as ferramentas heimdal, adicione /usr/local/heimdal/bin ao caminho do seu sistema. Caso contrário, não se esqueça de referenciar as ferramentas com o caminho completo ao usá-las.

Além disso, os arquivos krb5.conf e krb5.keytab entram em /etc/heimdal agora.

    
por 29.01.2016 / 00:35