Você está na página 1de 11

13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

SAMBA 4 (ACTIVE DIRECTORY) NO DEBIAN/UBUNTU SERVER

Autor: Davi Rodrigues <davirodrigues at gmail.com>


Data: 06/05/2013

INTRODUÇÃO / PREPARAÇÃO / DEPENDÊNCIAS

Primeiramente, gostaria de agradecer aos leitores desse tão renomado site de software livre e agradecer
também à equipe de desenvolvimento do Samba (http://www.samba.org/samba/team/) que, com sua
última versão, possibilitou a criação de um domínio Active Directory, tornando a vida dos administradores
de redes mais simples e mostrando que o GNU/Linux também tem a robustez do seu eterno rival.

Todos sabemos e conhecemos o sacrifício que é configurar o Samba com o OpenLDAP, que depois de
configurado, fica uma beleza, mas ainda assim, não é tão bom quanto o Active Directory da MS. Porém,
com esse novo modo de pensar do time Samba.org (http://www.samba.org), temos em primeira mão o
Samba 4, ou melhor dizendo, o nosso Active Directory open source.

Nesse artigo, vou mostrar como instalar e configurar o Samba 4, mostrando um pouco do meu
conhecimento sobre a ferramenta e direi também algumas melhores práticas, porém, ressalto que o foco
é a instalação do Samba 4. Assim, este artigo deverá servir como um guia de instalação.

PREPARAÇÃO DO SERVIDOR

Bom, como falei antes, o servidor deverá ter as particularidades de cada empresa, no meu caso, eu utilizo
o sistema de arquivos com RAID + LVM para facilitar a minha manutenção. Vou colocar aqui a
configuração que utilizei para fazer os testes:

/ → 30 GB (ext4) - Onde será instalado o Samba 4.


/home → 47 GB (ext4) - Onde será feito o controle de quota de disco.
SWAP → 4 GB.

INSTALANDO DEPENDÊNCIAS

Tendo particionado o seu sistema de arquivos, vamos para a instalação das dependências, lembrando
que eu testei e configurei em sistemas Debian e Ubuntu server, então, para outras distribuições, a
instalação é diferente, porém, a instalação e configuração do Samba 4 não difere.

# 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

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 1/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

Caso esteja utilizando outra distribuição, favor verificar a instalação das dependências no site oficial do
Samba.org e procurar sobre a sua distribuição:
Samba 4/OS Requirements (https:// wiki.samba.org/index.php/Samba_4/OS_Requirements)

Após feito a instalação das dependências, vamos fazer a configuração do sistema de arquivos para
receber o Samba 4.

Nas dependências, instalamos o "attr", que dará suporte a recursos avançadas do Samba 4. Também
devemos ter um sistema de arquivos que suporte ACL, pois ela nos dará mais possibilidades de
configuração de permissões especiais do Active Directory. E a opção de "barrier=1", que nos dá a
segurança para que as transações do "tdb" e "ldb" sejam realizadas de forma segura, prevenindo assim,
um erro por falha de energia que pode corromper do banco de dados do AD.

Vamos então ao fstab (Obs.: muito cuidado ao mexer no fstab, pois você poderá deixar o sistema não
inicializável).

* Outra dica: o ideal é que o sistema de arquivos seja ext3, ext4 ou superior, no meu caso, estou utilizando
o ext4.

 sudo vim /etc/fstab

Localize a linha que monta o seu sistema de arquivos /home e modifique-a para a seguinte forma:

/dev/sdb1    /home     ext4   user_xattr,acl,barrier=1   1  1

Nesse caso eu adicionei apenas "user_xattr,acl,barrier=1", como expliquei anteriormente, agora vamos
remontar e testar se as modificações estão OK?

# mount ­o remount,rw /home

Testes no sistema de arquivos:

# touch test.txt
# setfattr ­n user.test ­v test test.txt
# setfattr ­n security.test ­v test2 test.txt
# getfattr ­d test.txt
# getfattr ­n security.test ­d test.txt

Se estiver tudo correto, os comandos acima retornarão essas respostas, respectivamente:

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 2/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

# file: test.txt
user.test="test"

# file: test.txt
security.test="test2"

Se até aqui estiver tudo certinho, vamos para o próximo passo.

COMPILAÇÃO / KERBEROS

Depois de ter instalado as dependências, estamos prontos para instalar o Samba 4 e provisionar um
domínio. Vamos lá.

COMPILANDO O SAMBA 4

A compilação é bem simples, basta faze o download do source do Samba 4 no site samba.org. Durante o
desenvolvimento deste artigo, o Samba está na versão 4.0.5. Assim, podemos fazer o download através
deste link:

http://www.samba.org/samba/ftp/stable/samba-4.0.5.tar.gz (http://
www.samba.org/samba/ftp/stable/samba-4.0.5.tar.gz)

Feito isto, vamos descompactar e compilar:

# tar ­zxvf samba­4.0.5.tar.gz
# cd samba­4.0.5

Pronto, já descompactamos. Agora vamos fazer a compilação do source.

O time do Samba recomenda que utilize as opções "--enable-debug" e "--enable-selftest", que irão colocar
informações de debug para ajudar a identificar bugs, mas as opções são totalmente opcionais, podendo
ser executado sem qualquer opção:

# ./configure

Se o comando acima for executado sem nenhum erro, então todas as dependências foram instaladas com
sucesso e podemos prosseguir.

Agora basta executar um:

# make

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 3/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

E depois um:

# make install

O tempo de compilação vai depender do hardware que está sendo executado, mas demora um pouco
mesmo, se não ocorrer nenhum erro no make ou no make install, então o Samba 4 foi instalado com
sucesso. Vamos agora começar a criação do domínio.
Se não especificarmos nada no "./configure", então o Samba será instalado no diretório padrão, que seria
/usr/local/samba.

O Samba vem com uma ferramenta chamada "samba-tool", que é equivalente à ferramenta da solução
proprietária DCPromo. Vamos aos passos para a criação do domínio.

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

Então, a primeira pergunta é:

Realm []: TESTE.LOCAL

Aqui você deverá inserir o seu domínio totalmente qualificado FQDN, nesse caso, utilizei um domínio local
(TESTE.LOCAL). Depois vem a seguinte pergunta:

Domain [TESTE]:

Então, é só confirmar o domínio sugerido. Após, vem a pergunta decisiva:

Server Role (dc, member, standalone) [dc]:

Esta pergunta é onde você irá dizer se é um servidor Domain Controle, se é um Membro, ou se será
Standalone, no meu caso, será um controlador de domínio mesmo, então é só aceitar o dc sugerido.

Na próxima pergunta é onde será selecionado como será o DNS do Samba 4, o Samba vem pronto para
utilizar o seu DNS interno que faz tudo, inclusive, a inclusão dinâmica de máquinas no DNS.

A grande desvantagem é que não é possível controlá-lo, a vantagem é que não é necessário ter o BIND
instalado. Vejamos a seguir:

DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE)
[SAMBA_INTERNAL]:

Como vemos, ele nos dá quatro opções que se pode resumir em três:
SAMBA_INTERNAL;
BIND9_FLATFILE;
BIND9_DLZ.

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 4/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

Pois sabemos que o Active directory necessita de um DNS para funcionar perfeitamente como eu havia
dito anteriormente, o Samba sugere a utilização do SAMBA_INTERNAL, mas também temos outras duas
opções, a opção BIND9_FLATFILE que nos dá a flexibilidade de manutenção do DNS.

Só é aconselhável utilizar esta opção quando já tem um DNS funcionando na rede e se você dominar a
configuração do BIND 9. Em outros casos, poderá ter a mesma flexibilidade de manutenção do BIND 9, só
que deixando o Samba 4 fazer toda a configuração por você, mas, para isto, é preciso instalar outras
dependências antes de instalar o Samba 4.

Para utilizar esta opção, consulte o site:


https://wiki.samba.org/index.php/Samba_4/OS_Requirements (https://
wiki.samba.org/index.php/Samba_4/OS_Requirements)

