segunda-feira, 23 de julho de 2012

Samba com autenticação no AD 2008


Ambiente utilizado:

Servidor AD: Windows 2008 Server R2
Domínio AD: empresa.com.br
Nome da Máquina: master.empresa.com.br
IP: 192.168.1.2
Configurar os serviços AD e DNS (o que é bastante simples)

Servidor Samba: CentOS 5
Nome da Máquina: alpha.empresa.com.br
IP: 192.168.1.10

Vamos as que interessa!!!



  • Configuração da Rede:
Edite o arquivo /etc/sysconfig/network

NETWORKING: yes
NETWORKING_IPV6: no
HOSTNAME: alpha.empresa.com.br
GATEWAY: 192.168.1.1

  • Resolução de Nomes
Edite o arquivo /etc/hosts

127.0.0.1          localhost.localdomain        localhost
::1                     localhost6.localdomain      localhost6
192.168.1.10    alpha.empresa.com.br        alpha
192.168.1.2      master.empresa.com.br      master
192.168.1.2      empresa.com.br                 empresa

Faça os teste de ping nos nomes configurados.

  • Configuração do DNS
Edite o arquivo /etc/resolv.conf

domain empresa.com.br
search empresa.com.br
nameserver 192.168.1.1

  • Configuração do Kerberos
Edite o arquivo /etc/krb5.conf

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = EMPRESA.COM.BR
dns_lookup_realm = false
dns_lookup_kdc = true

[realms]
EMPRESA.COM.BR = {
admin_server = master.empresa.com.br
default_domain = empresa.com.br
kdc = 192.168.1.2
}

[domain_realm]
.empresa.com.br = EMPRESA.COM.BR
empresa.com.br = EMPRESA.COM.BR

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

  • Configuração do Samba
Edite o arquivo /etc/samba/smb.conf

[global]
        workgroup = EMPRESA
        server string = Samba Server
        netbios name = alpha
        realm = EMPRESA.COM.BR
        passdb backend = tdbsam

        password server = 192.168.1.2
        idmap uid = 600-20000
        idmap gid = 600-20000

        winbind enum users = yes
        winbind enum groups = yes
        winbind use default domain = yes
        winbind nested groups = yes
        winbind cache time = 86400

        max connections = 0
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        unix charset = iso-8859-1
        template shell = /bin/false
        template homedir = /dev/null
        enhanced browsing = no

        log file = /var/log/samba/%m.log
        max log size = 1000
        syslog = 0
        encrypt passwords = true
        security = ads
        password server = 192.168.1.2
        preferred master = no
        wins server = master.empresa.com.br
        dns proxy = no
        load printers = no
        map to guest = bad user

[geral]
        comment = Compartilhamento Geral para todos os usuarios
        path = /home/geral
        read only = no
        browseable = yes

[informatica]
        path = /home/ti
        read only = no
        valid users = @EMPRESA\Informatica
        guest ok = no
        browseable = yes
        force group = Informatica

  • Configurando a Autenticação
Edite o arquivo /etc/nsswitch.conf (modifique somente as linha abaixo, as demais não devem ser apagadas)

passwd:     files winbind
shadow:     files winbind
group:      files winbind
protocols:  files winbind
services:   files winbind
netgroup:   files winbind
automount:  files winbind

  • Adicionando a Máquina ao Domínio
Restart o Samba e o Winbind:

/etc/init.d/smb restart
/etc/init.d/winbind restart

Acerte a hora o servidor:

ntpdate master.empresa.com.br

Adicione ao domínio:

net ads join -U Administrador

Informe a senha do Administrador do AD, o comando deve informar a seguinte saída:

Using Short domain name - EMPRESA
Joined 'ALPHA' to realm 'EMPRESA.COM.BR'

Em alguns tutorias que pesquisei na internet, na saída acima existia mais uma linha com o conteúdo 'DNS update failed'. Vi que a resolução desse problema é bastante simples, mas não sei exatamente se vai funcionar, pois no meu caso não obtive esse problema. Segue abaixo a resolução do problema.

Edite o arquivo /etc/hosts

#127.0.0.1          localhost.localdomain        localhost
#::1                     localhost6.localdomain      localhost6
192.168.1.10    alpha.empresa.com.br        alpha
192.168.1.2      master.empresa.com.br      master
192.168.1.2      empresa.com.br                 empresa

Execute mais uma vez o comando para adicionar a máquina ao domínio.

Deixe os serviços do Samba e Winbind subindo automaticamente:

chkconfig --level 12345 smb on
chkconfig --level 12345 winbind on

Use o comando wbinfo para fazer os teste necessários.

Edite o arquivo /etc/pam.d/system-auth e deixe-o da seguinte forma:


auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        sufficient    pam_krb5.so use_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     sufficient    pam_krb5.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     optional      pam_krb5.so
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

Reinicie a máquina.