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?
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?
Respostas:
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:
Instruções
Essas etapas pressupõem que você está tentando autenticar myuser@myhost.fqdn 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 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.
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.
No pdc.EXAMPLE.COM, baixe e instale as Ferramentas de Suporte do Windows Server (especificamente, você precisará do ktpass.exe)
No pdc.EXAMPLE.COM, execute:
ktpass -out c: \ temp \ myhost.keytab -princ host/myhost.fqdn@EXAMPLE.COM -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/myhost.fqdn@EXAMPLE.COM" para o usuário "myhost" no Active Directory e despeja as informações de chave principal e privada no diretório arquivo keytab.
Copie com segurança c: \ temp \ myhost.keytab para myhost e exclua o arquivo de pdc.EXAMPLE.COM
No myhost, adicione o keytab do AD ao seu keytab principal:
ktutil copy /path/to/myhost.keytab /etc/kerberosV/krb5.keytab
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
Verifique se você pode obter um ticket:
# kinit Administrator@EXAMPLE.COM
Administrator@EXAMPLE.COM's Password:
# klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: Administrator@EXAMPLE.COM
Issued Expires Principal
Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/EXAMPLE.COM@EXAMPLE.COM
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.
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 (*)
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:
login_krb5-or-pwd
para /usr/libexec/auth
- arquivos também configuração e keytab estão agora em /etc/heimdal
e não em /etc/kerberosV
como nas versões do OpenBSD anteriores.
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 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-o /usr/local/heimdal/bin
ao 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.conf
e krb5.keytab
entram /etc/heimdal
agora.