E verifique a parte de DNS dinâmico, nesse caso, vamos aceitar a sugestão e utilizar o
SAMBA_INTERNAL.

Então, ele pedirá um DNS para encaminhamento caso o DNS dele não saiba identificar o endereço,
normalmente um DNS externo, por exemplo "8.8.8.8" do Google ou outro do seu provedor:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8

Depois ele pedirá a senha do Administrator:

Administrator password:

Então, a senha deverá ter um nível de complexidade misturando letras maiúsculas, minúsculas, caracteres
especiais (!@#$%) e números. Também deverá ter no mínimo 8 caracteres, e acredito que até 16
caracteres, então a senha que eu irei utilizar aqui é: P4ssW@rd

O Samba irá criar as entradas de DNS, criará o arquivo "smb.conf", e os bancos de dados "tbd", "ldb", e o
"schema" do Active Directory.

Ao finalizar, já podemos subir e testar o AD open source com o seguinte comando:

# /usr/local/samba/sbin/samba

Agora vamos testar o domínio e o DNS. Vamos verificar primeiro se o "smbclient" está na mesma versão
do Samba 4:

# /usr/local/samba/bin/smbclient ­­version

Agora que vimos que está na mesma versão, então vamos testar a conexão:

# /usr/local/samba/bin/smbclient ­L localhost ­U%

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 5/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

O retorno do comando acima é para ser este:

Sharename Type Comment


--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.0.5)

