Sei sulla pagina 1di 58

Samba 4

Um novo horizonte

Historia
Tudo comeou em 1983, quando a IBM e a Sytec co-desenvolveram um sistema de rede simples
projetado para a construo de pequenas redes locais. O sistema era baseado numa API para
comunicao em redes chamada NetBIOS, ou Network Basic Input Output System, isto , Sistema
Bsico de Rede de Entrada/Sada.
Foi incluso no NetBIOS um esquema de endereamento que usava nomes de 16 bytes para
identificar estaes de trabalho e aplicaes habilitadas para rede. Em seguida, a Microsoft
adicionou recursos para o DOS que permitia o disco I/O ser redirecionado para a interface NetBIOS,
o que permitiu que o espao em disco fosse compartilhvel atravs da LAN. O protocolo de
compartilhamento de arquivos ficou conhecido como SMB, e agora, CIFS.
Em 1985, o protocolo foi expandido, dando origem ao protocolo NetBEUI, que foi durante muito
tempo o principal protocolo usado em redes locais, antes da popularizao do TCP/IP. O SMB
(Server Message Block) veio mais tarde, junto com o Windows 3.11. O protocolo SMB faz o
compartilhamento de arquivos e impressoras em redes Microsoft, incluindo a navegao na rede, o
estabelecimento de conexes e a transferncia de dados. Ele utiliza o NetBIOS para a troca de
mensagens entre os hosts e inclui uma verso atualizada do protocolo, que roda sobre o TCP/IP.
Andrew Tridgell, um australiano que na poca era estudante do curso de PhD em Cincias da
Computao da Universidade Nacional da Austrlia, precisava rodar um software chamado
eXcursion, no DEC, empresa que trabalhava, para interagir com o Patchworks, um software de
compartilhamento de arquivos. O Patchworks era um software proprietrio, que utilizava um
protocolo obscuro, sobre o qual no existiam muitas informaes disponveis.
Como todo bom hacker Andrew_tridgell decidiu estudar o protocolo e assim desenvolver um
servidor que pudesse rodar em seu PC. Ele desenvolveu ento um sniffer chamado clockspy que
era capaz de examinar o trfego da rede e fez engenharia reversa no protocolo SMB e o
implementou no Unix. Isso fez com que no servidor Unix aparecesse como um servidor de arquivos
Windows em seu PC com DOS. Com isso, ele foi rapidamente capaz de implementar o suporte s
principais chamadas e a desenvolver um programa servidor que era capaz de conversar com os
clientes rodando o Patchworks. O objetivo desta primeira verso era apenas resolver um problema
domstico: interligar um computador rodando o MS-DOS ao servidor rodando o Solaris.
O projeto comeou a se tornar popular a partir da verso 1.6.09, que foi a primeira a trazer suporte
ao controle de acesso com base nos logins de usurio (assim como o Windows NT), enquanto as
verses anteriores suportavam apenas o controle de acesso com base no compartilhamento (assim
como no Windows 3.11 e 95), onde a nica opo de segurana era usar uma senha de acesso para
os compartilhamentos. Para a poca, foi um avano extraordinrio visto que tudo o que o samba
oferecia, supria os servios oferecidos pela Microsoft.
No entanto, em 1999 a Microsoft lanou o Active Directory que implementado pela primeira vez
no Microsoft Windows 2000 Server Edition e com melhorias significativas no Microsoft Windows
Server 2003 e 2003 R2 e mais tarde no Windows Server 2008 e 2008 R2.
Com isto, surgiu o desafio da comunidade que desenvolvia o Samba na poca (e que
desenvolve at hoje), a criar uma implementao de servio de diretrio usando um
protocolo compatvel com o LDA que armazenasse informaes sobre objetos na rede e
ao mesmo tempo disponibilizasse essas informaes a usurios e administradores da
mesma rede.

O problema que no havia interesse por parte da Microsoft em compartilhar o RFC (Request for
Comments), isto , o documento que descreve os padres de cada protocolo de Internet antes de
serem considerados de fato um padro como fora feito com o protocolo LDAP por exemplo. Com
isto, a comunidade que desenvolve o Samba no fazia ideia de como o AD funcionava. Basicamente,
teriam que pesquisar anos a fio e colocar mais sniffers em rede, fazer engenharia reversa e mais
uma vez demorar anos e anos em desenvolvimento para criar uma soluo alternativa ao AD.
Usando destes recursos ento a comunidade comea a escrever uma nova verso ps a 3.6 do
Samba em 2011. A verso 3.6 j trabalhava com o protocolo LDAP usando o OpenLDAP e o
Kerberos em separado para alimentar as funcionalidades do Samba para que pudessem obter
funcionalidades prximas ao AD.
Depois de anos de desenvolvimento, a o que seria supostamente a verso 3.7 do Samba no chega
nem a ser lanado e descontinuado visto que em 2012, momento em que o Samba ainda estava
em desenvolvimento, a Microsoft libera o RFC 1823 do LDAP, e o RFC 2307,3062,4533 e a
comunidade desiste do desenvolvimento da nova verso do Samba e resolvem reescreve-lo do
zero.
Nasce o Samba 4.0. O Samba 4 compreende um servidor de diretrio LDAP, um servidor de
autenticao Kerberos, um servidor DNS dinmico e implementaes de todas as chamadas de
procedimento remoto necessrios para o Active Directory. Ele fornece tudo que necessrio para
servir como um Active Directory Domain Controler compatvel com todas as verses de clientes
Microsoft Windows atualmente suportados pela Microsoft, incluindo o Windows 8. O Samba agora
permite implementar mecanismos de compartilhamento de arquivos e impressoras, sendo assim
possvel o acesso a recursos do Windows a partir do GNU/Linux.
Possibilidades com Samba4:
Criar um AD Completo
Criar um controlador de domnio Principal
Criar um Controlador de domnio somente leitura (RODC)
Criar um Controlador de domnio Adicional
Pode ser administrado usando interface Grfica do prprio Windows , como Usurios e
computadores do Active Directory.
Posso Migrar de forma fcil de AD Windows para um AD Linux e vice versa.
possvel trabalhar com perfil mvel
Trabalhar com Pasta Base
Lixeira de Servidor de Arquivos (Tipo copia de Sombra)
Auditoria de Acesso
Trabalhar com permisses como a do Windows
Trabalhar com GPO
Fazer replicao de Servidores (TIPO DFS)
Trabalhar com dados em camadas
Triagem de Arquivos (Proibir gravao de arquivos pela extenso)
No precisa de CALs de acesso para as estaes
Posso fazer o SAMBA 4 trabalhar como controlador de domnio adicional do Windows server e
vice versa.
J vem com DNS , kerberos, LDAP integrado.
Posso fazer a integrao do SAMBA 4 com o proxy Squid, pfSense e etc
Adicionar usurios e configuraes via linha de comando de maneira muito mais interativa e
rpida.

A origem do nome Samba


O nome Samba surgiu a partir de uma simples busca dentro do dicionrio Ispell por
palavras que possussem as letras S, M e B, de Server Message Blocks, posicionadas
nessa ordem. A busca retornou apenas as palavras salmonberry, samba, sawtimber
e scramble, de forma que a escolha do nome acabou sendo bvia.

O comando que foi usado para consultar o dicionrio Ispell no sistema:

grep -i '^s.*m.*b' /usr/share/dict/words

Histrico de Verses
A primeira verso a usar o nome Samba, foi a 1.6.05, que foi a sucessora imediata do smbserver
1.6.4. O projeto anterior Criar um AD Completo
Criar um controlador de domnio Principal
Criar um Controlador de domnio somente leitura (RODC)
Criar um Controlador de domnio Adicional
Pode ser administrado usando interface Grfica do prprio Windows , como Usurios e
computadores do Active Directory.
Posso Migrar de forma fcil de AD Windows para um AD Linux e vice versa.
possvel trabalhar com perfil mvel
Trabalhar com Pasta Base
Lixeira de Servidor de Arquivos (Tipo copia de Sombra)
Auditoria de Acesso
Trabalhar com permisses como a do Windows

Trabalhar com GPO


Fazer replicao de Servidores (TIPO DFS)
Trabalhar com dados em camadas
Triagem de Arquivos (Proibir gravao de arquivos pela extenso)
No precisa de CALs de acesso para as estaes
Posso fazer o SAMBA 4 trabalhar como controlador de domnio adicional do Windows server e
vice versa.
J vem com DNS , kerberos, LDAP integrado.
Posso fazer a integrao do SAMBA 4 com o proxy Squid, pfSense e etc
Adicionar usurios e configuraes via linha de comando de maneira muito mais interativa e
rpida.
Histrico de Verses
A primeira verso a usar o nome Samba, foi a 1.6.05, que foi a sucessora imediata do smbserver
1.6.4. O projeto anteriormente fora apresentado por Andrew Tridgell com o nome de nbserver
0.5 que foi o incio do projeto que veio a tornar-se Samba mais tarde. Ao todo se considerar-mos os
patches, o Samba contm mais de 50 verses at chegar a verso atual. Sem os patches e\ou
verses no estilo CVS, o Samba tem exatamente 4 verses desde a 1.x.x at a recente 4.x.x que
podem ser vistos no histrico de verses do samba.
O importante aqui destacar as mudanas mais significativas entre as verses at chegar no
Samba4. Por exemplo:
1.6.09 Foi a primeira verso a apoiar a segurana a nivel de usurio (o que fez do Samba um
concorrente muito mais srio para o uso corporativo na poca).
1.7 Suportava a desconfigurao de nomes de arquivos para clientes mais antigos, bem como
tambm foi a primeira verso a ter um FAQ.
1.8 Esta verso foi a primeira a adicionar suporte primitivo para lnguas estrangeiras.
1.9 Suporte de navegao mais aprimorado.
1.9.16 Foi quando foi adotado o CVS o que permitiu que o Samba fosse desenvolvido mais
rapidamente.
2.0 O Samba se tornou ainda mais popular e acessvel aos usurios finais. Neste mesmo ano 1999,
fora lanado o primeiro livro sobre o Samba que hoje faz parte da documentao oficial do
mesmo.
2.2 Esta se torna a primeira verso estvel do Samba. Nesta verso, j possvel criar um domnio
primrio para NT4, suporta Windows 2000 e melhorada a parte de infra-Estrutura para impresso
(graas ao apoio da HP) e comunidade.
3.0 O principal diferencial da Samba 3.0 que ele inclui suporte para autenticao Kerberos 5 e
LDAP, que so obrigados a agir como clientes em um domnio do Active Directory. Outra
caracterstica que apareceu no Samba 3.0 o suporte a Unicode, o que simplifica muito apoio s
lnguas internacionais.
A diferena que os servios LDAP, Kerberos e outros, no esto integrados ao Samba
nesta verso como est na 4.Segundo Bartlett (2005, p. 57), o SAMBA 3.0 possua a
capacidade de entrar como usurio em uma rede operando com Active Directory. Esta
funcionalidade foi o incio dos trabalhos com Active Directory, que vieram a tona de
forma mais convincente no SAMBA 4.

4.0 Esta verso introduz o aguardado suporte para a tecnologia Microsoft Active Directory atravs
da implementao de uma combinao de um servidor de diretrio LDAP, um servidor de
autenticao Heimdal Kerberos, um servio DNS dinmico (atravs do seu prprio servidor DNS ou
plugin BIND) e todo o procedimento de chamadas remotas necessrias para cumprir a funo de
um controlador de domnio do Active Directory (Active Directory Domain Controller) de todas as
verses suportadas do Windows, incluindo o Windows 8.
O Samba 4 fornece polticas de grupo (Group Policies Object), perfis mveis (Roaming
Profiles) e outros recursos para administrar sistemas em um domnio do Windows, bem
como integrao com servidores Exchange e alternativas compatveis em cdigo aberto.
O suporte do Samba ao Active Directory completamente transparente para os clientes,
o que significa que um controlador de domnio baseado em Samba pode ser integrado a
domnios do Active Directory existentes.

Scripts de atualizao so fornecidos pelos desenvolvedores do Samba para ajudar com


uma migrao suave de um recurso de controlador de domnio Windows NT no Samba
3.x.

Os recursos de compatibilidade do Active Directory no Samba 4 foram criados com a


ajuda da documentao oficial e testes de interoperabilidade da Microsoft. Estamos
satisfeitos que os laboratrios de documentao e de interoperabilidade fornecidos pela
Microsoft tenham sido fundamentais no desenvolvimento do Samba 4.0 Active
Directory. A Microsoft est empenhada em apoiar a interoperabilidade entre as
plataformas, disse Thomas Pfenning, diretor de desenvolvimento do Windows Server.

