Algum tempo atrás precisei autenticar o
Linux no AD no trabalho, foi onde começou o meu problema, procurei tutoriais na internet mas não conseguia de maneira nenhuma logar o Ubuntu 9.04 no Active Directory. Depois de muitas pesquisas e de muitos testes consegui e venho aqui compartilhar com alguém que esteja na mesma situação.
Nesta situação foi usado como cliente o
Ubuntu 9.04 e como servidor o
Windows 2003 Server.
Para começar são necessários alguns dados sobre sua rede e seu domínio. Para este artigo assumi os seguintes dados:
- Nome do grupo/domínio (nome o qual é reconhecido o domínio "workgroup") = dominio
- Nome do domínio (nome utilizado para adicionar as máquinas Windows no domínio) = dominio.vov
- Nome do kerberos "realm" (mesmo nome do domínio sendo maiúsculo) = DOMINIO.VOV
- Nome da máquina com servidor (hostname da máquina com AD) = servidor
- Nome da máquina cliente (hostname da máquina local) = cliente
- IP do servidor AD = 192.168.0.2
Pacotes necessários são:
- Kerberos (será usado como protocolo de autenticação)
- Winbind (será usado para fazer relações de confiança entre domínios e os smbd e nmbd)
- Samba (usado para fazer a comunicação entre Linux e Windows)
Vamos instalar as dependências usando apt-get:
# apt-get install krb5-user samba winbind
Alterando arquivos .conf
Os arquivos abaixo devem ser alterados de acordo com sua rede.
Adicione no arquivo
/etc/resolv.conf:
search dominio.vov
nameserver 192.168.0.2
Adicionar ao arquivo
/etc/hosts:
192.168.0.2 servidor.grupo.vov servidor
Modificar no arquivo
/etc/nsswitch.conf:
passwd: compat winbind
group: compat winbind
shadow: compat winbind
Acrescentar algumas linhas e modificar outras já existentes em
/etc/kbr5.conf:
[logging]
default=FILE:/var/log/krb5libs.log
kdc=FILE:/var/log/krb5kdc.log
admin_server=FILE:/var/log/kadmind.log
[libdefaults]
#As linhas abaixo devem ser adicionadas abaixo de [libdefaults]
default_realm = DOMINIO.VOV
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
[realms]
#As linhas abaixo devem ser adicionadas abaixo de [realms]
DOMINIO.VOV = {
kdc = servidor.dominio.vov
admin_server = servidor.dominio.vov
default_domain = DOMINIO.VOV
}
[domain_realm]
#As linhas abaixo devem ser adicionadas abaixo de [domain_realm]
.dominio.vov = DOMINIO.VOV
dominio.vov = DOMINIO.VOV
Após fazer as configurações acima, executar os seguintes comandos para testar o Kerberos.
Sincronizando horário:
# ntpdate 192.168.0.2
Testando o Kerberos:
# kinit Usuário_do_Dominio@DOMINIO.VOV
Se não aparecer nenhuma mensagem de erro, funcionou! Digite o próximo:
# klist
Deve aparecer o texto abaixo:
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: usuário@DOMINIO.SEU
Valid starting Expires Service
16/10/09 14:12:30 16/10/09 13:12:34 krbtgt/DOMINIO.VOV@DOMINIO.VOV
RENEW UNTIL 16/10/09 13:35:22
Principais erros possíveis:
- Hora do cliente não está sincronizada com a hora do servidor;
- Nome do domínio não está maiúsculo.
De acordo com o Kerberos, são o únicos erros que relatei.