Escolar Documentos
Profissional Documentos
Cultura Documentos
SAMBA 4 (ACTIVE DIRECTORY) NO DEBIAN/UBUNTU SERVER
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:
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.
# aptget install buildessential libacl1dev libattr1dev
libblkiddev libgnutlsdev libreadlinedev pythondev python
dnspython gdb pkgconfig libpoptdev libldap2dev dnsutils libbsd
dev attr krb5user docbookxsl
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
# 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
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"
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)
# tar zxvf samba4.0.5.tar.gz
# cd samba4.0.5
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.
# 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/sambatool domain provision
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]:
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.
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
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.
# /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]
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'
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.
# host t SRV _kerberos._udp.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]
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
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".
# vim /etc/krb5.conf
* 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
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
...
# ldconfig v | grep winbind
# /usr/local/samba/bin/wbinfo p
# /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
...
# id Administrator
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.
# aptget 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
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.
# 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]
# aptitude install nome_da_dependencia
CONSIDERAÇÕES FINAIS
[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!
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)
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