Se até agora não ocorreu nenhum erro, então está perfeito. Vamos testar a autenticação:

# /usr/local/samba/bin/smbclient //localhost/netlogon ­
UAdministrator%'P4ssW@rd' ­c 'ls'

O retorno desse comando acima, é para ser este:

Domain=[TESTE] OS=[Unix] Server=[Samba 4.0.5]


. D 0 Thu Jan 10 08:00:36 2013
.. D 0 Thu Jan 10 08:02:28 2013

Se o retorno foi este, então está tudo certo e podemos testar o DNS.

O DNS deverá ser na mesma máquina do AD open source, então, a máquina deverá estar configurada
com IP estático, o "resolv.conf" deverá ser da seguinte forma:

# vim /etc/resolv.conf

domain TESTE.LOCAL
nameserver 127.0.0.1

Com o "resolv.conf" apontando para a própria máquina, então vamos fazer o teste do DNS:

# host ­t SRV _ldap._tcp.teste.local.

_ldap._tcp.teste.local has SRV record 0 100 389 arquivos.teste.local.

# host ­t SRV _kerberos._udp.teste.local.

_kerberos._udp.teste.local has SRV record 0 100 88 arquivos.teste.local.

# host ­t A arquivos.teste.local.

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 6/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

arquivos.teste.local has address 192.168.0.2

Se os retornos dos comandos forem bem-sucedidos, então o DNS também está OK, e já podemos
configurar o Kerberos para autenticação.

CONFIGURANDO O KERBEROS

Kerberos é um protocolo de comunicação segura na rede com autenticação.

A configuração dele, para funcionar o nosso AD open source, é bastante simples, quando terminamos de
fazer o provisionamento, o Samba cria um arquivo do Kerberos que deverá substituir o arquivo que se
encontra no "/etc/krb5.conf".

É simples, se a instalação for feita no local padrão, ele gera o arquivo dentro do
"/usr/local/samba/shared/setup/krb5.conf", então, é só excluir o "/etc/krb5.conf" e copiar o novo arquivo
"/usr/local/samba/shared/setup/krb5.conf" para dentro do "/etc".

Vamos editar o arquivo que copiamos:

# vim /etc/krb5.conf

E substituir o "${REALM}" pelo realm que foi configurado.

* Lembrando de deixar todo ele em letra maiúscula (exemplo: "TESTE.LOCAL") e pronto, o nosso
Kerberos já está configurado e pronto para funcionar. Agora vamos testar:

# kinit administrator@TESTE.LOCAL

Irá pedir a senha do Administrator que foi cadastrada no provisionamento, agora vamos verificar se ele
gerou o ticket:

# klist

O retorno do comando acima será:

Ticket cache: FILE:/tmp/krb5cc_1000


Default principal: administrator@TESTE.LOCAL
Valid starting Expires Service principal
01/10/13 08:39:48 01/11/13 08:39:46 krbtgt/TESTE.LOCAL@TESTE.LOCAL

Se houver ticket, então significa que está tudo certo até o momento, então vamos para o próximo passo.

CONTROLE DE QUOTA DE DISCO
https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 7/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

A ideia, desde o início, era instalar o Samba 4, porém, depois de instalado, senti necessidade de criar um
controle de quota de disco, pois além do AD, teremos um servidor de arquivos, então, notei que os
usuários do Samba 4 não eram identificado pelo sistema operacional, para isto, teremos que adicionar a
biblioteca do "winbind" que vem com o Samba 4. Vamos lá.

