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.
-
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.
-
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.
-
Em pdc.EXAMPLE.COM, baixe e instale as ferramentas de suporte do Windows Server (especificamente, você precisará do ktpass.exe)
-
Em pdc.EXAMPLE.COM, execute:
ktpass -out c:\temp\myhost.keytab -princ host/[email protected] -mapuser myhost -pType KRB5
_
NT_PRINCIPAL +rndpassIsso 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.
-
Copie com segurança c: \ temp \ myhost.keytab para myhost e exclua o arquivo de pdc.EXAMPLE.COM
-
No meu host, adicione o keytab do AD ao seu keytab principal:
ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab
-
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 -
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]
-
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.
-
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 (*) -
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: