segunda-feira, 26 de julho de 2010

Configurando Samba para autenticar usuários no Active Directory.

Como citado no post anterior, o Active Directory é uma ótima opção para se manter uma base de dados unificada de usuários dentro de uma rede de computadores.

Neste post pretendo da maneira mais simples possível, fazer uma receitinha de bolo, com os passos para que os usuários de uma rede consigam acessar arquivos e impressoras em um servidor Linux de forma transparente, usando as credenciais cadastradas previamente no Active Directory da Microsoft.

Ambiente:

Os testes foram feitos usando um servidor com CentOS 5.1, autenticando em um Active Directory configurado em um Servidor com 2008 Server, e estações com Windows XP, Vista e 7.

Vamos considerar:

Domínio: SEUDOMINIO.LOCAL
DOMINIO NET BIOS: SEUDOMINIO
Servidor Linux: SERVLNX.SEUDOMINIO.LOCAL
Servidor Windows: SERVWIN.SEUDOMINIO.LOCAL
Rede: 10.1.1.0
Mascara: 255.255.255.0
IP servidor Linux: 10.1.1.2
IP servido Windows: 10.1.1.1

Considerações iniciais:

Vamos considerar uma instalação básica do servidor Linux, com as devidas configurações de rede. E o Active Directory devidamente instalado e configurado no servidor Windows, já com as GPOs e usuários cadastrados e funcionando.

É muito importante que ela esteja enxergando as outras maquinas da rede pelo seu nome completo, por exemplo: EST-01.SEUDOMINIO.LOCAL

Acessar o arquivo /etc/hosts do servidor Linux e inserir no final do arquivo o nome completo da maquina no domínio:

#vim /etc/hosts

 Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               SERVLNX.SEUDOMINIO.LOCAL SERVLNX  localhost.localdomain localhost
10.1.1.1     SERVWIN.SEUDOMINIO.LOCAL        SERVWIN

Instalar os seguintes pacotes:

# yum install samba samba-common samba-client

Configurando o samba:

Vamos fazer um backup do arquivo de configuração antes de altera-lo:

# cp /etc/samba/smb.conf /etc/samba/smb.conf_ori

Agora vamos as configurações, acesse o arquivo de configuração do samba e altere as seguintes opções:

#vim /etc/samba/smb.conf

# Parâmetro do Samba
[global]

# Coloque o nome netbios do domínio
workgroup = SEUDOMINIO

# Coloque o o nome completo do domínio
realm = SEUDOMINIO.LOCAL

# Coloque o tipo de autenticação
security = ads

# Servidor LDAP para consulta de usuários e grupos do AD
password server = SERVWIN.SEUDOMINIO.LOCAL


# Range de UIDs e GIDs usados pelos usuários do domínio
idmap uid = 10000-20000
idmap gid = 10000-20000

# Configurações de log
log file = /var/log/samba/%m.log
max log size = 50

Agora vamos configurar o servidor Kérberos:

Edite o arquivo /etc/krb5.conf conforme abaixo:

# vim /etc/krb5.conf

[libdefaults]
default_realm = SEUDOMINIO.LOCAL

[realms]

SEUDOMINIO.LOCAL = {

kdc = SERVWIN.SEUDOMINIO.LOCAL
admin_server = SERVWIN.SEUDOMINIO.LOCAL
default_domain = SEUDOMINIO.LOCAL

[domain_realm]

.seudominio.local = SEUDOMINIO.LOCAL

seudominio.local =SEUDOMINIO.LOCAL

Agora vamos editar o arquivo /etc/nsswitch.conf conforme abaixo:

passwd: files
group: files
shadow: files

para:

passwd: files winbind
group: files winbind
shadow: files

Vamos sincronizar a hora do nosso servidor Linux com o servidor Windows:

# ntpdate SERVWIN.SEUDOMINIO.LOCAL

Reinicie os serviços:

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

Agora vamos Ingressar a máquina no domínio:

# net ads join -U administrador

Coloque a senha de administrador de domínio e aguarde a mensagem:

 "Joined ' SERVLNX ' to realm ‘SEUDOMINIO.LOCAL’ "


Reinicie os serviços:

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

Verificar se instalação e configuração estão ok:

# wbinfo -u

 Devem retornar os usuários do domínio.

# getent passwd

Devem retornar os usuários locais da máquina.

# wbinfo -g

Devem retornar os grupos do domínio

# getent group

Devem retornar os grupos locais da máquina.

Definir serviços para subir no boot, pelo chkconfig:

# chkconfig --level 345 smb on
# chkconfig --level 345 winbind on

Nenhum comentário: