objetivo

demonstrar a configuracao de autenticacao AD em uma ambiente Debian

instalação

ntpdate

aptitude intall ntpdate

kerberos

aptitude install krb5-user libpam-krb5 krb5-config libkrb53 libkadm55

samba

aptitude install samba windbind

configuração

/etc/hosts

192.168.0.8	rdpsrv rdpsrv.dominio.social

é necessário configurar no hosts o IP que a máquina está usando e o nome, do contrário pode ter problemas para gerar o ticket e ingressar no domínio

/etc/hostname

rdpsrv.dominio.social

O hostname da máquina deve conter o domínio completo

ntpdate

edite o arquivo

/etc/default/ntpdate

e insira o seguinte conteúdo

# The settings in this file are used by the program ntpdate-debian, but not
# by the upstream program ntpdate.

# Set to "yes" to take the server list from /etc/ntp.conf, from package ntp,
# so you only have to keep it in one place.
NTPDATE_USE_NTP_CONF=yes

# List of NTP servers to use  (Separate multiple servers with spaces.)
# Not used if NTPDATE_USE_NTP_CONF is yes.
NTPSERVERS="ntp.dominio.social"

# Additional options to pass to ntpdate
NTPOPTIONS="-u"

Lembrando que você precisa substituir ntp.dominio.social para o nome do seu servidor NTP.

Sincronize o horário do servidor linux com o ad, isso é importante para gerar o ticket, veja o exemplo:

# ntpdate -s 192.168.0.2

kerberos

configuração

edite o arquivo

/etc/krb5.conf

insira o conteúdo e vá ajustando os nomes e domínios conforme seu ambiente

[logging]
        Default = FILE:/var/log/krb5.log

[libdefaults]
        ticket_lifetime = 24000
        clock-skew = 300
        default_realm = DOMINIO.SOCIAL
       dns_lookup_realm = true
       dns_lookup_kdc = true

[realms]
  DOMINIO.SOCIAL = {
                kdc = PDC.DOMINIO.SOCIAL:88
                admin_server = PDC.DOMINIO.SOCIAL:749
                default_domain = DOMINIO.SOCIAL
}
[domain_realm]

dominio.social = PDC.DOMINIO.SOCIAL
.dominio.social = PDC.DOMINIO.SOCIAL

[login]
	krb4_convert = true
	krb4_get_tickets = false

A referência pdc.dominio.social é para ser o nome do seu servidor AD.

testes

vamos requisitar um ticket para checar se a configuração do kerberos está correta

root@ltsp-server:~# kinit -V Administrador@DOMINIO.SOCIAL
Password for Administrador@DOMINIO.SOCIAL: 
Authenticated to Kerberos v5

se o passo acima funcionou, verifique as informacoes do ticket gerado

root@ltsp-server:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrador@DOMINIO.SOCIAL
  
Valid starting     Expires            Service principal
02/09/12 15:09:47  02/09/12 21:49:47  krbtgt/DOMINIO.SOCIAL@DOMINIO.SOCIAL

samba

configuração

edite o arquivo

/etc/samba/smb.conf

e insira o conteúdo, substuindo o nome do servidor, ip e real de acordo com seu ambiente.

[global]
        security = ads
        realm = DOMINIO.SOCIAL
        password server = 192.168.0.2
        workgroup = DOMINIO
#       winbind separator = +
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        winbind enum users = yes
        winbind enum groups = yes
        template homedir = /home/%D/%U
        template shell = /bin/bash
        client use spnego = yes
        client ntlmv2 auth = yes
        encrypt passwords = yes
        winbind use default domain = yes
        restrict anonymous = 2
        domain master = no
        local master = no
        preferred master = no
        os level = 0

reiniciando

reinicie samba e winbind

# /etc/init.d/winbind stop
# /etc/init.d/samba stop
# /etc/init.d/samba start
# /etc/init.d/winbind start

ingressando no domínio

para ingressar no domínio use o comando abaixo

root@ltsp-server:~# net ads join -U Administrador
Enter Administrador's password:
Using short domain name -- DOMINIO
Joined 'LTSP-SERVER' to realm 'DOMINIO.SOCIAL'

verificando usuários do ad

para verificar se o winbind está enxergando usuários do ad, rode

root@ltsp-server:~# wbinfo -u
LTSP-SERVER\nobody
LTSP-SERVER\gutocarvalho
LTSP-SERVER\cliente1
convidado
administrador
paulo
roberto
fernando
augusto
...

se quiser checar se visualiza os grupos, rode

root@rdpsrv01:/home/sysadmin# wbinfo -g
usuários do domínio
convidados domínio
editores de certificados
servidores ras e ias
computadores do domínio
controladores de domínio
admins. do domínio
administração de empresa
proprietários criadores de diretiva de grupo
administradores de esquemas
dnsadmins
...

se houve um retorno similar, contendo os usuários e grupos do AD, sua máquina ingressou corretamente no domínio.

Se retornar algum erro, pare o winbind, reinicie o samba, inicie o winbind e tente novamente.

nsswitch

arquivo

/etc/nsswitch.conf

adicionar o parâmetro winbind no final das linhas

passwd:         compat
group:          compat

o resultado será este

passwd:         compat winbind
group:          compat winbind

pam

edite os arquivos do PAM e deixe eles apenas com o conteúdo a seguir

common-account

arquivo

/etc/pam.d/common-account

conteúdo

account sufficient      pam_winbind.so
account required        pam_unix.so

common-auth

arquivo

/etc/pam.d/common-auth

conteúdo

auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required   pam_deny.so

common-session

arquivo

/etc/pam.d/common-session

conteúdo

session required pam_unix.so
session required pam_mkhomedir.so umask=0022 skel=/etc/skel

sudo

arquivo

/etc/pam.d/sudo

conteúdo

Auth sufficient pam_winbind.so
Auth sufficient pam_unix.so use_first_pass
Auth required    pam_deny.so

@include common-account

se você não configurar o PAM a autenticação no AD não vai funcionar.

problemas conhecidos

usuário novo

se você criou um usuário novo do ad e ele não aparece na lista, reinicie o winbind.

troca da senha inicial

se você criou um usuário novo no ad e ele não loga no GNOME/XRDP, pode ser devido a necessidade de troca de senha inicial, faça isso em um terminal usando o comando login.

dpsrv01.dominio.social login: tsmodelo
Password: 
You need to change your password now
Current Kerberos password: 
Enter new Kerberos password: 
Retype new Kerberos password: 

Feito isto, vai logar normalmente

root@rdpsrv01:~# login
Login rdpsrv01.dominio.social: tsmodelo
Password: 
Último login:Dom Fev 12 16:41:13 BRST 2012em pts/3
Linux rdpsrv01.dominio.social 2.6.32-5-686 #1 SMP Mon Jan 16 16:04:25 UTC 2012 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Se você não conseguir trocar a senha, gere um ticket kerberos e tente novamente.

root@ltsp-server:~# kinit -V Administrador@DOMINIO.SOCIAL
Password for Administrador@DOMINIO.SOCIAL: 
Authenticated to Kerberos v5

referências



autenticando_debian_em_active_directory_via_kerberos_e_pam.txt · Last modified: 2012/02/12 19:10 by gutocarvalho
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0