Autenticando o OpenBSD no Active Directory

24

Edit: Reformatted this with 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?

sh-beta
fonte
Muito agradável! Isso parece muito completo e bem escrito. Eu não uso o OpenBSD, mas as partes do AD parecem perfeitas.
Evan Anderson
+1 para um bom guia, embora não seja realmente uma pergunta.
21480 David Schmitt
Você deve mudar isso para o formato de perguntas e respostas.
9309 Doug Luxem
Alterado, embora ainda seja um Wiki da comunidade. Se alguém puder mudar isso, vá em frente.
sh-beta

Respostas:

17

Prefácio

A autenticação no Active Directory com o Kerberos é bastante simples em sistemas que usam PAM, mas o OpenBSD não faz e dificulta. 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.

Enfim, demorei um pouco para descobrir, 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 fazer o login. Eles não são criados automaticamente.
  • Se você deseja que os usuários sejam criados automaticamente, consulte o Samba / Winbind. Não tive nada além de problemas (falhas inexplicáveis, spam grave de log, autenticação não confiável), por isso só uso quando preciso.
  • Isso foi testado no OpenBSD 4.5 e no Windows Server 2003. Tenho certeza de que funcionará com o Win2k, mas com o YMMV.
  • Esta versão do OpenBSD usa Heimdal 0.7.2. Tudo aqui, além dos caminhos e do material login.conf, provavelmente funcionará em outros * nixes executando o mesmo Heimdal, mas novamente, YMMV.

Instruções

Essas 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 de computador). Desative a expiração da senha e não permita que o usuário altere sua própria senha. Defina a senha como desejar - ela será alterada em breve.

  2. Provavelmente, é uma boa ideia criar a conta de 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. No pdc.EXAMPLE.COM, baixe e instale as Ferramentas de Suporte do Windows Server (especificamente, você precisará do ktpass.exe)

  4. No pdc.EXAMPLE.COM, execute:

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

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

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

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

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

  7. Configure /etc/krb5.conf. Abaixo está o mínimo necessário. Há muitas opções disponíveis, consulte a página de manual para obter mais detalhes. Isso apenas define o desvio máximo aceitável do relógio para 5 minutos, faz do EXAMPLE.COM o domínio padrão e informa ao Kerberos como converter entre domínios DNS e Kerberos.

    [libdefaults]
    clockskew = 300
    default_realm = EXAMPLE.COM

    [
    regiões ] EXAMPLE.COM = {
    domínio_ padrão = EXAMPLE.COM
    }

    [
    domínio_domínio ] .EXAMPLE.COM = EXAMPLE.COM

  8. Verifique se você pode obter um ticket:

    # 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 variará dependendo de como você usa seu sistema, mas para passar de uma instalação básica para o Kerberos, basta editar e comentar esta linha na 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 possam usar senhas do Active Directory e local (não recomendado).

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

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

É tudo o que há para isso.

Ligações

Alguns sites úteis:

sh-beta
fonte
Parece que o 2008 R2 possui o ktpass.exe. Talvez também o ano de 2008, não posso dizer com certeza nesta fase. Se alguém puder esclarecer, isso seria ótimo.
Aaron Mason
Além disso, para fazer isso com o 5.7 em diante, você precisará instalar o pacote Heimdal - ele foi removido da base na 5.6.
Aaron Mason
Adenda ao comentário anterior - você também terá que instalar o pacote login_krb5 e copiar os login_krb5-or-pwdpara /usr/libexec/auth- arquivos também configuração e keytab estão agora em /etc/heimdale não em /etc/kerberosVcomo nas versões do OpenBSD anteriores.
Aaron Mason
5

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

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

-3. Instale os pacotes heimdale login_krb5do 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-o /usr/local/heimdal/binao caminho do sistema. Caso contrário, não deixe de referenciar as ferramentas com seu caminho completo ao usá-las.

Além disso, os arquivos krb5.confe krb5.keytabentram /etc/heimdalagora.

Aaron Mason
fonte