O debian utilizado para esse documento é o Debian 4 (Etch).
É necessário que o servidor Active Directory já tenha instalado o software AD For Unix.
Primeiro vamos instalar os programas necessários para a consulta LDAP
# apt-get install ldap-utils libldap-2.3-0 libldap2-dev libldap2 libnss-ldap libpam-ldap finger-ldap libsasl2-modules
Após instalação vamos editar os arquivos necessários.
Começaremos com o /etc/nsswitch.conf:
Onde temos:
passwd: compat
group: compat
shadow: compat
Devemos mudar para:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Agora iremos modificar alguns arquivos que podem servir de referência para futuras modificações ou consultas, sendo assim faremos antes um backup.
# cd /etc
# mv pam_ldap.conf pam_ldap.conf.old
# mv libnss-ldap.conf libnss-ldap.conf.old
# mv ldap/ldap.conf ldap/ldap.conf.old
Agora crie um novo /etc/ldap/ldap.conf com o seguinte conteúdo:
# -+-+-+-+-+-+-+- Inicio +-+-+-+-+-+-+-+-+-+-+-+-+-+-
# configurações gerais
host 192.168.100.30
base dc=intranet,dc=ufba,dc=br
ldap_version 3
# Modifique a linha abaixo que reflita o seu ambiente
binddn cn=usuario,ou=ou que está o usuário,dc=techfree,dc=com,dc=br
# Abaixo temos a senha do usuário citado acima
bindpw senhaforte
scope sub
# Atributos específicos do Active Directory
nss_map_objectclass posixAccount User
nss_map_objectclass shadowAccount User
nss_map_attribute uid sAMAccountName
nss_map_attribute uniqueMember member
nss_map_attribute homeDirectory msSFUHomeDirectory
nss_map_attribute cn sAMAccountName
pam_login_attribute sAMAccountName
nss_map_objectclass posixGroup group
pam_member_attribute memberOf
pam_filter objectclass=user
pam_password ad
# -+-+-+-+-+-+-+- FIM +-+-+-+-+-+-+-+-+-+-+-+-+-+-
Agora faremos alguns links para esse arquivo recém-criado:
# cd /etc
# ln -s ldap/ldap.conf pam_ldap.conf
# ln -s ldap/ldap.conf libnss-ldap.conf
Agora faremos um teste pra verificar se tudo foi feito perfeitamente:
# finger
O resultado deve ser algo próximo a informação abaixo:
# finger rafael
Login: rafael Name: Rafael Brito Gomes
Directory: /home/rafael Shell: /bin/bash
Never logged in.
No mail.
No Plan.
Agora vamos configurar o Kerberos. Primeiro vamos instalar os pacotes necessários:
# apt-get install libkrb5-dev libkrb53 libpam-krb5 krb5-config krb5-user nscd
Vamos configurar o arquivo /etc/krb5.conf para que o kerberos funcione normalmente.
O arquivo deve conter o seguinte conteúdo:
# -+-+-+-+-+-+-+- Inicio +-+-+-+-+-+-+-+-+-+-+-+-+-+-
[libdefaults]
default_realm = SEUDOMINIO.COM.BR
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
[realms]
SEUDOMINIO.COM.BR = {
kdc = SERVERAD.SEUDOMINIO.COM.BR
admin_server = SERVERAD.SEUDOMINIO.COM.BR
}
[domain_realm]
seudominio.com.br = SERVERAD.SEUDOMINIO.COM.BR
.seudominio.com.br =SERVERAD.SEUDOMINIO.COM.BR
[login]
krb4_convert = true
krb4_get_tickets = true
# -+-+-+-+-+-+-+- Fim +-+-+-+-+-+-+-+-+-+-+-+-+-+-
É importe ressaltar que o nome do domínio e o servidor controlador do domínio DEVEM estar em letras maiúsculas.
Após essa configuração, o usuário deve criar um “ticket” no servidor para poder autenticar. Para criar um ticket é necessário um usar um usuário válido do domínio UFBA. Na linha de comando, digite:
#kinit seu_usuario
Password for seu_usuario@INTRANET.UFBA.BR:
Se tudo ocorrer normalmente, o processo será igual ao exemplo acima.
Possíveis mensagens de erro retornados:
kinit(v5): Preauthentication failed while getting initial credentials — Usuário ou senha inválidos
kinit(v5): Clock skew too great while getting initial credentials — Horário desajustado
Para evitar problemas com horário, já que o kerberos não faz a pré-autenticação caso a diferença de hora entre o servidor e a estação seja maior que 5 minutos. Para manter o relógio sempre atualizado, instale o
Caso obtenha a mensagem acima, ajuste a hora da estação. Na linha de comando, digite:
# aptitude install ntp
Após isso acesse o arquivo /etc/ntp e adicione o servidor ntp de sua preferência. O Servidor NTP da RNP pode ser utilizado:
server ntp.cais.rnp.br iburst
Após configuração é necessário reiniciar o serviço
# /etc/init.d/ntp restart
Feito isso a configuração do Kerberos está feita. Agora é necessário configurar os arquivos que usam esses arquivos para fazer a autenticação. A maioria da distribuições usam o PAM para centralizar as rotinas de autenticação do Linux.
Vamos configurar o PAM.
Primeiro acesse o arquivo /etc/pam.d/common-auth.
O arquivo deve conter as seguintes informações:
auth sufficient pam_krb5.so
auth required pam_unix.so nullok_secure try_first_pass
session required pam_mkhomedir.so skel=/etc/skel umask=0022
#criar o home caso nao exista. Necessario para logar na interface gráfica
Primeiro acesse o arquivo /etc/pam.d/common-account.
O arquivo deve conter as seguintes informações:
account sufficient pam_krb5.so
account required pam_unix.so
Pronto, agora efetue o seguinte teste:
# id
Ele deve retornar o nome do usuário e os grupos que ele pertence (grupos esse locais e do AD)
Se tiver problemas com o cache do nscd ele deve ter seu cache zerado com os comandos abaixo:
# nscd -i group
# nscd -i passwd
# nscd -i host
Para verificar os dados atuais do nscd digite:
# nscd -g
Pronto, provavelmente seus usuários e grupos do AD serão facilmente utilizados pelo seu servidor Gnu/Linux.
Valeu Jerônimo e Italo pela documentação e ajuda na construção desse conhecimento.
Fonte: http://techfree.com.br