Samba é um software livre responsável por prover interação de computadores rodadebianndo sistemas operacionais do tipo Unix (Linux, por exemplo) e em sua versão 4 ele permite a integração com o Active Directory possibilitando que o controlador do AD não seja obrigatoriamente um computador executando Microsoft Windows.

Este pequeno roteiro mostra como realizar uma simples instalação do Samba 4 no Debian Linux Squeeze criando um domínio Active Directory. O suporte ao serviço de DNS será feito com o recurso interno do próprio Samba.

Iremos assumir que o domínio criado será o “smb.mps.eti.br” com o nome NetBIOS “SMB” e o sistema de arquivos do local da instalação é um EXT3/4.


PREPARAÇÃO

Para começar certifique-se que a partição onde o samba será executado possua suporte às listas de controle de acesso.

Por exemplo, altere no /etc/fstab as partições necessárias, adicionando a opção em negrito:

# /etc/fstab: static file system information.
#
# Use ‘blkid’ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/vda1 during installation
UUID=b6124042-d43b-4ee3-a292-d4c1d3e5acf1 / ext3 errors=remount-ro,acl 0 1
# swap was on /dev/vda5 during installation
UUID=d7b701cd-cc01-49b2-b743-9c38bb4187ba none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0

 

Remonte o sistema de arquivos ativando a opção (no meu caso, apenas o / (barra) foi alterado):
# mount -o remount /

 

Em seguida instale as dependência do Samba no Debian:

 

apt-get install build-essential libacl1-dev libattr1-dev \
libblkid-dev libgnutls-dev libreadline-dev python-dev \
python-dnspython gdb pkg-config libpopt-dev libldap2-dev \
dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev

 

COMPILAÇÃO E INSTALAÇÃO

Após ter baixado a versão do Samba (4.0.5 na época de escrita deste roteiro) e descompactado ele, execute os comandos a seguir dentro do diretório de códigos fonte do Samba:

# ./configure
# make

 

Com a compilação realizada com sucesso é hora de instalar:

# make install

 

Por padrão o Samba será instalado em “/usr/local/samba”.

 

CRIAÇÃO DO DOMÍNIO DO ACTIVE DIRECTORY

O próximo passo é a criação do domínio Active Directory que o Samba irá atender, execute o comando:

 

# /usr/local/samba/bin/samba-tool domain provision

 

As seguintes informações serão solicitadas:

Realm: é o sufixo que será adicionado a todas as máquinas que ingressarem no domínio Active Directory (ex: SMB.MPS.ETI.BR).

Domain: é o nome do domínio do Active Directory (ex: SMB).

Server Role: é o tipo de papel que o este computador com Samba irá desempenhar, dc – Domain Controller, member – Membro do domínio, standalone – Perfil único deste domínio (para nosso caso, escolha “dc”).

DNS backend: é o mecanismo a ser utilizado para o serviço de DNS (nosso caso: SAMBA_INTERNAL).

DNS forwarder IP address: é o serviço de DNS que irá receber solicitações quando o DNS do Samba não souber como atender (você pode colocar o DNS da sua rede ou desabilitar este recurso colocando “none”).

Administrator password: Senha do administrador do Active Directory.

 

Terminada a configuração é exibido um resumo da configuração, no meu caso ficou:

 

A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4
NetBIOS Domain: SMB
DNS Domain: smb.mps.eti.br
DOMAIN SID: S-1-5-21-1279073790-2063725205-4060377033

 

Como indicado no resumo, é preciso atualizar o arquivo do Kerberos, para isso faça um backup do seu arquivo e depois copie o do Samba para seu devido lugar.

 

# cp /etc/krb5.conf /etc/krb5.conf-old
# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

 

Altere o arquivo resolv.conf para apontar para o DNS local, ficando parecido com:

 

domain smb.mps.eti.br
search smb.mps.eti.br
nameserver 127.0.0.1

 

TESTES

A partir desse ponto o Samba está instalado e você pode iniciá-lo:

# /usr/local/samba/sbin/samba

 

Se preferir pode iniciá-lo com a opção interativa e com um único processo para fins de testes:

 

# /usr/local/samba/sbin/samba -i -M single

 

Você pode realizar alguns testes com os comandos abaixo.

Pegando um ticket do Kerberos no Realm do Samba (forneça a senha que configurou acima).

 

# kinit administrator@SMB.MPS.ETI.BR

O comando deve retonar algo como:
Warning: Your password will expire …

 

E depois liste o ticket com:

# klist

 

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SMB.MPS.ETI.BR
Valid starting Expires Service principal
04/11/13 09:44:03 04/11/13 19:44:03 krbtgt/SMB.MPS.ETI.BR@SMB.MPS.ETI.BR
renew until 04/12/13 09:44:00

Testando o DNS:

 

# host -t SRV _ldap._tcp.smb.mps.eti.br.

_ldap._tcp.smb.mps.eti.br has SRV record 0 100 389 samba4.smb.mps.eti.br.

 

# host -t SRV _kerberos._udp.smb.mps.eti.br.

_kerberos._udp.smb.mps.eti.br has SRV record 0 100 88 samba4.smb.mps.eti.br.

 

# host -t A smb.mps.eti.br.

smb.mps.eti.br has address 10.0.0.1

 

FINALIZAÇÃO

Com os testes realizados com sucesso, o Samba está pronto para utilização. O ideal será você inicializá-lo com um script em /etc/rc.d (não iremos cobrir esta configuração).
Para gerenciar o Active Directory e o DNS você pode utilizar as ferramentas da própria Microsoft.

REFERÊNCIA

Samba AD DC HOWTO – https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO

Este artigo foi lido 13609 vezes!

Escrito por Marcos Paulo Serafim

Diretor de Tecnologia na Netdeep Tecnologia. Especializado em Ciência da Computação e Matemática aplicada, com ênfase em Arquitetura de Sistemas de Computação e Linguagens de Programação. Seus assuntos de interesse são software livre, linux, desenvolvimento de software, inteligência artificial, realidade virtual e computação quântica.

Deixe o seu comentário

netdeep