Conceitos iniciais
Das muitas tecnologias de redes, uma das mais conhecidas para redes de computadores,
especialmente aquelas que usam de forma homognea o sistema operacional Windows, o Active
Directory. Por questes de praticidade e segurana, muitas redes de computadores que rodam o
Windows, so configuradas com AD, mas isso originalmente implicava na utilizao nica e
exclusiva de sistemas operacionais em toda a rede envolvida ou pelo menos no servidor cujas
licenas sempre foram muito mais onerosas do que as verses de Windows para estaes de
trabalho. O SAMBA sempre buscou a interoperabilidade na comunicao entre sistemas
heterogneos.
Segundo a Microsoft, o Active Directory (AD) um servio de diretrio desenvolvido pela empresa
para o domnio das redes Windows e est includo na maioria dos sistemas operacionais Windows
Server como um conjunto de processos e servios. Esta tecnologia permite aos usurios de uma
rede de computadores trabalharem usando entradas personalizadas de usurio e senha, no
importando se o usurio decidir usar outro computador, suas configuraes e arquivos pessoais
podero ser acessados, desde que tais mquinas estejam dentro de um mesmo domnio controlado
por um servidor.
AD um controlador de domnio que autentica e autoriza todos os usurios e computadores em
uma rede de tipo domnio do Windows, atribui e aplica as polticas de segurana para todos os
computadores autenticados, como instalao e atualizaes de software. O AD usado em
empresas com redes Windows, nas quais os administradores de redes escolheram utilizar este
recurso como forma de centralizar a administrao dos recursos, bem como da segurana.
Como facilidade, ele armazena centralmente os dados de usurios e computadores, permitindo que
os usurios tenham apenas uma senha para acessar todos os recursos disponveis na rede. O
diretrio tambm pode ser utilizado para compartilhamento de arquivos, impressoras,
gerenciamento de atualizaes de estaes de trabalho atravs do WSUS (Windows Server
Update Services), tudo em um console simples e gerencivel.
Quando um usurio faz logon em um computador que faz parte de um domnio de rede, o AD
verifica a senha apresentada e determina se o usurio um administrador de sistema ou um
utilizador normal. Uma instncia do AD consiste em um banco de dados e o correspondente cdigo
executvel responsvel pelo atendimento de pedidos e a manuteno do banco de dados. A parte
executvel chamada de Directory System Agent (DSA), que uma coleo de servios do
Windows e processos que so executados no Windows 2000 e verses posteriores.
Os objetos no bancos de dados do AD podem ser acessados atravs do protocolo LDAP, o ADSI
(interface dos COMs (Component Object Model) ) e dos servios da APIs de mensagens e o
Gerenciador de Contas de Segurana.
No Active Directory so encontrados objetos, florestas, arvores, domnios, partioes, esquemas e
unidades organizacionais (similares a pastas). Uma estrutura de AD um arranjo de informaes
sobre objetos. Os objetos se dividem em duas categorias principais:
Recursos: Hardware em uma rede ex.: Impressoras
Entidades de segurana: Entidades puramente lgicas ex.: Contas de usurio ou grupos.
Para cada entidade de segurana so atribudos security identifiers (SIDs) nicos. Cada objeto
representa uma nica entidade: um usurio, um computador, uma impressora ou um grupo e seus
atributos, e certos objetos podem conter outros objetos.
Dentro de uma implantao, os objetos so agrupados em domnios. Os objetos para um nico
domnio so armazenados em uma nica base de dados (que podem ser replicados). Os domnios
so identificados pelo seu o namespace (nome no DNS). Um domnio definido como um grupo
lgico de objetos de rede (usurios, dispositivos) que compartilham o mesmo banco de dados AD.
Uma rvore uma coleo de um ou mais domnios, e rvores de domnio em um namespace
contnuo, vinculados em uma hierarquia de confiana transitiva. Uma floresta uma coleo de
rvores que compartilham um catlogo global comum, esquemas de diretrio, estruturas lgicas e
a configurao do diretrio. A floresta representa o limite de segurana dentro do qual os usurios,
computadores, grupos e outros objetos so acessveis.
O banco de dados do AD est organizado em parties, cada um armazenando tipos de objetos
especficos e seguindo um padro de replicao. A partio schema contm a definio de classes
de objetos e atributos dentro da Floresta. A partio Configuration contm informaes sobre a
estrutura fsica e de configurao da floresta (como a topologia fsica). Ambos replicam para todos
os domnios da floresta. A partio do domnio detm todos os objetos criados nesse domnio e
replica somente dentro de seu prprio domnio.
Os objetos mantidos dentro de um domnio podem ser agrupados em Organizational Units (OUs).
OUs o nvel recomendado de a aplicao de polticas de grupo, que so objetos do AD chamados
formalmente Group Policy Objects (GPOs), embora as polticas tambm podem ser aplicadas a
domnios ou sites. A UO o nvel em que os poderes administrativos so comumente delegados,
mas a delegao pode ser executada com os objetos individuais ou com os atributos tambm.

No possvel, criar contas de usurios com um nome de usurio idntico em OUs


separadas. Isto assim porque o atributo de objeto de usurio (sAMAccountName), deve
ser exclusivo dentro do domnio. Dois usurios em diferentes OUs podem ter o mesmo
Common Name (o nome sob o qual eles so armazenados no prprio diretrio).

A razo para este problema de nomes duplicados atravs de diretrios hierrquicos,


que a Microsoft baseia-se nos princpios do NetBIOS, que um mtodo de
gerenciamento de objetos de redes de arquivos simples, que vem desde o Windows NT
3.1 e MS-DOS LAN Manager. Permitir a duplicao de nomes de objetos no diretrio, ou
remover completamente o uso de nomes de NetBIOS, impediria a compatibilidade com
softwares e equipamentos legados.

O Volume de Sistema (SYSVOL) que um diretrio compartilhado que armazena a cpia do


servidor de arquivos de domnio pblico, que deve ser compartilhado para acesso e replicao em
domnios comuns. Ela contm:
O Logon de rede compartilhado. Hospedam scripts de logon e objetos de diretiva dos computadores clientes.
Scripts de logon de usurio, para os domnios em que o administrador usa as opes Usurios e
Computadores do Active Directory.
Diretivas de grupo do Windows.
Os arquivos de transferncias, das pastas e arquivos que devem estar disponveis e sincronizados entre os
controladores dos domnios de servio de replicao (FRS).
Junes de sistema de arquivo. Segundo a Microsoft, o recomendvel instalar esses 3 em locais distintos,
preferencialmente em HDs separados, para facilitar a recuperao do sistema em caso de falha de hardware. Se
a floresta est no nvel de funcionalidade do Windows Server 2008 ou Windows Server 2008 R2, o sistema de
replicao de SYSVOL deixa de ser o NT File Replication.
Service (NTFRS) e passa a ser o Distributed File System Replication (DFSR), o que termina criando uma
dependncia de uma verso especfica de sistema operacional Windows.

Depois de 10 anos de trabalho e 6 anos da liberao da ltima verso principal, os desenvolvedores


do Samba anunciaram o lanamento do Samba 4.0, a verso mais recente da implementao em
software livre do protocolo Server Message Block (SMB). Outras caractersticas do Samba 4
incluem a primeira implementao em software livre da verso 2.1 do protocolo SMB de
compartilhamento de arquivos da Microsoft e uma implementao inicial do SMB3 que ser
desenvolvido em verses futuras da ramificao do Samba 4.
Por padro, o servidor smbd do Samba 3 utilizado para todos os servio de arquivos. Para casos
de uso como um controlador de domnio do Active Directory, o servidor de arquivos NTVFS
fornecido da forma como foi utilizado nos primeiros betas do Samba 4 e mais recomendvel para
esta tarefa. A integrao segura e incorporada ao NTP fornece timestamps mais precisos para
clientes Windows.

Compartilhamento de arquivos
Uma das caractersticas mais poderosas do Samba a sua capacidade de compartilhar arquivos e
pastas entre o servidor e o cliente. De forma simplificada, para compartilharmos uma pasta e\ou
arquivo no Samba4, basta criarmos alguns parmetros simples no smb.conf e\ou usar algum client
grfico, ambiente facilitador para tal. No entanto, como este artigo focado em administradores,
logo, faremos tudo por linha de comando:
# Por exemplo, crie uma pasta
mkdir ~/pasta

# Abra seu smb.conf


vim /etc/samba/smb.conf

# Crie as seguintes linhas:


[PASTA]
comment = Pasta teste
path = ~/pasta
read only = No

# Por fim, reinicie as configuraes do samba


smbcontrol all reload-config

Neste momento, j podemos acessar o diretrio usando o Microsoft Windows em nosso domnio
(por exemplo, como administrador) e configurar todas as permisses que quisermos. Alm disso,
usurios e grupos podem diretamente acessar o compartilhamento criado. Como Samba 4
compatvel com o Active Directory, no precisa usar qualquer modelo antigo para restringir o
acesso do usurio no arquivo smb.conf. Mais a frente nesta documentao, veremos
detalhadamente como feito o compartilhamento entre diretrios, arquivos, impressoras, com
permisses e muito mais.

Protocolos SMB e CIFS


O protocolo SMB foi desenvolvido inicialmente por Barry Feigenbaum na IBM, na dcada de 80.
Exigia, nessa poca, uma camada de API (Application Programming Interface), denominada
Network Basic Input/Output System isto , o (NetBIOS). O NetBIOS fornecia servios tais como
resoluo de nome e navegao de rede que posteriormente foi implementado, ou adotado, pela
Microsoft em funo da expanso de seus produtos na dcada de 90 que era focado em rede de
computadores.
Na evoluo do desenvolvimento do SMB, pela Microsoft, criou-se uma verso chamada
CIFS (Common Internet File System) para padronizar com a Internet Engineering Task
Force IETF recebendo o nome final de SMB/CIFS (tecnicamente um dialeto do SMB)
em 1996.

O Windows for WorkGroups foi o primeiro sistema da Microsoft a adotar o SMB/CIFS. Como o
protocolo predominante foi o TCP/IP e para a resoluo de nomes a Microsoft teve que adotar o
DNS (Domain Name System) e com que SMB tivesse que ser executado diretamente sobre o
protocolo TCP/IP na modalidade denominada hosting direto (utiliza-se TCP e UDP na porta 445).
Portanto, em redes Windows, o SMB/CIFS se transformou em um padro para a manipulao de
arquivos entre mquinas.
O SMB, que significa Server Message Block, um protocolo para compartilhamento de arquivos,
impressoras, portas seriais e abstraes de comunicao. O SMB um protocolo cliente-servidor. O
diagrama a baixo, ilustra a maneira pela qual funciona SMB. Os servidores disponibilizam sistemas
de arquivos e outros recursos (impressoras, processadores de mensagens, pipes) disponveis para
os clientes da rede. Os computadores clientes podem ter seus prprios discos rgidos, mas eles
tambm querem o acesso aos sistemas de arquivos compartilhados e impressoras nos servidores.
Basicamente o cliente se conecta ao servidor que utiliza o protocolo TCP/IP (na verdade, se conecta
ao NetBIOS sobre o TCP/IP, conforme especificado no RFC1001 e RFC1002), NetBEUI ou IPX/SPX.
Depois de terem estabelecido uma conexo, o cliente pode, em seguida, enviar comandos (SMBs)
para o servidor o que lhe permite abrir arquivos, ler e escrever. possvel fazer todo o tipo de coisa
dentro de um servidor de arquivos. No entanto, no caso do SMB, estas coisas so feitas atravs da
rede.
O protocolo SMB embora tenha outras funes associadas a ele, primordialmente tem como
funcionalidade o compartilhamento de arquivos. Mas possvel tambm o compartilhamento de
impressoras e definir nveis de segurana e autenticao. Por ser muito usado nos sistemas
operacionais da Microsoft a verso do SMB, denominado SMB/CIFS, um protocolo muito comum
em diversos tipos de mquinas e sistemas para o compartilhamento de arquivos.
O SMB pela perspectiva do Modelo OSI est na camada de aplicao e utiliza nomes de
at 15 caracteres para definir endereos de mquina em uma rede. A Microsoft chegou
ainda a desenvolver o SMB2 juntamente com o lanamento do Windows Vista.

Andrew Tridgell utilizando da engenharia reversa em cima do protocolo SMB implementou no


sistema operacional Unix e fazendo com que o servidor Unix aparecesse como sendo um servidor
de arquivos Windows em seu computador com DOS. O Samba foi viabilizado por meio do protocolo
NBT, de 1987, que emula redes locais NetBIOS sobre redes TCP/IP. O NBNS (mais conhecido
tecnicamente por WINS - Windows Internet Name Server, ou ainda NBT) cria praticamente uma lista
cruzada de endereos IP e nomes NetBios facilitando dessa forma a comunicao entre mquinas e
sistemas distintos.

Estrutura do Active Directory


Um servio de diretrio pode se explicado com vrias ilustraes, mas a ilustrao que, em minha
opinio, mais demonstra o verdadeiro sentido de um servio de diretrio a figura de uma lista
telefnica ou uma agenda pessoal. Em nossa agenda podemos organizar, dias, semanas, meses e
at anos, passando por pessoas, nomes, sobrenomes, datas de aniversrio, dados importantes
dentre outros.
O servio de diretrio tem exatamente o mesmo sentido, o sentido de organizar e principalmente
ter um local centralizado para a busca de informaes necessrias no dia a dia, para nossos
trabalhos.
Quando criamos um novo usurio, estamos utilizando o servio de diretrio, nesta base de dados
(agenda), estamos guardando, nomes, sobrenomes, endereos, logins, senhas, grupos, ao qual o
usurio pertence dentre outras tantas opes que podemos cadastrar, tudo isto ficar disponvel
dentro de uma base de dados, esta base de dados poder ser utilizada pelos nossos servidores para
vrios trabalhos. Vamos citar trs solues de servio de diretrio:

Open Ldap para Sistemas Open Source.


EDirectory para Sistemas Novell.
Active Directory para Sistemas Microsoft e com suporte para todos acima citados.

No mercado de hoje nossos negcios precisam ter informaes rpidas, de fcil atualizao, alta
disponibilidade e principalmente muita segurana e o Active Directory pode nos oferecer todos
estes atributos e muito mais
O Active Directory assumiu o mercado de servios de diretrio pelo seu desempenho, segurana e
principalmente disponibilidade, o Active Directory esta no mercado desde o lanamento do
Windows 2000 Server, aps o seu nascimento assumiu a liderana dos servios de diretrio,
utilizando como base o LDAP e a comunicao atravs de replicao lanou vrios atributos e
principalmente ferramentas para facilitar o gerenciamento de informaes nas empresas.
Hoje quando criamos um usurio para logar no domnio de nossa empresa, estamos utilizando um
servio de diretrio e por consequncia usando o Active Directory. Abaixo temos uma figura para
demonstrar todos os recursos que o Active Directory pode utilizar como servio de diretrio de sua
empresa:
A cima, comparamos o AD com uma agenda, o AD fisicamente tambm tem um banco de dados,
este banco conhecido com NTDS.dit e esta localizado na pasta %SystemRoot%\NTDS\ntds.dit em
uma instalao default do AD. Este diretrio chamado de NTDS apenas existir nos servidores que
tenham a funo de Domain Controllers (DCs). Neste diretrio existiro os arquivos relacionados
abaixo. Durante o processo de instalao do Active Directory da Microsoft, so criados cinco
arquivos:
Ntds.dit - Arquivo de banco de dados do AD
Edb.log - Arquivo onde so armazenados todas as informaes de log das transaes feitas no
AD.
Edb.chk - Arquivo de checkpoint controla transaes no arquivo Edb.log j foram comitadas no
arquivo Ntds.dit.
Res1.log - Arquivo de reserva assegura que alteraes sejam gravadas na base(Ntds.dit) no
caso de falta de espao em disco.
Res2.log - Arquivo de reserva assegura que alteraes sejam gravadas na base(Ntds.dit) no
caso de falta de espao em disco.
Bem, agora sabemos que a estrutura lgica do AD gravada em uma base de dados fsica chamada
de Ntds.dit, porm Domain Controller Active Directory? Claro que no, no desenho abaixo
demonstramos claramente a diferena entre AD (estrutura lgica do AD) e DC (Servidor que
contm uma cpia do NTDS.dit do AD). No desenho abaixo imaginemos uma construo, estamos
construindo um grande salo de festas. Imaginem que nosso teto (retngulo azul) nosso Active
Directory, porm precisamos apoiar este teto em pilares (cilindros vermelhos), caso contrrio nosso
teto ir desabar, certo?
isto mesmo, o Active Directory a estrutura lgica (teto), e os DCs so servidores fisicos
(pilares), por isto a necessidade de termos muitos DCs espalhados. Assim nosso AD mesmo na
falha de um DC (pilar) ou vrios DCs ainda conseguir responder as solicitaes e pedidos de nossa
infraestrutura.
Isto s possvel porque cada servidor quando recebe a funo de Domain Controller, herda a
criao do diretrio %SystemRoot%\NTDS\ e toda a estrutura comentada acima. Todos os dados
criados originalmente so replicados para o novo DC criado. Assim em um AD (domnio) com trs
DCs como na figura abaixo, todos os Dcs esto atualizados com todos os dados igualmente, isto
recebe o nome de replicao do Active Directory.
O Servio de Diretrio do AD divido em duas estruturas a estrutura lgica e a estrutura fsica, o
conhecimento pleno sobre a estrutura do AD muito importante, principalmente quando maior for
sua estrutura. Nestas explicaes informaremos algumas ferramentas que podem auxiliar na
verificao deste processo, vale lembrar que estamos focando as explicaes no Active Directory
do Windows Server 2008 R2, porm estas explicaes podero ser utilizadas em qualquer uma das
verses de Active Directory, nos prximos artigos falaremos das evolues para as futuras verses.
Quando falamos de estrutura lgica do Active Directory, muitos termos so falados, a estrutura
lgica do AD consiste em Objetos, Unidades Organizacionais, Domnio, rvores de Domnio e
Floresta. Utilizamos a estrutura lgica do AD para podermos gerenciar os objetos dentro da
organizao. J os objetos, so os componentes mais bsicos da estrutura lgica e representam,
usurios, computadores e impressoras.
No caso do OU (Unidades Organizacionais), um objeto de container, utilizado para organizar
outros objetos. A organizao pode ser feita de vrias formas. Geogrfica Onde as OUs
representam Estadas ou Cidades de sua estrutura fsica Exemplo: OU SP - OU RJ Setorial Onde as
OUs representam setores da estrutura fsica da empresa, por unidade de negcio. Exemplo: OU
Administrativo OU Produo Departamental Onde as OUs representam setores da estrutura
fsica da empresa por departamento. Exemplo: OU RH OU DP OU Caldeira Hbrido Modelo
onde podemos interagir todos os modelos acima, na Figura abaixo temos um modelo disto.
O domnio a estrutura mais importante do Active Directory e tem 2 funes principais.
Fecham um limite administrativo para objetos. Quem esta fora no entra, quem esta dentro no sai, claro que
esta regra pode sofrer alterao media/sambante permisses de entrada e sada, como relaes de confiana.
Gerenciam a segurana de contas e recursos dentro do Active Directory
Vale lembrar que um domnio do Active Directory compartilham:
Mesmo banco de dados Ntds.dit com cada Domain Controller dentro deste domnio.
Diretivas de segurana.
Relaes de Confiana com outros domnios.

Quando precisamos criar um segundo domnio, na maioria das vezes por necessidades no processo
de segurana temos o que chamamos de domnios filhos. Quando temos um domnio pai com seus
domnios filhos, chamamos de rvore de domnio, pois dividem o mesmo sufixo DNS, porm em
distribuio hierrquica. Abaixo colocamos um exemplo para ilustrar nossa explicao.
Criamos o domnio livemotion.local (Figura esquerda abaixo), para podermos configurar diretivas
de segurana, em um dado momento, precisamos criar um domnio novo, que tenha acesso aos
recursos do domnio livemotion.local, porm tenha suas prprias necessidades de segurana
(Figura direita abaixo).
Conforme as figuras acima, podemos ver que quando temos um domnio filho,
imedia/sambatamente estamos vinculados a um domnio pai, e esta diviso hierrquica de nome
chamamos de rvore de Domnios.O primeiro domnio de uma Floresta, chamamos de Root
Domain, a Floresta receber o nome deste domnio, a floresta pode ser feita de um nico domnio
com tambm estar dividida com vrias rvores dentro da mesma floresta.
Quando falamos de estrutura fsica do Active Directory, alguns termos so utilizados, a estrutura
fsica do AD consiste em Domain Controllers e Sites. A estrutura fsica do AD totalmente
independente da estrutura lgica do AD. A estrutura fsica responsvel por otimizar o trfego de
rede e manter segurana em locais fsicos distintos. Um Domain Controller ou DC tem a funo de
executar o Active Directory e tambm armazenar a base do Active Directory bem como Replicar
esta base alteraes com outros DCs.
Quando falamos de rvores de Domnio ou at mesmo Floresta, vale lembrar que um DC pode
apenas suportar um nico domnio. Para criar uma disponibilidade do Active Directory podemos ter
mais de um DC, sendo assim num exemplo de 2 Dcs temos a base do Active Directory sendo
replicada de forma perfeita entre os dois Dcs. A base do Active Directory o NTDS.dit divido em
parties, conforme a figura demonstrada abaixo:
Estas parties formam o arquivo NTDS.dit, este replicado entre cada um dos DCs de seu
domnio, consequentemente o arquivo replicado para cada DC, tendo todos os Dcs sincronizados
logo teremos um Active Directory saudvel e que pode suprir a falha de um DC, sem afetar o
servio de diretrio do domnio.

Protocolos do Active Directory


LDAP O protocolo LDAP um protocolo de comunicao desenvolvido para uso em redes TCP/IP.
O protocolo LDAP define a forma como um cliente de diretrio pode acessar um servidor de
diretrio e a forma como o cliente pode executar as operaes de diretrio e compartilhar dados
de diretrio. Os padres LDAP so estabelecidos por grupos de trabalho da equipe Internet
Engineering Task Force (IETF). O Active Directory implementa as especificaes de rascunho de
atributos LDAP e os padres IETF para o LDAP verses 2 e 3.
Como est implcito em seu nome, o LDAP foi desenvolvido como um mtodo eficaz para o acesso a servios
de diretrio sem a complexidade de outros protocolos de servios de diretrio. Como o LDAP define as
operaes que podem ser executadas para consultar e modificar informaes em um diretrio, e a forma como
as informaes em um diretrio podem ser acessadas com segurana, voc pode us-lo para localizar ou
enumerar objetos de diretrio e para consultar ou administrar o Active Directory.
O projeto OpenLDAP foi iniciado em 1998 por Kurt Zeilenga. O projeto comeou
como um fork do projeto LDAP a partir da Universidade de Michigan.

O clapd um simples daemon LDAP Connectionless, escrito como parte do esforo


de pesquisa da IBM e concebido para responder s solicitaes bsicas que um
cliente Windows faz. O clapd foi reescrito no Samba4.

DNS O Domain Name System ( DNS ) um sistema de gerenciamento de nomes hierrquico e


distribudo para computadores, servios ou qualquer recurso conectado Internet ou em uma rede
privada. Ele baseia-se em nomes hierrquicos e permite a inscrio de vrios dados digitados alm
do nome do host e seu IP. Em virtude do banco de dados de DNS ser distribudo, seu tamanho
ilimitado e o desempenho no degrada tanto quando se adiciona mais servidores nele. Este tipo de
servidor usa como porta padro a 53. A implementao do DNS-Berkeley, foi desenvolvido
originalmente para o sistema operacional BSD UNIX 4.3.
Um domnio do Active Directory fortemente baseado em um domnio DNS, particularmente devido forte
integrao entre o Kerberos e DNS, e o fato de que este permite uma mudana para a hierarquia de nomes.
O servidor DNS traduz nomes para os endereos IP e endereos IP para nomes
respectivos, e permitindo a localizao de hosts em um domnio determinado. Num
sistema livre o servio implementado pelo software BIND. Esse servio
geralmente se encontra localizado no servidor DNS primrio. O servidor DNS
secundrio uma espcie de cpia de segurana do servidor DNS primrio. Assim,
ele se torna parte necessria para quem que usar a internet de uma forma mais
fcil e evita que hackers roubem seus dados pessoais.
SNTP O NTP um protocolo para sincronizao dos relgios dos computadores baseado no UDP
para sincronizao do relgio de um conjunto de computadores em redes de dados com latncia
varivel. O NTP permite manter o relgio de um computador com a hora sempre certa e com
grande exatido. Originalmente idealizado por David L. Mills da Universidade do Delaware e ainda
hoje mantido por si e por uma equipa de voluntrios, o NTP foi utilizado pela primeira vez antes de
1985, sendo ainda hoje muito popular e um dos mais antigos protocolos da internet.
Kerberos Kerberos o nome de um Protocolo de rede, que permite comunicaes individuais
seguras e identificadas, em uma rede insegura. O protocolo Kerberos previne Eavesdropping e
Replay attack, e ainda garante a integridade dos dados. Seus projetistas inicialmente o modelaram
na arquitetura cliente-servidor, e possvel a autenticao mutua entre o cliente e o servidor,
permitindo assim que ambos se autentiquem.
O Kerberos necessita que os relgios internos dos clientes estejam sincronizados com o dele. Na configurao
padro, necessrio que os relgios dos clientes no tenham uma diferena maior do que 10 minutos. Na
prtica, servidores NTP so utilizados para manter os relgios do servidor e dos clientes sincronizados.
Heimdal Kerberos uma implementao open source do protocolo Kerberos.

SMB/CIFS O SMB/CIFS (Server Message Block/Common Internet File System) um protocolo de


redes cujo o uso mais comum como foi dito anteriormente o compartilhamento de arquivos em
uma LAN. Para mais detalhes sobre este protocolo, v em Protocolos SMB e CIFS.
NetBIOS uma API que fornece servios relacionados com a camada de sesso do modelo OSI,
permitindo que os aplicativos em computadores separados se comuniquem em uma rede local, no
podendo ser confundido, portanto, como um protocolo de rede.
Sistemas operacionais mais antigos executavam o NetBIOS sobre o IEEE 802.2 e o IPX/SPX usando os
protocolos NetBIOS Frames (NBF) e NetBIOS sobre IPX/SPX (NBX), respectivamente. Em redes modernas, o
NetBIOS normalmente executado sobre TCP/IP atravs do protocolo NetBIOS sobre TCP/IP (NBT). Isso
resulta que cada computador na rede possua um endereo IP e um nome NetBIOS correspondente a um
(possivelmente diferente) nome de hospedeiro.
DCE/RPC DCE-RPC um padro estabelecido h muito tempo para o funcionamento de
chamadas de procedimento remoto (RPC), e publicado de forma gratuita pelo Open Group. O
DCE-RPC descreve no s o formato para as chamadas de funo, mas tambm um nmero de
transportes de rede.
Lista de abreviaturas e siglas:
LDAP: Lightweight Directory Access Protocol (ou Protocolo Leve de Acesso a Diretrios).
AD: Active Directory (ou Diretrio Ativo).
DC: Domain Controler.
RFC: Request for Comments (ou Pedido para Comentrios).
DFS: Distributed File System (ou Sistema de Arquivo Distribudo).
DNS: Domain Name System (ou Sistema de Nomes de Domnio).
NetBIOS: Network Basic Input/Output System (ou Sistema Bsico de Entrada/Sada de Rede).
UCL: User Account Control (ou Controle de Conta de Usurio).
PDC: Primary Domain Controller (ou Controlador Primrio de Domnio).
GPO: Group Policy Objects.
CN: Common Name.
NFS: Network File System.
NTP: Network Time Protocol.
PDC: Primary Domain Controller.
SMB: Server Message Block.
NMBD: Cuida da resoluo de nomes nos PCs em seus endereos de IP.
smbclient: Cliente SMB para GNU/Linux, permite Pcs GNU/Linux acessarem Pcs GNU/Linux e
servidores SAMBA.
testpam: Testa o arquivo de configurao SAMBA caso tenha algum erro no smb.conf.
smbclient: Listar as conexes ativas com o servidor e dar o status do servio.
smbpasswd: Permite alterar e adicionar senhas compatveis com o padro SMB.
Snap-in: Ferramentas administrativas, aplicaes modulares de outros aplicativos.
Requisitos e Preparao do Sistema Operacional
Por convenincia, irei trabalhar com Debian por tratar-se da distribuio GNU/Linux mais usada em
servidores. Quanto verso do Debian, recomendado neste caso sempre a verso Stable visto
que o ciclo de atualizao do sistema Stable diferente das verses unstable. Por exemplo, em
sistemas stable, s haver atualizao de pacotes e sistema, caso j tenham esgotado todos os
possveis problemas, bugs relacionados.
Nota: Para detalhes de compatibilidade com sua respectiva arquitetura no Debian, basta
acessar a documentao https://www.debian.org/releases/stable/installmanual.

Instalao do virtualbox

# Adicione esta linha no /etc/apt/sources.list caso no exista


deb http://httpredir.debian.org/debian/ jessie main contrib

# Atualize a lista de pacotes


sudo apt-get update

# Instale os pacotes linux-headers para rodar o virtualbox sem problemas


sudo apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') virtualbox

Caso instale a partir do Microsoft Windows, visite o site oficial do Virtualbox para efetuar o
download do binrio.
Nota: comum ter algum tipo de problema na hora de rodar o virtualbox. Preste ateno
mensagem de erro caso ocorra, e busque no google a soluo. Caso no encontre, por
favor me envie um e-mail caso necessrio. Se houver necessidade de explicar como sanar
o possvel erro, agrego a soluo a este documento.

importante lembrar tambm que voc ter que alterar a configurao de rede do
VirtualBox de NAT para modo bridge visto que precisaremos colocar um ip esttico (fixo)
para criar nosso servidor de domnio primrio com samba4.

Instalao do Debian
Voc poder tentar em verses anteriores do qual estiver melhor famialiarizado. Estarei me
baseando no Debian Jessie 8 amd64 no entanto. Para instalar o Debian com conhecimento
seguro, basta novamente acessar a documentao que explica passo-a-passo (inclusive em
portugus do Brasil) https://www.debian.org/releases/stable/amd64/. Se deseja uma abordagem
simplria dos passos de instalao, acompanhe a baixo:
Voc poder escolher entre Graphical Install e Install (em modo terminal). Pressupondo que estou a
instalar em um ambiente virtual (como o virtualbox) e para um servidor, logo, a melhor escolha
neste caso a primeira opo:
O Debian ir avanar para o instalador. As primeiras opes exigir que o usurio selecione o tipo
de teclado e localizao. O prximo passo definir nome de seu computador e permitir que o
instalador configure uma conexo de rede para acesso aos repositrios:

Ps a configurao do hostname, voc ter que definir seu domnio por exemplo,
seudominio.com.br. Em seguida, voc ir criar uma senha de usurio root. Certifique-se de no
esquecer esta senha, pois no um processo divertido tentar recuperar a senha de root caso seja
descuidado:
Aps a configurao do usurio root, ser exigido a configurao da senha de usurio. Isso deve ser
algo diferente do root para fins de segurana:

Depois que os usurios root e usurio normal foram definidos, o instalador ir tentar baixar alguns
pacotes dos repositrios e, como tal, uma conexo de rede muito til (no entanto, no
obrigatrio e caso no exista conexo, o sistema bsico ser instalado independentemente).
Agora o instalador ir pedir que voc defina o esquema de partio para ser utilizado neste
sistema. Para nosso caso, iremos usar a primeira opo. No entanto, se voc usurio avanado, j
saber o que fazer a partir deste momento. interessante que o usurio iniciante d uma lida
sobre LVM e uma estudada sobre mtodos de particionamento de disco:
A prxima etapa ir perguntar ao usurio para confirmar as alteraes de partio, escrever as
alteraes para o disco, e iniciar o processo de instalao dos arquivos da base de instalao
Debian. Se as mudanas parecem bem e o espao partio root e swap forem criados
corretamente, clique em Finish partitioning and write changes to the disk.

A prxima etapa perguntar se o usurio deseja participar do Debians anonymous statistics


gathering. No nos interessa neste momento participar disso portanto, prossiga:
O prximo passo informar o instalador para utilizar um repositrio de rede para reunir o restante
dos pacotes necessrios durante a instalao, em vez de a partir do CD/DVD. Caso voc tenha
baixado o DVD-1 do Debian, pode escolher usar ele como repositrio. No entanto, recomendo no
fazer isto e escolher usar os repositrios online como segue:

Neste ponto, o instalador lhe sugere pacotes extras para terminar a instalao do Debian.
Tratando-se de um servidor, no h a menor necessidade de embiente grfico. Portanto, basta
apenas o standard system utilities, web server, print server e SSH server:

Bem vindos ao Debian. Por fim, agora atualize o sistema:

sudo apt-get update && apt-get upgrade


Samba4 como AD
Uma dvida bastante frequente entre os administradores de sistemas, quanto instalao do
Samba com relao a forma de instalao se por cdigo-fonte (source-code), ou do repositrio
atravs de pacotes pr-compilados no formato .deb. Geralmente recomendo que procure os
formatos pr-compilados pois, as vezes pode tornar-se uma dor de cabea atualizar ou remover
programas compilados diretamente no cdigo-fonte. Mas se voc se garante tanto com um, quanto
com outro, ento irrelevante.
O que iremos instalar a partir de agora:
attr - Utilitrios para manipulao de atributos estendidos do sistemas de arquivos.
Acl - Utilitrios da lista de controle de acesso.
krb5-user - Programas bsicos para autenticar usando o Kerberos.
Ntp - Daemon e programas utilitrios do Network Time Protocol.
Samba - Servidor de login, impresso e arquivos SMB/CIFS para Unix.
Smbclient - Clientes SMB/CIFS em linha de comando para Unix.

Cdigo fonte do Samba


Tratando-se de cdigo fonte, tanto faz se para Debian, CentOs ou outra distribuio. O importante
voc saber baixar a verso mais recente e ao mesmo tempo compilar caso deseje prosseguir com
este tipo de instalao:
Instalao do Samba pelo cdigo-fonte
Caso voc deseje simplificar as coisas, sugiro que pule esta parte bem como da instalao atravs
do cdigo fonte propriamente.

Instalando o Samba
apt-get install attr acl krb5-user ntp
Deixe as respostas padro na configurao do Kerberos. Apenas atentando para a primeira
pergunta Reino por omisso do Kerberos, informe seu domnio em letras maisculas.

sudo apt-get install -y samba smbclient


A instalao do smbclient opcional, utilizaremos apenas para testar as configuraes adiante.
Voc poder usar o nano,vi ou vim. No entanto, o vim precisa ser instalado pois no vem por
padro:

apt-get install vim-gnome


# ou
apt-get install vim-athena

Por padro o Debian no vem com suporte a ACL ento refina isto na partio / atravs do
comando a baixo:

vim /etc/fstab

interessante reconfigurar o seu sistema de arquivos caso seja ext3 ou ext4 para rodar o samba
com compatibilidade com as acls, sistema de segurana contra falhas de sobrecarga entre outros.
Para isso, altere sua configurao de modo parecido com o abaixo (no copie e cole esta linha pois,
cada mquina tem uma configurao de UUID diferente). Localize a varivel errors na rea pass, e
acrescente o user_xattr, acl,barrier como a baixo:
UUID=3e0fbcf1-4eb5-4654-a5de-4775de85fc09 / ext4 user_xattr,acl,barrier=1,errors=remount-ro 0 1

O disco utilizado no apresenta parties separadas, apenas o /. Ajuste se necessrio. Os


parmetros user_xattr, acl e barrier devem ser definidos na partio onde os arquivos dos
usurios sero alocados.
Nota: As opes acl e user_xattr so necessrios, a fim de utilizar os recursos de arquivos
POSIX. Preste ateno caso tenha definido a partio em Logical Volume Management
(LVM). Pois, LVM no suporta a varivel barrier. O barrier serve para adicionar um
sistema de segurana contra falhas de energia em formataes ext3 ou ext4.

Aplicar mudanas no fstab:


mount -o remount,rw /

Nota: O parmetro -o, vem de option e o rw vem de read/write. Consulte a manpage de


cada comando para compreender do que se trata.

Agora configure o hosts:


vim /etc/hosts

#Acrecente a linha a baixo

192.168.1.100 debian.seudominio.com.br debian

Agora configure a interface de rede:


vim /etc/network/interfaces

# Configure de acordo com os dados a baixo:

auto eth0
iface eth0 inet static
# coloque o ip correspondente a sua rede local
address 192.168.1.100
netmask 255.255.255.0
# verifique seu gateway e coloque aqui
gateway 192.168.1.1
dns-nameserver 192.168.1.1
dns-search seudominio.com.br

Nota: Caso tenha dificuldade para compreender como funciona a interface de rede, d
uma lida neste material configurao da interface de rede no linux.

Reinicie a interface
service networking stop && sleep 2 && service networking start
#ou
/etc/init.d/networking restart

Configure o DNS:
vim /etc/resolv.conf

# Acrescente estas linhas


domain seudominio.com.br
search seudominio.com.br
nameserver 192.168.1.100
nameserver 192.168.1.1

O nameserver 192.168.1.100 ser utilizado pelo samba, enquanto o 192.168.1.1 o servio de DNS
da rede local, pode ser modificado para outro de sua escolha (ex: 8.8.8.8 - google). Configurar
servio de NTP (atualizao de data/hora):
vim /etc/ntp.conf

# Substitua com o seguinte contedo:

server 127.127.1.0
fudge 127.127.1.0 stratum 10
server a.ntp.br iburst prefer
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /var/lib/samba/ntp_signd/
restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict a.ntp.br mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery

Para instalar o samba, bastava apenas ter digitado apt-get install samba como mostra no incio. No
entanto, prefer deixar algumas coisas prontas antes de prosseguir-mos.
Nota: O Network Time Protocol (NTP) um protocolo de rede para sincronizao do
relgio entre sistemas e computadores alm de medir a latncia da rede basicamente.

D um reboot no sistema:
reboot

Quando retornar, por favor teste se h conexo com a internet:


ping -c 3 8.8.8.8

Se tiver conexo, est tudo em ordem. Se no, voc fez algo errado (provavelmente na
configurao do ip no /etc/network/interfaces.) Mas no se preocupe. Se isso acontecer, voc ficar
sabendo atravs deste comando aqui:
tail -n 10000 /var/log/syslog |grep networking

Nota: O parmetro -n o mesmo de lines. Isto , neste caso, 10000 corresponde s


ltimas 10000 linhas. Este valor foi chutado visto que no sei o tamanho exato do log.
Se ele for menor que 10000, ir mostrar as ltimas linhas relacionadas a networking.

Se houver erro, provalmente ser algo semelhante a isto:


Dec 18 12:12:41 debian networking[1291]: Desconfiguring network interfaces...done.

Seja qual for o erro, faz bem investigar o log. S avance se tudo estiver funcionando at aqui.

Samba como um controlador de domnio


Voc deve ter ouvido falar que sempre antes de comear a configurar um sistema apartir de um
arquivo, interessante que voc faa a cpia do mesmo para fins de segurana. Pois bem, faremos
o mesmo para com o arquivo smb.conf:
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Nota: Neste caso, poderamos ter usado o cp ao invs do mv para fazer o backup do
smb.conf. No entanto, a inteno remover o smb.conf criado a partir do apt.

Agora iremos configurar o samba como controlador de domnio:


samba-tool domain provision --use-rfc2307 --realm=SEUDOMINIO.COM.BR --domain=SEUDOMINIO
--server-role=dc --dns-backend=SAMBA_INTERNAL --adminpass='S@mb4s3rveR!'

Se der tudo certo, aparecero vrias coisas na sada. No entanto, a parte importante a se destacar
esta a baixo por exemplo:
Server Role: active directory domain controller
Hostname: debian
NetBIOS Domain: SEUDOMINIO
DNS Domain: seudominio.com.br

Nota: de suma importncia que a senha do adminpass seja segura (com


nmeros,letras e caracteres especiais). Caso contrrio, retornar um erro e no ir
promover o samba. Dei preferncia ao SAMBA_INTERNAL como sistema de configurao
do DNS. Se voc prefere usar o BIND9, d uma estudada em Configure BIND as backend
for SAMBA AD.

Uma breve explicao dos parmetros usados:


domain provision - Promover o primeiro controlador de domnio AD/DC (ou um existente).
use-rfc2307 - Ativa extenses NIS. Eles permitem uma gesto central do Unix atributos (UIDs,
escudos, GIDs, etc.) dentro do Active Directory. Recomenda-se sempre habilitar esse recurso
durante o provisionamento. No h desvantagens em no us-lo.
realm - Usado para voc setar o kerberos real name do dominio (sempre em MAISCULO).
domain -nome de domnio NT4 NetBIOS em maisculas utilizados pelo AD por razes de
compatibilidade. Comprimento nome mxima: 15 caracteres.
server-role - Define como controlador de domnio
dns-backend - Aqui voc escolhe o servidor se bind9 ou samba_internal.
adminpass - Senha do administrador do AD/DC.
Ajuste os parmetros conforme suas necessidades, especialmente o realm, domain e adminpass.
Copiar a configurao do Kerberos gerada pelo samba:
cp /var/lib/samba/private/krb5.conf /etc/

Nota: Criamos uma cpia do krb5.conf na pasta /etc/ porque a pasta padro da
configurao do Kerberos para com o Samba 4.
Inicie o samba
service samba start
# ou
/etc/init.d/samba start

Desative a poltica de atualizao de senha para administrador (opcional):

samba-tool user setexpiry administrator --noexpiry

Ajuste as configuraes do samba, conforme suas necessidades:


vim /etc/samba/smb.conf
# Acrescente

[global]
workgroup = seudominio
realm = seudominio.COM.BR
netbios name = DEBIAN
server role = active directory domain controller
dns forwarder = 192.168.1.1
idmap_ldb:use rfc2307 = yes

# logs
log file = /var/log/samba/log.%m
max log size = 50

[netlogon]
path = /var/lib/samba/sysvol/domarques.com.br/scripts
read only = No

[sysvol]
path = /var/lib/samba/sysvol
read only = No

[home]
path = /var/sambausers/
read only = no
browseable = no

Outra maneira de fazer o mesmo processo, apenas digitando testparm no terminal. Esta uma
ferramenta do samba-tool e serve para fazer anlise da sintaxe do smb.conf. Caso no exista
smb.conf, ele gera um novo e baseando o workgroup nas configuraes existentes do sistema.
Crie o diretrio dos arquivos dos usurios:
mkdir -p /var/sambausers

Para aplicar novas configuraes:

smbcontrol all reload-config

Caso no saiba como configurar seu smb.conf, consulte o site


http://www.sloop.net/smb.conf.html. Depois de tudo a cima feito, vamos testar as configuraes.
Verifique verso do samba e smbclient:
samba -V
smbclient -V
# d um reboot agora
reboot

Teste o Kerberos:
kinit administrator@seudominio.COM.BR

muito comum aps este comando aparecer o seguinte erro:


kinit cannot contact any kdc for realm

Caso ocorra tal erro, sugiro que voc investigue no /var/log/syslog:

tail -n 10000 /var/log/syslog |grep kinit

Em caso positivo, ir retornar algo semelhante a isto:


warning: Your password will expire in 41 days on Sex 29 Jan 2016 12:18:08 BRST

Teste tambm as configuraes de DNS do samba:

host -t SRV _ldap._tcp.seudominio.com.br


host -t SRV _kerberos._udp.seudominio.com.br
host -t A debian.seudominio.com.br.

Caso ocorra tudo nos conformes, ir retornar algo semelhante a isto:

_ldap._tcp.teste.com.br has SRV record 0 100 389 debpdc.teste.com.br


_kerberos._udp.teste.com.br has SRV record 0 100 88 debpdc.teste.com.br
debpdc.teste.com.br has address 192.168.1.100

Teste a conectividade com o samba:

smbclient -k //debian.seudominio.com.br/netlogon -c 'ls'

E por fim teremos algo semelhante a isto:

Domain=[TESTE] OS=[Unix] Server=[Samba 4.1.17-Debian]


. D 0 Fri Dec 18 11:16:51 2015
.. D 0 Fri Dec 18 11:21:12 2015
49788 blocks of size 524288. 44277 blocks available

Compartilhamento com o servidor de impressao


Voc poder compartilhar as impressoras j configurados com o CUPS mas, tenha em mente que o
Samba comunica com o CUPS via soquetes, portanto, voc no precisa configurar qualquer
permisso especial, alm de uma diretiva Listen para o socket CUPS. Criaremos um diretrio de
spool de impresso, e definir as permisses corretamente. Este destino onde o Samba ir
armazenar arquivos temporrios relacionados para imprimir documentos:
mkdir /usr/local/samba/var/spool
chmod 1777 /usr/local/samba/var/spool

Nota: Voc deve estar se perguntando o que significa este 1777 certo? A permisso
1777, este 1 a frente significa bitstickc. Em termos prticos, quer dizer exatamente isto
no deixe ningum excluir esta pasta ou mudar a permisso.

Configurando o /etc/samba/smb.conf para ler o diretrio de spooling adicionando o seguinte:


[printers]
comment = All Printers
path = /usr/local/samba/var/spool
browseable = Yes
read only = No
printable = Yes

Por uma questo de convenincia, os clientes do Windows podem consultar o servidor que est
compartilhando uma impressora para um driver de impresso. Para habilitar essa funcionalidade no
Samba, temos de criar uma impressora especial de compartilhamento de arquivos. Vamos ento
criar um diretrio de compartimento de impresso, e arquitetura de sub-diretrios:
mkdir -p /usr/local/samba/var/print/{COLOR,IA64,W32ALPHA,W32MIPS,W32PPC,W32X86,WIN40,x64}

E novamente configurar no smb.conf:


[print$]
comment = Point and Print Printer Drivers
path = /usr/local/samba/var/print
read only = No

Reinicie as configuraes do samba:


smbcontrol all reload-config

A partir de agora efetue login como um administrador de domnio em um computador cliente


Windows e clique em Iniciar -> Executar \samba". Na lista de aes, clique duas vezes Impressoras
e faxes e em seguida, clique em Arquivo -> Propriedades do Servidor. Na guia Drivers, clique em
Adicionar , em seguida, em Next. Em seguida escolha o driver que voc gostaria de instalar e
clique em Avanar, escolha as arquiteturas dos drivers que voc deseja instalar.
Nota: Mais a frente estarei mostrando a melhor forma de interagir com o samba no
Windows com printscreen, imagens etc Por hora, vamos focar nas configuraes.

Lixeira do Samba
O Active Directory fornece recursos muito teis para recuperao objetos excludos. Dependendo
de como voc configurou o seu domnio, possvel restaurar um conjunto de atributos e dados com
este recurso habilitado. Sempre que um objeto excludo do Active Directory, ele movido para
um container escondido, chamado Objetos Excludos (CN = Deleted Objects, DC = samdom, DC =
exemplo, DC = com). E estes objetos se mantm neste lugar por um determinado perodo (e
configurvel). Aps esse perodo, os objetos sero definitivamente excludos (mas podem ser
recuperados).
O que NO pode ser recuperado?
Se voc no tiver habilitado este recurso antes e posteriormente optar por habilitar, obviamente
que tudo o que vem antes de ativar o recurso no pode ser recuperado (porque est fora da
poltica do recurso). Ou ainda objetos renomeados tambm no podero ser recuperados.
Adicione estas linhas no /etc/samba/smb.conf
[share]
path = /data/share
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = yes
recycle:versions = yes

Isto , qualquer item deletado neste compartilhamento vai para o diretrio .recycle. Podemos
tambm implementar mais recursos para esta tarefa. Por exemplo, experimente adicionar as
seguints linhas em seu [global] no /etc/samba/smb.conf:
vfs objects = recycle
recycle:facility = LOCAL1
recycle:priority = NOTICE
recycle:maxsize = 0
recycle:directory_mode = 0774
recycle:subdir_mode = 0774
recycle:keeptree = true
recycle:touch = true
recycle:versions = true
recycle:repository = /srv/samba/Recycle/
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.exe, *.bin
recycle:exclude_dir = tmp, temp, cache
create mask = 0774
directory mask = 0774

Agora vamos explicao de cada varivel a cima:


vfs recycle - intercepta pedidos de remoo e move os arquivos afetados para um repositrio
temporrio ao invs de remov-los imedia/sambatamente. basicamente o mesmo efeito que o
delete no Windows. Ou seja, ele no remove completamente. Ao invs, direcionado lixeira.
recycle:facility = LOCAL1 e recycle:priority = NOTICE - Voce est indicando que usar um arquivo
de log para registrar a movimentao dessa lixeira, isso ser feito por meio do syslogd do sistema.
recycle:maxsize = 0 - definido em bytes o tamanho mximo de um arquivo que destinado a
lixeira, zero significa sem limites.
recycle:repository = /srv/samba/Recycle/ - Aqui definido o local, pasta onde sero
armazenados os dados da lixeira.
recycle:directory_mode = 0774, recycle:subdir_mode = 0774,recycle:keeptree =
true,recycle:touch = tryyue - Essas variveis determinam as permisses dos diretrios, se para
guardar o nome da pasta de onde o arquivo fora excludo (keeptree), se a data do arquivo
eliminado pode ser trocado pela data da excluso (touch).
recycle:exclude = .tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~.*, *.bak, *.iso e recycle:exclude_dir = tmp,
temp, cache - Determina respectivamente nome de arquivos e diretorios que devero ser
ignorados pela lixeira, isto , se algum excluir um .bak, ele ter sido excluido definitivamente.
recycle:versions = Yes - Aqui voc determina se haver controle de verso, isto , se um arquivo
for sobregravado ento a cpia antiga ser enviada para a lixeira e se novamente sobregravar o
mesmo arquivo, outra cpia ser enviada para a lixeira.

Auditando acessos
O Samba oferece tambm um recurso de gerao de log. Ele pode ser ativado adicionando as
opes abaixo na seo [global] do smb.conf:
log level = 1
log file = /var/log/samba/log.%m
max log size = 50

Nota: O log file e max log size j estava configurado nos passos a cima em Samba como
um controlador de dominio. Apenas adicionei o log level.

A opo log level indica o nvel das mensagens (de 0 a 10), sendo que o nvel 0 mostra apenas
mensagens crticas, o nvel 1 mostra alguns detalhes sobre os acessos e os demais mostram
diversos nveis de informaes de debug, teis a desenvolvedores. A opo log file indica o
arquivo onde ele ser gerado e a max log size indica o tamanho mximo, em kbytes.
A partir do Samba 3.04 foi includo um mdulo de auditoria, que permite logar os acessos e as
modificaes feitas de uma forma muito mais completa que o log tradicional. Isso feito atravs
do mdulo full_audit, que (do ponto de vista tcnico) funciona de forma similar ao mdulo
recycle usado pela lixeira.
O primeiro passo ativar o mdulo no smb.conf e em [global] como mostra a baixo:
vfs objects = full_audit

O prximo passo definir quais operaes devem ser logadas atravs da opo
full_audit:success, como em:
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
As opes que inclu no exemplo so open (ler um arquivo), opendir (ver os arquivos dentro de uma
pasta), write (alterar um arquivo), unlink (deletar um arquivo), rename (renomear um arquivo),
mkdir (criar um diretrio), rmdir (remover um diretrio), chmod (alterar as permisses de acesso de
um arquivo) e chown (mudar o dono de um arquivo). Continuando a configurao, especificamos as
informaes que desejamos que sejam includas no log, usando a opo full_audit:prefix:
full_audit:prefix = %u|%I|%S

Por padro, o mdulo loga no apenas os acessos e modificaes, mas tambm um grande volume
de mensagens de alerta e erros gerados durante a operao. A opo full_audit:failure = none
evita que estas mensagens sejam logadas, fazendo com que o log fique muito mais limpo e seja
mais fcil encontrar as opes que realmente interessam:
full_audit:failure = none

Concluindo, especificamos o nvel dos alertas, entre os suportados pelo syslog, como em
full_audit:facility = local1, e full_audit:priority = notice. Juntando tudo, temos:
vfs objects = full_audit
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facility = LOCAL1
full_audit:priority = notice

Em full_audit:prefix, adicionei %u, %I e %S que indicam o usurio (%u) que realizou a operao,
o endereo IP (%I) do usurio e o compartilhamento acesso (%S). Na diretiva full_audit:failure:
none estamos indicando que no ser registrada nenhuma operao (none) que tenha obtido como
status de execuo alguma falha.
A penltima linha full_audit:facility = LOCAL1 indica que iremos rotular as mensagens de log do
Samba (especificamente do mdulo VFS full_audit) para que sejam consideradas mensagens que
so originadas do recurso de sistema chamado local1.
Esta configurao pode ser tanto includa dentro da seo [global] (de forma que o log inclua os
acessos e as alteraes feitas em todos os compartilhamentos) quanto ser includa apenas na
configurao de um compartilhamento especfico. Com isso, o Samba vai passar a gerar os eventos
referentes aos acessos. Falta agora configurar o sysklogd (o servio responsvel pela gerao dos
logs do sistema), para logar os eventos, gerando o arquivo de log que poder ser consultado. Para
isso, abra o arquivo /etc/syslog.conf e adicione a linha abaixo:
local1.notice /var/log/samba-full_audit.log

Nota: O local1.notice corresponde aos valores informados nas opes


full_audit:facility e full_audit:priority, enquanto o /var/log/samba-full_audit.log o
arquivo de log que ser gerado.

Depois de concluda a configurao, reinicie os servios e o log passar a ser gerado


imedia/sambatamente:
/etc/init.d/samba restart
/etc/init.d/sysklogd restart

Dentro do arquivo, voc ver entradas contendo a data e hora, o nome da mquina, o usurio, o IP
da mquina, o nome do compartilhamento, a operao realizada e o nome do arquivo ou pasta
onde ela foi realizada, como em:
Dec 23 15:21:15 m1 smbd_audit: lobo|192.168.1.100|arquivos|opendir|ok|.
Dec 23 15:21:29 m1 smbd_audit: lobo|192.168.1.100|arquivos|open|ok|r|addr.txt
Dec 23 15:21:34 m1 smbd_audit: lobo|192.168.1.100|arquivos|mkdir|ok|trabalho
Dec 23 15:21:36 m1 smbd_audit: lobo|192.168.1.100|arquivos|opendir|ok|trabalho
Dec 23 15:21:43 m1 smbd_audit: lobo|192.168.1.100|arquivos|open|ok|w|trabalho/Samba.sxw
Dec 23 15:21:44 m1 smbd_audit: lobo|192.168.1.100|arquivos|open|ok|w|trabalho/foto.jpg

O log conter entradas referentes a todos os usurios e mquinas, mas fcil ver apenas as
entradas referentes a um determinado usurio, compartilhamento, endereo IP ou outro
parmetro qualquer ao listar o arquivo pelo terminal usando o grep, que permite mostrar apenas
as linhas contendo determinados trechos. Mais opes e parmetros usados para verificao de
logs atravs do vfs full audit voc poder conferir na manpage do vfs_full_audit.