Agora vamos fazer com que o nosso GNU/Linux (//www.vivaolinux.com.br/linux/) enxergue os usuários do
domínio corretamente.

Primeiro, temos que criar esses links simbólicos para dentro das bibliotecas do GNU/Linux, na instalação
do Samba 4 dentro da pasta "/usr/local/samba/lib/", estão as bibliotecas necessárias:

# ln ­s /usr/local/samba/lib/libnss_winbind.so.2
/lib/libnss_winbind.so
# ln ­s /lib/libnss_winbind.so /lib/libnss_winbind.so.2

Agora vamos adicionar as entradas "winbind" dentro no arquivo "/etc/nsswitch.conf", ficando assim:

passwd:     files winbind
group:       files winbind
shadow:     files
...

Confirmando que a biblioteca subiu:

# ldconfig ­v | grep winbind

Testando se está tudo OK:

# /usr/local/samba/bin/wbinfo ­p

Ping to winbindd succeeded

# /usr/local/samba/bin/wbinfo ­u

...
Administrator
...

Populando o passwd:

# getent passwd

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 8/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

...
Administrator:x:0:100::/home/Administrator:/bin/false
...

Verificando se ficou tudo certo:

# id Administrator

uid=0(root) gid=100(users) groupes=0(root),100(users),3000004(Group Policy Creator Owners),

Agora que o nosso S.O. está enxergando os usuários do domínio, vamos começar as configurações
necessárias para as quotas de disco.

Instalando o sistema que controla as quotas:

# apt­get install quota

Agora temos que ir no "/etc/fstab" e editar a linha da partição que queremos controlar as quotas, no meu
caso, como estou utilizando o Ubuntu, ficou da seguinte maneira:

UUID=0fc9f11f-7705-44ce-af05-9f8da7b99d4e /home     ext4   defaults,
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0, user_xattr,acl,barrier=1    0    2

Acrescentei somente os parâmetros "usrjquota=aquota.user,grpjquota=aquota.group", "jqfmt=vfsv0",


"user_xattr", "acl", "barrier=1", o restante ficou da mesma forma.

Obs.: esse tipo de parâmetro só serve para sistemas de arquivos ReiserFS e ext4 ou superior.

Feito isto, agora é só remontar a partição e o sistema de quotas está pronto para uso:

# mount ­o remount,rw /home

Tem uma ferramenta de gerenciamento de quota de disco que é Webmin, é só baixar no site do
desenvolvedor. Segue o link:

http://www.webmin.com/ (http://www.webmin.com/)

Após o download da ferramenta para a sua distribuição correta, é só fazer a instalação e já poderá
administrar as quotas dos usuários ou grupos pela Web.

Segue abaixo o comando para instalar no Debian/Ubuntu:

# dpkg ­i webmin_1.610_all.deb

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 9/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

Se por algum acaso pedir algumas dependências, instalar através do comando:

# aptitude install nome_da_dependencia

CONSIDERAÇÕES FINAIS

A criação da unidade de compartilhamento de arquivos é muito simples, nesta versão do Samba, o


arquivo "smb.conf" pode ser editado no quente, sem a necessidade de um restart depois da alteração, o
que é ótimo.

Fiz apenas a criação do diretório no Samba da forma antiga, como no exemplo:

[dados]
          path = /home/dados
          comment = Descrição do que se trata esta pasta
          read only = No
          browseable = Yes
          writeable = Yes

As permissões da pasta deverão ser para o grupo "users" e as permissões deverão ser 770 para a pasta,
da seguinte forma:

# chown root:users /home/dados/ ­R
# chmod 770 /home/dados/ ­R

O restante é configuração do Active Directory, já testei as GPOs e funciona perfeito, já testei as políticas
de senhas também funcionou perfeito. Acho que é isso!

A administração do Samba 4 deverá ser feita através do aplicativo de gerenciamento gratuito


disponibilizado no site do Samba 4:

Samba AD management from windows - SambaWiki (https://


wiki.samba.org/index.php/Samba_AD_management_from_windows)

Ou, também poderá ser gerenciado pela ferramenta em modo texto que vem instalada com o Samba:
Adding users with samba tool - SambaWiki (https://
wiki.samba.org/index.php/Adding_users_with_samba_tool)

Qualquer dúvida, posta aí!

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 10/11
13/07/2016 Samba 4 (Active Directory) no Debian/Ubuntu Server [Artigo]

 Voltar (verArtigo.php?codigo=14250)

https://www.vivaolinux.com.br/artigos/impressora.php?codigo=14250 11/11

Você também pode gostar