Rotacionamento de logs
Para completar a configurao iremos implementar a poltica de rotacionamento de logs.
Rotacionamento de logs uma tarefa que realizada pela ferramenta logrotate, e possui grande
importncia em servidores. A maioria dos arquivos de log em sistema Unix utilizam formato plain
text e dependendo da demanda de usurios e recursos (arquivos/diretrios) acessados, bem como
o perodo em que isto est ocorrendo, estes arquivos de texto iro crescer ao ponto de ocupar
centenas a milhares de Megabytes, ao ponto de utilizar todo os espao disponvel para esta
finalidade.
O rotacionamento de logs permite que, de acordo com a poltica empregada, um arquivo possa ser
segmentado, bem como seus segmentos mais antigos serem compactados (de modo a reduzir o
espao utilizado). Dentro de uma poltica de log, alm de considerar o espao em disco disponvel,
deve-se observar o perodo em que deseja-se armazenar estes arquivos. No caso do arquivo
audit.log que estamos definindo como ponto para registrar as aes realizadas em cada
arquivo/diretrio, precisamos definir quantos dias, meses ou anos estes registros estaro
disponveis ou quantos segmentos iro existir do arquivo e que perodo (diariamente,
semanalmente, etc) estes segmentos sero criados.
No caso vamos criar um arquivo de parmetros que ir criar at 32 segmentos, e parte destes
segmentos sero compactados. J em relao ao perodo de criao destes segmentos ele ser
dirio, bem como estes arquivos sero segmentos considerando que o segmento mais recente
tenha atingido pelo menos 2 Megabytes, para que as entradas mais antigas destes arquivo sejam
movidas para outro arquivo de segmento.
Crie um arquivo audit_samba.conf em /etc/logrotate.d com o seguinte contedo:
/var/log/samba/audit.log {
dayly
rotate 32
minsize 2M
notifempty
missingok
sharedscripts
copytruncate
compress
delaycompress
postrotate
/bin/kill -HUP `cat /var/run/smbd.pid /var/run/nmbd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

Os elementos mais importantes deste arquivo so:


dayly - realiza o rotacionamento/segmentao do arquivo diariamente);
rotate 32 - ir rotacionar e manter no mximo 32 segmentos (os segmentos mais antigos sero
descartados);
minsize 2M - somente ir rotacionar que o arquivo de segmento mais recente conter no mnimo
2M, do contrrio no ser segmento no dia presente;
compress - como o prprio nome j diz, os segmentos sero compactados (por padro utilizando o
utilitrio gzip, entretanto, este comportamento pode ser alterado com o parmetro compresscmd);
delaycompress - atrasa a compresso para o prximo rotacionamento, ou seja, teremos arquivos
de segmento compactados a partir do antepenltimo segmento mais recente at o segmento mais
antigo. Entretanto, ainda falta alterar um arquivo de polticas do logrotate chamado
/etc/logrotate.d/samba.

Este arquivo contm uma poltica de rotacionamento que ser aplicada a todos os arquivos com
extenso log existentes em /var/log/samba, entretanto, como temos um arquivo de poltica j
especifico para o arquivo audit_samba.log (que ir expandir muito mais rapidamente que qualquer
outro arquivo de logs do samba), vamos adaptar o arquivo de polticas de rotacionamento padro
para no aplicar estas polticas no arquivo audit_samba.log.
Alterar o arquivo /etc/logrotate.d/samba, onde existe:
/var/log/samba/*.log

Altere para
/var/log/samba/[b-z]*.log

Diferente de outros utilitrios do sistema, o logrotate no executado em background como um


servio, ele executado media/sambante as polticas de agendamento de tarefas definidas no
cron, sendo assim, o utilitrio logrotate ser executado todos os dias a 4:02 da manh de arquivo
com o arquivo /etc/crontab e existncia do arquivo de agendamento em /etc/cron.daily.

Usando acls para permisses avanadas no Linux


As ACLs (Access Control Lists) nos fornecem um controle mais refinado sobre quais usurios
podem acessar diretrios e arquivos especficos do que as permisses tradicionais do GNU/Linux.
Usando as ACLs, podemos especificar as formas nas quais cada um dos usurios podem acessar um
diretrio ou um arquivo. Se eu quiser dar uma permisso apenas para mais uma pessoa, por
exemplo, a minha opo com chmod, seria criar um grupo de apenas uma pessoa e autorizar este
grupo a acessar o arquivo ou diretrio. Enfim, fica muito complicado quando precisamos regular o
acesso de uma maneira mais detalhada.
Existem dois tipos de ACLs: regras de acesso (access ACLs) e regras padro (default ACLs). Uma
regra de acesso especifica informaes de acesso para um nico arquivo ou diretrio. J uma regra
padro aplicada apenas a diretrios, e especifica informaes de acesso padres para todos os
arquivos no diretrio que no possuam uma ACL explcita aplicada.
Como vimos no captulo 4 em Instalando o Samba, note que instalamos tambm as ACLs e
ajustamos o particionamento para aceitar a acl no /etc/fstab. De agora em diante vamos trabalhar
com uma maneira diferente de lidar com permisses alm do j conhecido chmod.
Para usar este tipo de permisso, bastante simples apesar de haver inmeros parmetros. Por
exemplo, crie uma pasta chamada testes:
mkdir testes
Em seguida, vamos setar o acesso a leitura, escrita e gravao apenas para o usurio lobo (o
meu usurio por exemplo):
setfacl -m u:lobo:rwx testes
O comando que define as permisses chama-se setfacl (set file access control list). Os
parmetros fornecidos tambm so de fcil compreenso:
-m - Modifica as permisses de acesso do arquivo ou diretrio.
u - Modificaes se aplicam a um usurio.
lobo - Usurio que receber as permisses de acesso.
rwx - Esto sendo concedidas permisses de leitura (r), gravao (w) e execuo (x).
testes - Nome do diretrio que somente o usurio lobo ter acesso.
Uma vez emitido o comando, vamos verificar se est tudo correto. Para isto usamos o comando
getfacl:
$ getfacl testes
# file: testes
# owner: root
# group: root
user::rwx
user:lobo:rwx
group::r-x
mask::rwx
other::r-x

Como podemos ver, o dono do arquivo o super usurio (root) e o usurio lobo recebeu
permisses de leitura, escrita e execuo neste arquivo (user:lobo:rwx). Para saber se um arquivo
ou diretrio possui uma lista de acesso, digite:

ls -l testes

E teremos algo semelhante a isto:

-rw-rwxr--+ 1 root root 0 Dec 4 19:06 testes

Observe o sinal de + em -rw-rwxr+. Este sinal indica que o arquivo possui uma lista de acesso
(acl) definida. Se emitirmos o mesmo comando para um diretrio teremos um resultado diferente.
Para explorar mais das acls, sugiro que dem uma lida neste artigo escrito por Luis Felipe Silveira.

Para que o samba consiga interpretar corretamente as ACLs, adicione o parmetro map acl inherit
= Yes no compartilhamento no qual voc deseja ativar ACL (ou na pasta compartilhada que voc
alterou permisses e deseja efetivar as ACL) no smb.conf:
[compartilhado]
comment = compartilhado
path = /compartilhado
read only = No
create mask = 0777
force create mode = 0777
directory mask = 0777
force directory mode = 0777
map acl inherit = Yes

No esquea depois de alterar as ACL de reiniciar o samba para que ele aplique as configuraes
corretas:
/etc/init.d/samba restart
Migrando um samba3 PDC para Samba 4 AD
Recomendo fazer exaustivos teste em um ambiente virtual antes de fazer a migrao no ambiente
de produo. Para ter um ambiente de teste confivel apos criar as mquinas Virtuais ingressei as
duas no meu domnio antigo em produo (Samba3+ldap) e me loguei em cada uma delas com pelo
menos 4 usurios do domnio, diferente em cada maquina Totalizando 7 ( Um usurio em comum
nas duas maquina para teste ). Voc poder criar uma situao similar para testes tambm.
Acesse seu servidor samba3 e nele vamos fazer Backup de algumas pastas e arquivos de
configuraes que sero necessrios para a migrao:
mkdir -p /root/backup/var/lib/
mkdir -p /root/backup/etc/

Parando o servidor ldap do samba3 para fazer backup:


/etc/init.d/ldap stop

Fazendo Backup do servidor ldap


/etc/init.d/ldap stop
slapcat > /root/backup/backup.ldif

Iniciando o servidor Ldap (Para que seus usurios possam voltar a logar):
/etc/init.d/ldap stop
/etc/init.d/ldap start

Copiar arquivo as pastas do samba:


cp -r /etc/samba/ /root/backup/etc/
cp -r /var/lib/samba /root/backup/var/lib/

Copiando pasta de configurao do ldap


cp -r /etc/openldap /root/backup/etc/

No meu caso o ldap usa conexo segura TLS por isso precisei dos certificados tambm. Para
facilitar copiei toda as pasta /etc/ssl:
cp -r /etc/ssl /root/backup/etc/

Copiei a pasta Backup do servidor samba3 para o servidor samba4:


scp -r /root/backup root@servidorsamba4:/root/

Nota: Voc poder usar o filezila em ambiente grfico se um dos servidores tiver o
servidor X, ou qualquer outro recurso de ftp caso no saiba usar o scp.

Ligue as duas maquinas em rede (Samba3 e Samba4) recomendo que o teste de migrao sejam
feito numa rede separada simulando um cenrio real (onde o samba4 tem o mesmo ip do antigo
samba3). A instalao do Servidor openldap ser apenas para a migrao visto que j existe um
servidor openldap embutido no samab4. Portanto, ps migrao iremos remove-lo.
Antes de Instalar o ldap e fazer o dump dos usurios, verifique se existem usurios com sid
duplicado e se existem grupos que tenha o mesmo nome que o de usurios.
Instalar servidor ldap:
apt-get install libldap-2.4-2 slapd ldap-utils

Nota: Quando for solicitado senha pode deixar em branco.


Parar o servidor ldap:
/etc/init.d/slapd stop

Fazer copia da pasta padro do servidor ldap (criada na instalao do servidor ldap):
mv /etc/ldap /etc/ldap.padrao

Copiar a pasta do servidor ldap antigo ( Samba3 ) da qual fora feito o backup temporrio:
cp -r /root/backup/etc/ldap /etc/ldap

Mudando Permisses na pasta ldap


chmod 777 -R /etc/ldap

Agora precisamos editar o arquivo /etc/ldap/slapd.conf:


# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/yast.schema
include /etc/ldap/schema/samba.schema

pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args

modulepath /usr/lib/ldap/modules

access to attrs=SambaLMPassword,SambaNTPassword
by dn="cn=Administrator,dc=empresa,dc=casa" write
by * none

access to dn.base=""
by * read

access to dn.base="cn=Subschema"
by * read

access to attrs=userPassword,userPKCS12
by self write
by * auth

access to attrs=shadowLastChange
by self write
by * read

access to *
by * read

# BDB database definitions

allow bind_v2

loglevel 1024
TLSCertificateFile /etc/ssl/servercerts/servercert.pem
TLSCACertificatePath /etc/ssl/certs/
TLSCertificateKeyFile /etc/ssl/servercerts/serverkey.pem
database bdb
suffix "dc=empresa,dc=casa,"
rootdn "cn=Administrator,dc=empresa,dc=casa"

directory /var/lib/ldap
checkpoint 1024 5
cachesize 10000
index objectClass,uidNumber,gidNumber eq
index member,mail eq,pres
index cn,displayname,uid,sn,givenname sub,eq,pres
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

moduleload back_bdb.la

O meu servidor ldap usa conexo segura TLS com isso temos que copiar os certificados:
cp -r /root/backup/etc/ssl /etc/

Permisso na pasta ssl:


chmod 777 -R /etc/ssl/

Adicionando a base ldap:


slapadd -l /root/backup.ldif

Inciando o servidor ldap:


service slapd start

Testando o Servidor ldap:


ldapsearch -x -h 127.0.0.1

Pronto j temos um servidor ldap com nossa base de usurios. Lembre-se que o samba4 j tem um
servidor ldap interno s estamos usando esse servidor ldap temporariamente para que possamos
migrar as contas de usurios do samba3 (que usava ldap) para o samba4.
Fazendo a Migrao:
samba-tool domain classicupgrade --dbdir=root/backup/var/lib/samba/ --use-xattrs=yes
--dns-backend=SAMBA_INTERNAL --realm=empresa /root/backup/etc/samba/smb.conf

Entendendo um pouco o faz cada parmetro:


classicupgrade: A inteno desta funo a de fazer uma substituio completa de um domnio do
Samba em estilo NT4 existente. possvel fazer a converso e os usurios e mquinas vo
simplesmente re-conectar nova instalao AD Samba sem a necessidade manual deste
procedimento.
dbdir: Caminho para o diretrio que contm os arquivos de banco de dados tdb.
use-xattr: Usar o suporte ao sistema de arquivos subjacente para atributos estendidos.
realm: Voc pode especificar o domnio na linha de comando, se ele j no estiver especificado no
arquivo smb.conf do Samba3, no final adicionamos a localizao do arquivo smb.conf.
dns-backend: Por padro o Samba configurado com o servidor DNS interno. Mas voc poder
usar o BIND9 como explica no captulo 4 em Samba como um controlador de dominio.

Apos migrar o domnio tive um problema na senha do meu usurio administrator com isso tive que
setar a senha do mesmo novamente:
samba-tool user setpassword Administrator

Removendo o servidor ldap do samba 4:


aptitude purge slapd ldap-utils -y

Permisso na pasta dns do samba


chmod 777 -R /opt/samba/private/dns

Por fim, no samba4 faa alguns testes do kerberos e do prprio samba4 que j foram descritos os
passos no captulo 4 em Samba como um controlador de dominio, a partir de Teste o Kerberos.
Nota: Caso voc tenha problemas com SID duplicados, por favor acessar a documentao
do Samba em Prevent failure due to duplicate SIDs. Isto , l contm um script em
python que ajuda a resolver este problema.

Caso o script da documentao no funcione, voc poder verificar os SID duplicados antes de
fazer o dump de usurios com o seguinte comando:
cat /root/backup/backup.ldif | grep sambaSID | sort | uniq -d

Com isso, saber quais os SID duplicados e poder remover a todos manualmente em
/etc/backup/backup.ldif tranquilamente. Caso voc j tenha feito o dump de usurios, poder usar
o seguinte comando:
slapcat | grep sambaSID | sort | uniq -d

Voc poder usar um interface grfica para remover usurios do ldap como por exemplo, o ldap-
acount-manager LAM ou phpldapadmin.

Samba-Tool
Samba-tool a principal ferramenta de administrao de usurios e contas do samba server. Com
ela, poderemos adicionar, remover, editar, gerar parmetros de expirao de senha, limitar usurio
a uma determinada tarefa, criar grupos, lidar com grupos, criar um shellscript facilitador, usar por
meio de um ambiente grfico facilitador e muito mais. Como por exemplo:
Trocar senha do usurio:
samba-tool user setpassword lobo newpassword=1234.Mudar.Senha

Trocar senha do usurio e forca a troca no Prximo Login:


samba-tool user setpassword lobo --newpassword=1234.Mudar.Senha must-change-at-next-login

Deletar Usurio:
samba-tool user delete lobo

Deletar Usurio e Deletar a sua pasta Home:


samba-tool user delete lobo && rm -r /home/samba/lobo
Habilitar Usurio:
samba-tool user enable lobo

A expirao de senha para todos os usurios do domnio e feita com outro comando essa altera
somente do usurio especificado (bom para ser usado em certas excees como por exemplo
aquele diretor que insiste em ser uma exceo a regra) 10 e o numero de dias em que a senha ira
expirar:
samba-tool user setexpiry lobo days=10

Desabilitar a expirao de senha:


samba-tool user setexpiry lobo noexpiry

Criar um grupo:
samba-tool group add diretoria

Adicionar Vrios Grupos de uma vez:


samba-tool group add "diretoria diretoria_ead"

Criar um grupo e adicionar um descrio ao grupo:


samba-tool group add diretoria --description="Grupo da diretoria"

Adicionar um membro a um grupo:


samba-tool group addmembers diretoria lobo

No samba4 podemos adicionar um grupos dentro de outro isso muito til


samba-tool group addmembers diretoria diretoria_ead

Adicionar Vrios Membros a um grupo de uma vez s:


samba-tool group addmembers diretoria "lobo,lobo2"

Remover um grupo:
samba-tool group delete diretoria

Removendo Vrios grupos de uma vez:


samba-tool group delete "diretoria diretoria_ead"

Remover um membro de um grupo:


samba-tool group removemembers diretoria lobo

Remover Membros de um grupo:


samba-tool group removemembers diretoria "lobo,lobo2"

Listar todos os grupos:


samba-tool group list

Listar Usurios pertencente a um grupo:


samba-tool group listmembers diretoria

Mais sobre o Samba-Tool na documentao oficial.


Ingressando clientes no dominio Windows
Como o Windows 10 ainda recente e o 8 no to prtico quanto o 7, vamos nos focar no 7 para a
configurao de domnio do samba. Lembrando que voc poder aplicar o mesmo no 8 e 10 que
dever funcionar.
Acesse as propriedades do sistemas e em computador, clique no boto Alterar. Informe o nome
do domnio e clique em OK. Ser solicitado um nome e senha de um usurio do domnio, neste
caso, iremos utilizar a conta de administrador do Samba, visto que ainda no criamos nenhum
usurio comum. Ser solicitado que o computador seja reiniciado como nos exemplos a baixo:
Ao efetuar este procedimento, o computador ser automaticamente registrado no samba.
Computadores com S.O. at o Windows XP sero registrados de forma diferente aos clientes com
Windows Vista em diante, por conta das diferentes verses do protocolo SMB utilizadas. Reinicie o
computador e troque o usurio para o administrador do domnio.

Nota: Caso no aparea Fazer logon em: DOMNIO, informe o login como:
DOMNIO\administrator.

RSAT Ferramenta de administrao remota


Para administrar o samba pode-se utilizar o samba-tool, no entanto, recomenda-se a ferramenta
Remote Server Admininstration Tools - RSAT da Microsoft.
Aps instalar, habilite as ferramentas necessrias para a administrao do Samba, v em painel de
controle, Programas e Recursos e cliquem em Ativar ou desativar recursos do Windows (aba
lateral esquerda)e selecione as ferramentas:
Ferramentas de Servios da rea de Trabalho Remota;
Ferramentas de Servidor DNS;
Ferramentas do AD DS e AD LDS;
Ferramentas de Servidor de NIS;
Mdulo do Active Directory para Windows PowerShell; e
Ferramentas de Gerenciamento de Diretiva de Grupo.
A principal ferramenta de administrao do Samba da RSAT, a Usurios e Computadores do
Active Diretory. Acessvel em: Painel de Controle > Ferramentas Administrativas. Ao execut-
la, habilite a opo Recursos avanados para exibio plena dos recursos de administrao.
Para outras verses do Microsoft Windows, consulte a instalao do RSAT na documentao do
samba.
Ao instalar e configurar o Samba, fora definido um compartilhamento denominado home, que
destina-se ao uso pessoal dos usurios. No se trata da funo de perfil remoto, mas apenas um
diretrio onde o usurio poder utilizar para armazenar arquivos pessoais e acessar em qualquer
computador do domnio.
necessrio ajustar algumas permisses diretamente no Samba. Para isso, efetue o login do
usurio administrator no Windows e acesse Gerenciamento do computador. V no menu Ao >
Conectar a outro computador e informe o nome do servidor samba, neste caso debian.
Ao conectar no servidor, v em Ferramentas do sistema > Pastas Compartilhadas > home.
Configure nas abas Permisses de compartilhamento e Segurana os seguintes nomes e grupos
de usurios:
Permisses de compartilhamento:
Usurios autenticados Controle Total
SISTEMA Controle Total
Domain Admins Controle Total

Segurana:
PROPRIETRIO CRIADOR Controle Total
Usurios autenticados Ler & executar, Listar contedo da pasta e Leitura
SISTEMA Controle Total
Administrator Controle Total
Domain Admins Controle Total

Voc poder customizar essas permisses de acordo com suas necessidades.


Clique em OK para salvar.
Atravs da RSAT iremos criar um usurio comum, sem privilgios de administrador. Abra a
ferramenta Usurios e Computadores do Active Diretory. Em seguida v no menu Ao > Novo
> Usurio. Informe os dados do usurio, como nome, sobrenome, logon e senha. As senhas
devero atender a poltica de senhas do Samba, por padro requer caracteres maisculos,
minsculos e nmeros.
Aps cri-lo, consulte-o em Usurios e configure o compatilhamento home, conforme:

Ao concluir, basta efetuar o login com o novo usurio criado:


Configurando perfil nomade
O Roaming Profile (Perfil Nomade) ou mvel, criado pelo administrador do sistema e armazenado
em um Servidor. Esse perfil est disponvel sempre que voc faz logon em qualquer computador na
rede. Qualquer alterao feita no perfil Roaming Profile ser atualizada no Servidor. Se o usurio
efetuar logon em outra mquina, todas as configuraes e preferncias do Desktop (rea de
trabalho), como por exemplo, impressoras, papel de parede, configuraes de vdeo, etc, estaro
disponvel para o usurio.
Antes de iniciarmos o processo, interessante verificar algumas coisas como por exemplo, se o
processo samba est rodando:
ps -ef |grep samba

Identificar em quais portas e interfaces o samba est escutando:


netstat -tunlp |grep samba

Agora crie um diretrio chamado userprofiles dentro do / no servidor samba:


mkdir /userprofiles

Fornea permisso total ao diretrio:


chmod 777 /userprofiles

Agora configure o diretrio que acabamos de criar no smb.conf:


vim /etc/samba/smb.conf

E edite com as seguintes linhas:


[Profiles]
path = /userprofiles
read only = no
valid users = lobo
Reinicie o samba
smbcontrol all reload-config

Teste o kerberos:
kinit administrator@seudominio.com.br

Verifique se o diretrio compartilhado est disponvel:


smbclient -L localhost -U%

Agora v para o computador com Windows onde voc instalou a ferramenta de administrao
remota (AD) para o seu servidor de domnio e defina os usurios a quem voc deseja definir como
perfil nomade. Abra o cmd e digite dsa.msc, ou run e digite dsa.msc para abrir console do Active
Directory e em seguida defina o caminho do usurio:
V para o usurio para o qual voc deseja implementar perfil nomade e adicione o caminho seguido
pelo nome do usurio do diretrio do perfil no profile path da seo de propriedades como mostra
abaixo:

Daqui em diante voc apenas acompanha se o perfil nomade est funcionando ou no. Uma forma
de fazer isto, acessando o usurio no Windows, fazer modificaes de arquivos e pastas e
acompanhar modificaes na pasta /userprofiles no samba.
Nota: Certifique-se de que o usurio estar logando em mquinas onde o Sistema
Operacional se mantm o mesmo. Isto , que ele esteja logando em mquinas do
Windows 7 ao invs de outras verses. Pois, pode ser que no funcione caso o usurio
fique transitando entre uma verso e outra do mesmo sistema. Caso ainda tenha
dificuldades em operar com perfil nomade no windows7, d uma olhada neste vdeo.
Recomendo que tenha o VLC player instalado na mquina.

Adicionando unidades organizacionais


Para trabalharmos com o unidades organizacionais (UO) no samba, poderemos fazer isto usando o
snap-in do Windows, ou at mesmo o Zentyal, GOsa2, Webmin, Smb4k, o Lam, SMB2WWW,
gnomba, Jabs, Komba2, Smb Web client e muitos outros. No entanto, como a maioria dos
administradores de sistemas esto mais acostumados a trabalhar com o snap-in do Windows, a
este darei preferncia por enquanto. Mais a frente farei uma abordagem ao GOsa2 e outras
tecnologias.
Este costuma ser um procedimento bastante simples como mostra a seguir:
Menu iniciar > iniciar > dsc.msc.
Clique com o boto direito do mouse em seu domnio.
Escolha a opo new ou (novo), e v em organizational unit (unidade organizacional).
Em type, coloque o nome OU Demo por exemplo.
Em seguida ser exibida uma unidade organizacional chamada OU Demo.

A partir de agora, voc poder mudar o lugar onde criou a unidade organizacional ou simplesmente
criar sub unidades organizacionais.
Nota: Normalmente ns criamos UO baseado na configurao dodepartamento de sua
organizao. Tenha cuidado para no confundir grupos e unidades organizacionais,
grupos so usados para controlar permisses, OU so utilizados para as configuraes
de implantao para todos os usurios/computadores dentro da UO.

Implementando Group Policies


Assim como para criar unidades organizacionais usando o snap-in do Windows, para criar GPOs
tambm bastante simples. Veja os exemplos a baixo:
Clique em Iniciar, Ferramentas Administrativas e Diretivas de Grupos.
Clique sobre com boto direito e Criar um GPO neste domnio e

Nome da GPO ser Exemplo_GPO e OK.


Sobre a nova GPO clique com boto direito, clique em editar:

Para bloquear o acesso ao Painel de Controle vai em, Configuraes do Usurio, Diretivas, Modelos
Administrativos, Painel de Controle e Proibir acesso ao Painel de Controle:
Duplo clique sobre a diretiva e marque a opo Habilitado de OK. Pronto, GPO criada com
sucesso. Caso ainda existam dvidas a respeito da criao de GPOs, d uma olhada neste video da
documentao oficial.

Backup e recovery do Samba AD


Aqui vai uma dica bacana para quem instalou o samba a partir de pacotes pr compilados via apt-
get, dentro do source code, existe uma pasta que contm um script de backup chamado
samba_backup que se encontra exatamente em ../source4/scripting/bin/samba_backup e vamos
usar ele para este propsito. Copie este script para /usr/sbin/, mudar o proprietrio, e em seguida a
licena:
cp ..../source4/scripting/bin/samba_backup /usr/sbin
chown root:root /usr/sbin/samba_backup
chmod 750 /usr/sbin/samba_backup

Dentro do script backup_samba ajuste as variveis de acordo com suas necessidades:


FROMWHERE=/usr/local/samba
WHERE=/usr/local/backups
DAYS=90

o Configure a pasta destino para onde ser realizado o backup dentro da varivel WHERE=:
mkdir /usr/local/backups
chmod 750 /usr/local/backups

Faa um tste de execuo do script:


/usr/sbin/samba_backup

Nota: Se ocorrer algum erro, verifique se na pasta destino se encontra trs arquivos. So
eles: etc.{Timestamp}.tar.bz2, samba4_private.{Timestamp}.tar.bz2 e sysvol.
{Timestamp}.tar.bz2. Em caso de no haver, busque pelos trs no source code e coloque-
os l.
E em caso de sucesso, agora s nos falta adicionar o script ao crontab:
crontan -e

E a rotina de backup. Por exemplo para ele rodar sempre as 2am


0 2 * * * /usr/sbin/samba_backup

Para restaurar o backup, ou melhor, fazer o recovery, to simples quanto os passos a cima.
Primeiro vamos remover algumas pastas do samba:
rm -rf /usr/local/samba/etc
rm -rf /usr/local/samba/private
rm -rf /usr/local/samba/var/locks/sysvol

Lembra dos trs arquivos citados na nota a cima? Vamos us-los agora:
cd /usr/local/backups
tar -jxf etc.{Timestamp}.tar.bz2 -C /usr/local/samba/
tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /usr/local/samba/
tar -jxf sysvol.{Timestamp}.tar.bz2 -C /usr/local/samba/

Renomeie os arquivos .ldb.bak gerados para .ldb .Para tal, usaremos o find:
find /usr/local/samba/private/ -type f -name '.ldb.bak' -print0 | while read -d $'\0' f ;
do mv "$f" "${f%.bak}" ; done

Agora faa um upgrade no samba:


samba_upgradedns dns-backend=SAMBA_INTERNAL

Recovery efetuado com sucesso.

Samba como servidor secundario


Vamos supor que voc j tenha um domnio primrio configurado (que pode ser Samba4 ou
Windows Server 2008 AD). Mas voc precisa criar um domnio secundrio e migrar toda a base de
dados do primrio para o secundrio (para dividir tarefas, replicar a base de dados em outro
servidor de domnio, ou simplesmente corrigir algum problema do servidor primrio). Vou ento
criar uma situao hipottica para ficar mais fcil explicar como funciona. So eles os domnios:
Controlador de domnio primrio:
192.168.1.6
hostname: test.dominio.com

Controlador de domnio secundrio:


192.168.1.5
hostname: test1.dominio.com

Com seu controlador primrio j configurado, v ao secundrio em /etc/resolv.conf e mude o DNS


para o do servidor primrio:
search dominio.com
nameserver 192.168.1.6

Para preparar seu servidor de domnio secundrio, voc ter que configurar o Samba 4 em seu
servidor atual tambm. Para tal, basta seguir normalmente a instalao j abordada nesta
documentao quanto ao Samba 4. No entanto, voc ir mudar somente o modo com que promove
o samba:
samba-tool domain join dominio.com DC -Uadministrator --realm=dominio.com use-ntvfs

Assim, conseguiremos unir o servidor primrio com o secundrio. Agora, o prximo passo consiste
em certificar que seu hostname do domnio secundrio resolvel:
nslookup test1.dominio.com

Nota: Neste caso, depende muito do servidor DNS que voc est adontando. Isto , o
BIND9 ou o Samba_internal.

Caso o seu DNS no esteja resolvel, ento vamos fazer a entrada para o mesmo no servidor DNS
do samba:
vim /usr/local/samba/private/dns/dominio.com
# E adicione a seguinte linha:
test1 IN A 192.168.1.5

Salve, saia e reinicie o servio (caso seja BIND9):


/etc/init.d/named restart

E tente novamente testar o DNS:


nslookup test1.dominio.com

Teste tambm se o objectGUID resolvel:


ldbsearch -H /usr/local/samba/private/sam.ldb '(invocationid= * )' --cross-ncs objectguid

Se tudo correr bem, dever aparecer algo semelhante a isto:


# record 1
dn: CN=NTDS Settings,CN=TEST,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,
DC=dominio,DC=com
objectGUID: 74b975bc-c25c-4ce7-9773-fe3f6eb1b903

# record 2
dn: CN=NTDS Settings,CN=TEST1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,
DC=dominio,DC=com
objectGUID: 607bc2dc-0754-49e3-aa37-9be403d0cc33

Nota: Observe o objectGUID para o test1, isto , para o servidor secundrio.

Agora, este objectGUID deve ser tambm resolvel:


host -t CNAME 607bc2dc-0754-49e3-aa37- 9be403d0cc33._msdcs.example.com

Se no estiver, voc poder atualizar o registro DNS usando o comando a baixo:


samba-tool dns add IP-of-your-DNS _msdcs.samdom.dominio.com607bc2dc-0754-49e3-aa37-9be403d0cc
33 CNAME test1.dominio.com -Uadministrator

Se ocorrer algum erro, tente novamente configurar manualmente no dns do samba:


vim /usr/local/samba/private/dns/dominio.com.zone

E adicione esta entrada:


607bc2dc-0754-49e3-aa37-9be403d0cc33._msdcs.example.com. IN CNAME test1

Nota: No copie e cole estes comandos visto que cada objectGUID se difere de mquina
para mquina. Observe o seu e use o exemplo a cima apenas como base.
Reinicie o named:
/etc/init.d/named restart

Nota: Novamente, se estiver usando o Samba_Internal, estes passos para com o teste do
DNS so descartveis e provavelmente ocorra tudo na mais perfeita ordem.

Agora tente novamente o comando:


host -t CNAME 607bc2dc-0754-49e3-aa37-9be403d0cc33._msdcs.example.com

E provavelmente d tudo certo.


Finalmente atualize o IP do seu servidor de domnio secundrio em sua resolv.conf do mesmo
servidor que para o nosso caso 192.168.1.5:
vim /etc/resolv.conf

search dominio.com
nameserver 192.168.1.6
nameserver 192.168.1.5

Testes de replicao de diretrios


Agora hora de ver se a replicao est funcionando para ambos os controladores de domnio.
Assim que se voc fizer qualquer alterao em um dos dc o mesmo deve refletir sobre o outro dc.
Para verificar isto basta usar o comando a baixo:
samba-tool drs showrepl

Na mquina com Windows Server, caso voc deseje gerenciar o servidor secundrio a partir do
snap-in do AD do Windows, abra o Console de gerenciamento do Active Directory, v em Ao e
selecione Alterar controlador de domnio como mostra a baixo:

Aqui voc deve ser capaz de ver os seus controladores de domnio disponveis e seus status como
mostrado abaixo:
Agora teste criar um usurio no servidor secundrio e acompanhar no primrio como j mostrei no
captulo 6 em Samba tool. Se o usurio criado no servidor secundrio aparecer no primrio, a nossa
replicao est funcionando bem. O mesmo a partir de qualquer controlador de domnio.

Potrebbero piacerti anche