UNIVERSIDADE
CATÓLICA DE
BRASÍLIA
PRÓ-REITORIA DE GRADUAÇÃO
TRABALHO DE CONCLUSÃO DE CURSO
Bacharelado em
Ciência da Computação
O SOFTWARE SAMBA NA INTEGRAÇAO DE REDES
HETEROGÊNEAS
Autores:
Orientador:
BRASÍLIA
Clarice Braga e Silva Campos
Solange Correia de Oliveira
MSc. Giovanni Almeida Santos
2008
O software Samba na integração de redes heterogêneas
2 / 101
CLARICE BRAGA E SILVA CAMPOS
SOLANGE CORREIA DE OLIVEIRA
O SOFTWARE SAMBA NA INTEGRAÇÃO DE
REDES HETEROGÊNEAS
Monografia apresentada ao Programa
Graduação da Universidade Católica
Brasília, como requisito para obtenção
Título de Bacharelado em Ciência
Computação.
de
de
do
da
Orientador: MSc. Giovanni Almeida Santos
Brasília
2008
O software Samba na integração de redes heterogêneas
3 / 101
TERMO DE APROVAÇÃO
Monografia defendida e aprovada como requisito parcial para obtenção do Título de
Bacharel em Ciência da Computação, defendida e aprovada, em 20 de Junho de 2008,
pela banca examinadora constituída por:
_______________________________________________________
Msc. Giovanni Almeida Santos
Orientador
________________________________________________________
Msc . Mário de Oliveira Braga Filho
Brasília
UCB
O software Samba na integração de redes heterogêneas
4 / 101
Para cada sonho é necessário um sonhador. Para
cada conquista, uma batalha. Agradeço a Deus o sonho,
a batalha e, sobretudo a conquista. Não poderia deixar
de agradecer a minha família por compreenderem a
minha ausência, aos grandes amigos que fiz nesta
caminhada, aos meus professores do curso e ao
orientador Giovanni Almeida Santos pelo apoio.
Clarice Braga e Silva Campos
O software Samba na integração de redes heterogêneas
5 / 101
"e que passe a ser vida o que hoje é só sonho..."
Para que se possa percorrer um caminho é
necessário dar o primeiro passo.
Agradeço a Deus por não me deixar desistir da
caminhada, aos meus pais, Irene e José, pelo apoio
incondicional, aos meus amigos que apesar da distância
sempre estiveram muito presentes e compreenderam
minha ausência. Aos colegas e professores do curso e
aos Professores Giovanni Almeida Santos e Mauro
Tapajós.
Solange Correia de Oliveira
O software Samba na integração de redes heterogêneas
6 / 101
Agradecemos ao orientador Professor MSc.Giovanni Almeida Santos
O software Samba na integração de redes heterogêneas
7 / 101
“Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode recomeçar
agora e fazer um novo fim."
Chico Xavier
O software Samba na integração de redes heterogêneas
8 / 101
RESUMO
Este projeto se dispõe a ser um tutorial para a integração entre redes heterogêneas
Linux-Windows, abordando a relação de confiança entre domínios, utilizando para isso o
Samba, um software que permite o compartilhamento e gerenciamento de recursos entre esses
sistemas.
Este tutorial irá contemplar os problemas encontrados ao montar um ambiente
heterogêneo, mostrando as facilidades do Samba, as dificuldades, os erros e as soluções
encontradas para corrigi-los.
Estas abordagens têm como objetivo apresentar as funcionalidades encontradas no
Samba que possibilitam a integração de ambientes livres e ambientes proprietários Microsoft.
Palavras-chave: integração, autenticação, Samba, relação de confiança.
O software Samba na integração de redes heterogêneas
9 / 101
ABSTRACT
This project intends to be a tutorial for integration among nets heterogeneous
Windows-Linux, approach the trust-relationship among domains, by using Samba, software
that permits sharing and resource management among those systems.
This tutorial will contemplate the trouble encountered on assembling an
environment heterogeneous, showing the facilities of the Samba, the difficulties, the errors
and the solutions encountered to correct then.
Those approaches have the objective to present the functionalities encountered
into the Samba what allow the integration of environments free and environments owners
Microsoft.
Keywords: integration, authentication, Samba, trust-relationship.
O software Samba na integração de redes heterogêneas
10 / 101
SUMÁRIO
1.
1.1.
INTRODUÇÃO .......................................................................................................... 14
Beneficiados pela pesquisa ..................................................................................... 14
2.
2.1.
2.2.
OBJETIVOS ............................................................................................................... 15
Objetivo Geral ........................................................................................................ 15
Objetivos Específicos .............................................................................................. 15
3.
PROPOSTA DA PESQUISA..................................................................................... 15
3.1.
Descrição da Pesquisa ............................................................................................ 15
3.2.
Resultados Esperados ............................................................................................. 16
3.3.
Restrições da Pesquisa ........................................................................................... 16
3.3.1.
Descrição do Hardware Utilizado ........................................................................... 16
3.4.
Recursos Necessários .............................................................................................. 16
3.4.1.
Descrição do Hardware Utilizado ........................................................................... 16
3.4.2.
Softwares e Distribuições Utilizados ....................................................................... 18
3.4.3.
Configuração de Rede ............................................................................................. 19
3.5.
Áreas Afetadas pela Pesquisa ................................................................................ 19
4.
WINDOWS ................................................................................................................. 20
4.1.
Windows Server 2003 ............................................................................................. 20
4.2.
Protocolos Utilizados pelo Windows ..................................................................... 20
4.3.
Serviços de resolução de nomes ............................................................................. 25
4.4.
Domínios e grupos de trabalho do Windows ....................................................... 29
4.4.2.1 Controladores de Domínio (Domain Controllers) ....................................................... 32
4.4.2.2. Servidor Membro (Member Server) ............................................................................ 33
4.5.
AD – Active Directory ............................................................................................ 34
4.6.
Protocolo Kerberos ................................................................................................. 39
4.7.
DNS e Active Directory ........................................................................................... 41
5.
SAMBA ........................................................................................................................ 42
5.1.
Um pouco da história do Samba ........................................................................... 42
5.2.
O protocolo SMB / CIFS no Samba ...................................................................... 43
5.3.
Funcionamento básico do Samba .......................................................................... 44
5.4.
Smb.conf .................................................................................................................. 46
5.5.
Bases de autenticação utilizadas pelo Samba ....................................................... 50
5.5.1.
Smbpasswd ............................................................................................................... 52
5.5.2.
LDAP ........................................................................................................................ 53
5.6.
Samba e domínios ................................................................................................... 56
5.7.
Métodos de resolução de nomes utilizados pelo Samba ...................................... 59
6.
SOLUCÃO PROPOSTA............................................................................................ 61
O software Samba na integração de redes heterogêneas
6.1.
6.2.
11 / 101
Cenário 1 – O Samba como um PDC .................................................................... 61
Cenário 2 – Adicionando o Linux a um domínio Windows ................................ 66
7.
CONCLUSÃO............................................................................................................. 71
8.
TRABALHOS FUTUROS ......................................................................................... 72
9.
BIBLIOGRAFIA ........................................................................................................ 73
10.
GLOSSÁRIO .............................................................................................................. 76
APÊNDICES ........................................................................................................................... 80
1.
APÊNDICE A – O SAMBA COMO UM PDC ........................................................ 80
2.
APÊNDICE B – ADICIONANDO O LINUX A UM DOMINIO WINDOWS ..... 92
O software Samba na integração de redes heterogêneas
12 / 101
LISTA DE FIGURAS
Figura 1 - Protocolos utilizados pelo smb/cifs ..................................................................... 24
Figura 2 - Funcionamento do servidor WINS ..................................................................... 25
Figura 3 - Funcionamento do DNS ....................................................................................... 28
Figura 4 - Alteração do nome do computador ..................................................................... 30
Figura 5 - Inclusão em um grupo de trabalho ..................................................................... 30
Figura 6 - Hierarquia entre domínios ................................................................................... 31
Figura 7 - Controlador de domínio ....................................................................................... 33
Figura 8 - Autenticação de usuários no AD ......................................................................... 36
Figura 9 - Relação de confiança transitiva ........................................................................... 37
Figura 10 - Confiança unidirecional e bidirecional ............................................................. 38
Figura 11 - Estrutura de domínios do Windows.................................................................. 39
Figura 12 - Funcionamento básico do protocolo SMB ........................................................ 44
Figura 13 - Bases de autenticação utilizadas pelo Samba ................................................... 52
Figura 14 - Plataformas que utilizam LDAP ....................................................................... 54
Figura 15 - Árvore de diretórios do LDAP .......................................................................... 55
Figura 16 - LDAP com base de nomes .................................................................................. 55
Figura 17 - O Samba atuando como PDC ............................................................................ 62
Figura 18 - Usuários Linux logados no Windows ................................................................ 65
Figura 19 - Relação de confiança entre domínios ................................................................ 66
Figura 20 - Usuários e computadores do AD ....................................................................... 69
Figura 21 - Windows logado no domínio Linux .................................................................. 70
O software Samba na integração de redes heterogêneas
13 / 101
LISTA DE TABELAS
Tabela 1 - Componentes de um nome distinto ..................................................................... 56
Tabela 2 - Níveis do sistema operacional Windows ............................................................. 58
O software Samba na integração de redes heterogêneas
1.
14 / 101
INTRODUÇÃO
A utilização de softwares proprietários como Windows nas empresas e órgãos do
Governo ainda é grande, mas esse quadro vem mudando com a adoção de software livre. O
seu uso possibilita a redução de custos com licenças de utilização, maior segurança e
estabilidade e, por ser um software de código aberto, está em constante evolução, permitindo
que ele seja melhorado e adaptado às necessidades do usuário.
A migração de redes que utilizam Windows para redes que utilizam Linux não
pode ser feita da noite para o dia. É preciso levar em conta quais serviços e em que ordem eles
irão migrar, o treinamento de usuários, que requer uma certa demanda de tempo, além da
política de segurança adotada na empresa que também é fator relevante. Sendo assim, durante
algum tempo um ambiente de rede heterogêneo é utilizado e esse ambiente deve estar
estruturado de forma tal que possibilite o bom andamento da empresa, causando o menor
impacto possível e que seja feita de forma transparente para o usuário.
A proposta deste trabalho é mostrar os passos que devem ser seguidos para que se
possa integrar os sistemas Windows e Linux utilizando o Samba, mostrar a necessidade e os
benefícios de se ter um ambiente com relação de confiança entre os domínios e as
funcionalidades do software Samba.
Vários trabalhos abordam este tema, mas não há um passo-a-passo para que essa
integração seja feita de forma rápida e transparente, causando o menor impacto possível para
o usuário.
1.1.
Beneficiados pela pesquisa
Administradores de redes e pesquisadores interessados em gerenciamento de
recursos de Tecnologia da Informação em cenários que utilizam plataformas heterogêneas,
além daqueles que estejam interessados em integrar os sistemas Windows aos sistemas Linux.
Centro de Excelência em Servidores de Missão Crítica – CESMIC, localizado na
Universidade Católica de Brasília – UCB.
O software Samba na integração de redes heterogêneas
2.
15 / 101
OBJETIVOS
2.1.
Objetivo Geral
O projeto tem como finalidade descrever o caminho para se integrar com sucesso
sistemas operacionais diferentes, utilizando relação de confiança entre domínios para que seus
usuários tenham acesso aos recursos disponibilizados a ele independente do sistema utilizado,
tendo como foco o software Samba que permite integrar de forma eficiente as plataformas
Windows e Linux.
2.2.
Objetivos Específicos
A fim de alcançar o objetivo geral desse projeto, os objetivos específicos a seguir
são necessários:
Montar um ambiente onde o Samba seja o controlador de domínio para
autenticar os clientes Windows;
Montar um ambiente onde o Windows Server 2003 seja o controlador de
domínio, utilizando o Active Directory para a autenticação dos clientes Linux;
3.
Criar uma relação de confiança entre os domínios Windows e Linux;
Realizar testes para verificação e comprovação do funcionamento do Samba.
PROPOSTA DA PESQUISA
Este capítulo trata da descrição da pesquisa em seus aspectos gerais. Serão
abordados: a descrição da pesquisa, os resultados esperados, as restrições do projeto e os
recursos utilizados para a sua execução. Será descrita também a relação custo-beneficio para a
realização deste projeto e as áreas afetadas pela pesquisa.
3.1.
Descrição da Pesquisa
A pesquisa tem como objetivo mostrar os passos para se integrar redes
heterogêneas, neste caso, redes Windows-Linux onde serão verificadas quais as dificuldades,
O software Samba na integração de redes heterogêneas
16 / 101
facilidades e erros cometidos na montagem de um ambiente misto.
O estudo irá se concentrar nos softwares Windows e Linux e no servidor Samba,
que proporciona a integração de redes heterogêneas, mostrando as ferramentas que estes
sistemas dispõem para autenticação de usuários.
3.2.
Resultados Esperados
Espera-se, ao final desta pesquisa, apresentar um tutorial onde serão sanados os
problemas para montar um ambiente integrado com sistemas diferentes, mostrando como
estabelecer uma relação de confiança entre eles.
3.3.
Restrições da Pesquisa
Esta pesquisa se restringe à utilização das ferramentas de autenticação
disponibilizadas pelos sistemas operacionais Windows e Linux bem como os recursos
oferecidos pelo software Samba.
3.3.1.
Descrição do Hardware Utilizado
Este estudo é de interesse aos profissionais da área de redes, em específico
administradores de redes que, poderão através deste documento fazer uma implantação rápida
seguindo os caminhos aqui claramente apresentados.
3.4.
Recursos Necessários
Esse tópico descreve os recursos de hardware e software utilizados durante a
realização deste projeto.
3.4.1.
Descrição do Hardware Utilizado
Para a realização deste projeto foram utilizados os seguintes equipamentos:
O software Samba na integração de redes heterogêneas
17 / 101
Servidor Samba
Processador: Intel Pentium 4 2.80 Ghz;
Memória RAM: 504 MB;
Memória de armazenamento: 135 GB;
Dispositivos e periféricos: interface de rede ethernet, unidade de leitura de
CD-ROM e entrada USB para dispositivo de memória removível (pen
drive).
Cliente Linux
Processador: Intel Pentium 4 2.80 Ghz;
Memória RAM: 504 MB;
Memória de armazenamento: 135GB;
Dispositivos e periféricos: interface de rede ethernet, unidade de leitura de
CD-ROM e entrada USB para dispositivo de memória removível (pen
drive).
Cliente Windows XP:
Processador: Intel Pentium 2 2.40 Ghz;
Memória RAM: 512 MB;
O software Samba na integração de redes heterogêneas
18 / 101
Memória de armazenamento: 5 GB;
Dispositivos e periféricos: interface de rede ethernet, unidade de leitura de
CD-ROM.
Windows Server 2003:
Processador: Intel Pentium 4 1.80 Ghz;
Memória RAM: 240 MB;
Memória de armazenamento: 149 GB;
Dispositivos e periféricos: interface de rede ethernet, unidade de leitura de
CD-ROM e entrada USB para dispositivo de memória removível (pen
drive).
3.4.2.
Softwares e Distribuições Utilizados
Para a realização deste projeto foram utilizados os seguintes softwares e suas
respectivas distribuições:
Windows XP Professional;
Windows Server 2003 e
Debian Linux 2.18.3.
Também foram utilizados os seguintes pacotes para o servidor Samba:
O software Samba na integração de redes heterogêneas
19 / 101
Samba 3.0.26a;
Samba-client 3.0.26a;
Samba-common 3.0.26a;
OpenLDAP 2 .x;
Smbldap-Tools 2.x.
No Windows 2003 Server foi necessária a habilitação do Active Directory.
3.4.3.
Configuração de Rede
As máquinas descritas para a utilização deste projeto estão interligadas em uma
rede Ethernet através de um switch.
A máquina Linux foi configurada para trabalhar como cliente e servidor e para
que a autenticação ocorresse de forma segura foram realizados testes com os pacotes
OpenLDAP instalados e configurados. As ferramentas do pacote smbldap-tools foram
utilizadas para o servidor, já para o cliente foi configurado o pacote Samba-client.
No cliente Windows XP não foi necessária a instalação de nenhum pacote
adicional, já para o Server 2003 foi necessária a habilitação do Active Directory.
3.5.
Áreas Afetadas pela Pesquisa
Através dessa pesquisa algumas áreas da Tecnologia da Informação podem ser
beneficiadas, como por exemplo, as de sistemas distribuídos e gerência de recursos, porém,
essa pesquisa está mais direcionada aos Administradores e Gerentes de redes que buscam
sempre oferecer um serviço de qualidade para seus usuários.
O software Samba na integração de redes heterogêneas
4.
20 / 101
WINDOWS
A revolução tecnológica propiciou uma diversidade imensa de aplicações para os
computadores. Atualmente a sua utilização no cotidiano das pessoas, seja em atividades
pessoais seja nos negócios é tal, que é difícil imaginar a realização de tarefas sem o uso do
computador.
Com a popularização do computador pessoal surgiu a necessidade de interligá-los
em redes e tanto pequenas empresas quanto as grandes corporações utilizam-se da
comunicação entre redes para realizar seus negócios.
Apesar de apresentar falhas e pontos de críticos de segurança, o sistema
operacional Windows tornou-se muito popular sendo amplamente utilizado em redes de todo
o mundo. Este capítulo trará alguns dos conceitos técnicos mais importantes para o
funcionamento de redes Microsoft Windows.
4.1.
Windows Server 2003
O Windows Server 2003 foi lançado pela Microsoft em abril de 2003 e é
conhecido também como W2K3, é o sistema operacional de rede que veio a substituir o
Windows 2000 Server. Ele também é conhecido como Windows NT 5.2 e em seu kernel
encontra-se o Windows XP alterado de forma a permitir que o sistema funcione de forma
mais estável.
Da mesma forma que o Windows 2000 Server, esse sistema também traz consigo
o Active Directory que é uma robusta ferramenta para autenticação e administração de
domínios e usuários.
Em comparação ao seu antecessor, o Server 2003 trouxe melhorias para os
serviços de rede e para ao Active Directory tornando-o mais robusto confiável.
4.2.
Protocolos Utilizados pelo Windows
Muitos são os protocolos utilizados pelo Windows para comunicação em redes,
resolução de nomes de máquinas e compartilhamento de arquivos.
Neste tópico serão apresentados alguns protocolos que o Windows utiliza ou já
O software Samba na integração de redes heterogêneas
21 / 101
utilizou, abordando suas características e funcionalidades principais. Entendendo o
funcionamento básico destes protocolos, o estudo sobre o software Samba, mais à frente, será
melhor compreendido.
4.2.1.
NetBIOS - Network Basic Input Output System
O NetBIOS é uma interface de rede que foi desenvolvida pela Sytec e utilizada
pela IBM para permitir a comunicação entre máquinas. Essa estrutura utiliza o conceito de
nome de serviço, possibilitando a uma máquina conectar-se à rede reservando um nome para
sua utilização, permitindo à máquina utilizar quantos nomes quiser, desde que ele não esteja
em uso. É uma interface simples que foi projetada para prover uma interação entre programas
e o hardware de comunicação de um computador.
O seu esquema de endereçamento utiliza 16 bytes para identificar os
computadores e as aplicações de rede, sendo que o último caractere é reservado para a
identificação do serviço disponível na máquina.
Os nomes NetBIOS seguem algumas regras tais como:
Os nomes NetBIOS não possuem formato hierárquico como acontece no DNS;
Podem conter caracteres de 0..9, a..z, A..Z, ou qualquer um dos caracteres ! @
#$%^&()–‘{}.~
Um nome registrado pode identificar uma única estação de trabalho ou nós
múltiplos que façam parte de um grupo.
A interface NetBIOS oferece às aplicações de rede um serviço de comunicação
orientado à conexão e opcionalmente um serviço de transmissão de datagramas não confiável
através das portas UDP/137, UDP/138, UDP/139 e é através dessas portas que acontecem as
invasões e o alto tráfego de vírus.
Outra limitação do NetBIOS é que ele não é roteável, ou seja, pode ser usado
apenas em redes pequenas ou em grupos de trabalho onde pode se utilizar broadcast para
O software Samba na integração de redes heterogêneas
22 / 101
atingir toda a comunidade, já na Internet os pacotes broadcast são eliminados pelos
roteadores, sendo difícil de serem transportados entre segmentos de redes distintos.
4.2.2.
NetBEUI - NetBIOS Extended User Interface
O NetBEUI é uma versão melhorada do NetBIOS desenvolvida pela IBM em
1985. Assim como o NetBIOS, foi desenvolvido para redes pequenas com no máximo 255
máquinas, não suportando roteamento. Com isso ele se tornou um protocolo extremamente
simples, com um bom desempenho não necessitando de nenhuma configuração manual.
Como o NetBIOS ele também utiliza o esquema de nomes para endereçar as
máquinas da rede. Qualquer nome pode ser utilizado, desde que não ultrapasse 15 caracteres e
não esteja sendo utilizado por outra máquina.
4.2.3.
NBT - NetBIOS over TCP
O protocolo TCP/IP utiliza números para representar os endereços dos
computadores na rede, enquanto o NetBIOS utiliza nomes. Os problemas surgiram quando
esses protocolos necessitaram trabalhar juntos. Para solucioná-los a IETF (Internet
Engineering Task Force) publicou em 1987 as documentações RFC 1001 E 1002 que
descreviam como o NetBIOS deveria trabalhar em uma rede TCP/IP. A partir daí esse padrão
é conhecido como NetBIOS over TCP/IP ou NBT. [BARREIROS, 2003]
O NBT estabelece o funcionamento de três serviços em uma rede, sendo dois
serviços de comunicação e o serviço de nomes.
O serviço de nomes permite que cada máquina declare um nome especifico para
si na rede que será traduzido em um nome IP de modo semelhante ao DNS. Uma das formas
para fazer o mapeamento de nomes é por IP broadcast onde um pacote com o nome escolhido
é enviado em broadcast para a rede, todas as outras máquinas ficam sabendo o nome do
computador e se esse nome já estiver sendo utilizado, a máquina que está de posse dele
responde dizendo que o mesmo já está em uso.
O software Samba na integração de redes heterogêneas
4.2.4.
23 / 101
NBNS - NetBIOS Name Server
Esse serviço também é conhecido como WINS, nome dado pela Microsoft com o
objetivo de solucionar o problema da resolução de nomes que como dito anteriormente era
feito enviando-se mensagens broadcast na rede a fim de se localizar um computador.
O NBNS realiza uma coleta de nomes e endereços IP e os disponibiliza em uma
lista para quem desejar. Os clientes enviam seus endereços IP e o nome NetBIOS para o
servidor NBNS que armazena os dados em um banco de dados. Se um cliente quiser se
comunicar com um outro cliente ele envia ao servidor NBNS o nome do cliente procurado, se
ele estiver no banco de dados o NBNS retorna ao solicitante o número IP referente àquele
nome.
4.2.5.
Protocolo SMB / CIFS
Originalmente criado pela IBM, o SMB (Server Message Block) sofreu alterações
pela Microsoft que o renomeou para CIFS (Common Internet File System) e atualmente é
conhecido como SMB/CIFS.
É um protocolo que permite compartilhar arquivos, impressoras e portas seriais
amplamente utilizado pelos sistemas operacionais Windows. O primeiro a utilizá-lo foi o
Windows for Workgroups e desde então os outros sistemas operacionais da Microsoft
passaram a ter a capacidade de funcionar como um servidor ou cliente.
Esse protocolo funciona enviando pacotes do cliente para o servidor. Cada pacote
enviado contém um cabeçalho padrão e mais dois campos de tamanho variável utilizados para
informações específicas do pacote. O protocolo suporta múltiplas requisições e permite que o
cliente acesse seus arquivos como se eles estivessem disponibilizados em sua máquina local e
não em um servidor remoto.
Cada pacote recebido pelo servidor é checado e se o cliente possuir as permissões
necessárias para efetuar a requisição ele então executa a requisição do cliente e lhe envia um
pacote com a resposta. O cliente analisa o pacote de resposta para determinar se a requisição
inicial foi realizada com sucesso.
O SMB/CIFS é um protocolo de alto nível e no modelo OSI é descrito como parte
da camada de aplicação / apresentação, sendo assim, ele depende de outros protocolos para o
O software Samba na integração de redes heterogêneas
24 / 101
transporte, como mostra a Figura 1 sendo que o mais utilizado para transporte confiável é o
NetBIOS over TCP (NBT). [BARREIROS,2003]
Figura 1 - Protocolos utilizados pelo smb/cifs
O SMB/CIFS se destina principalmente a ser um protocolo de compartilhamento
de arquivos, mas, além disso, existem outras funções associadas a ele como determinar outros
servidores SMB/CIFS na rede, compartilhar impressoras ou fornecer técnicas de autenticação.
Os produtos da Microsoft se tornaram muito populares, desde grandes
corporações até os usuários comuns, desse modo o protocolo SMB/CIFS é encontrado em
todos os lugares. Há várias versões e implementações do SMB/CIFS, algumas delas são
listadas abaixo:
Solaris – possui um projeto chamado CIFS cliente para Solaris baseado no
MAC OSX smbfs;
O software Veritas possui uma implementação do SMB;
Novell NetWare versão 6 e posteriores possui uma implementação para
servidor CIFS provendo acesso a volumes NetWare para clientes Microsoft;
Samba – uma reimplementação do protocolo SMB que será discutida em
detalhes no capítulo 6 deste projeto.
O software Samba na integração de redes heterogêneas
4.3.
25 / 101
Serviços de resolução de nomes
4.3.1. WINS – Windows Internet Name Services
O WINS é um serviço para resolução de nomes de máquinas de uma rede NT.
Apesar de o DNS também ser um serviço para resolução de nomes, o WINS ainda é mantido
por questões de compatibilidade, pois as versões anteriores do Windows (95, 98, Me e 3.11) e
aplicações mais antigas ainda dependem da resolução de nomes NetBIOS, que é feita pelo
WINS. Esse serviço pode ser encontrado no Windows 2000 Server, Server 2003 e no NT 4.0.
[BATTISTI, 2006]
Cada máquina da rede possui dois nomes: o nome de host e o nome NetBIOS, o
WINS permite que o cliente faça o registro do nome NetBIOS dinamicamente durante a
inicialização. O cliente registra o nome NetBIOS e o endereço IP respectivo, desse modo esse
protocolo cria uma base de nomes NetBIOS juntamente com os respectivos endereços IP's
fornecendo o serviço de resolução de nomes na rede.
Um exemplo do funcionamento do serviço pode ser visto na Figura 2. O cliente A
registra o seu nome no seu servidor WINS, o cliente B consulta o servidor WINS para
localizar o endereço IP da máquina A na rede, o WINS então responde com o endereço IP do
host A.
Figura 2 - Funcionamento do servidor WINS
O software Samba na integração de redes heterogêneas
26 / 101
As principais características do WINS são:
Provê redução do tráfego broadcast gerado pelo NetBIOS, por padrão os
roteadores bloqueiam o tráfego broadcast e sem o uso do WINS os clientes que
dependem desse serviço para resolução de nomes não teriam como fazê-lo;
Utiliza replicação mantendo vários servidores WINS, em diferentes redes, com
o mesmo banco de dados contendo as informações de todos os computadores
da rede;
Mantém um banco de dados dinâmico de nomes NetBIOS para endereço IP,
provendo a resolução e registro do nome NetBIOS dos computadores da rede;
Pode ser integrado com o DNS para responder às consultas que o DNS não
conseguir responder.
O WINS apresenta ainda um espaço de nomes chamado de flat que
diferentemente do DNS não forma uma estrutura de domínios nem apresenta uma hierarquia,
sendo essa a principal diferença entre esses dois serviços. Em sua base de dados ficam
registrados apenas o nome NetBIOS e o respectivo IP da máquina.
A necessidade de se ter dois serviços distintos para resolução de nomes se deve ao
fato de que até o Windows NT 4.0 o WINS era o serviço mais utilizado e o suporte ao DNS
só era obrigatório se algum serviço necessitasse utilizá-lo, mas a partir do Windows 2000
Server, que trazia o Active Directory, o serviço DNS passou a ser preferencial, e obrigatório
no caso do AD. Por isso essa fase de transição é necessária, pois ainda há muitos clientes e
aplicativos que dependem do WINS.
O WINS oferece suporte a vários clientes, como alguns dos listados abaixo:
Clientes Linux rodando o serviço Samba;
Windows 95, 98, Me;
O software Samba na integração de redes heterogêneas
27 / 101
Windows 2000;
Windows Server 2003;
Windows NT 3.5 ou superior;
Windows for Workgroups 3.11.
4.3.2.
DNS – Domain Name System
DNS é a abreviação para Domain Name System, ou Sistema de Nomes de
Domínios. É um sistema onde o nome de computadores e redes são organizados de forma
hierárquica e são utilizados em redes TCP/IP, como na Internet, para localizar computadores
e serviços por meio de nomes amigáveis para o usuário. Quando um usuário insere um nome
DNS em um aplicativo, (um browser por exemplo) os serviços DNS transformam esses
nomes para outra informação associada ao nome, como um endereço IP. Um exemplo do seu
funcionamento pode ser visto na Figura 3, onde os nomes dos servidores estão apresentados
de forma amigável para o usuário e não como um endereço IP.
A partir do Windows 2000, a principal ferramenta utilizada para a resolução de
nomes de máquinas passou a ser o DNS . O WINS, como dito anteriormente, foi mantido
apenas para prover compatibilidade com as versões anteriores. [MORIMOTO, 2008]
O DNS provê uma série de funcionalidades para as redes que utilizam Active
Directory. Algumas das principais funções são:
resolução de nomes: trata-se da principal funcionalidade do DNS, a tradução de
nomes de computadores para endereços IP. Computadores em redes Windows
200x fazem consultas aos servidores DNS contendo o nome do computador
que desejam localizar. A partir de então, os servidores DNS irão fazer buscas
em sua base de dados local ou consultar outros servidores DNS, e, caso a
resolução ocorra, retornará ao cliente o endereço IP referente ao computador
desejado;
O software Samba na integração de redes heterogêneas
28 / 101
convenção de nomes para domínios Windows 200x: o AD utiliza a convenção
de nomes do DNS para nomear os domínios Windows 200x. A rede
compartilha a mesma estrutura hierárquica de nomes para domínios DNS e
domínios do AD;
localização de componentes do AD: controladores de domínio podem ser
localizados por clientes que desejam se autenticar em um domínio ou realizar
buscas. O DNS armazenará informações de computadores que realizam
serviços de controle do domínio e daqueles que possuem uma cópia do
catálogo global.
A melhor configuração de DNS de um computador com o Windows 2000 ou
Windows Server 2003 deve apontar para o controlador de domínio do Windows 2000 ou
Windows Server 2003 que executa DNS.
Figura 3 - Funcionamento do DNS
O software Samba na integração de redes heterogêneas
4.4.
29 / 101
Domínios e grupos de trabalho do Windows
O Windows trabalha com duas implementações para redes: grupos de trabalho e
domínios.
Os grupos de trabalho são utilizados em redes onde não há um controlador de
domínio, já um domínio é formado por computadores que fazem parte de uma hierarquia de
nomes comuns.
O funcionamento dessas implementações será abordado nos tópicos a seguir.
4.4.1.
Grupos de trabalho
Os grupos de trabalho são criados para separar os usuários em grupos lógicos e
assim facilitar a administração da rede.
Um grupo de trabalho geralmente é composto por dois ou mais computadores
conectados, podendo ser chamada de rede ponto a ponto, já que as máquinas encontram-se em
um mesmo nível. Não há um controlador de domínio e questões envolvendo segurança e
autenticação são realizadas individualmente.
Os grupos de trabalho geralmente são utilizados em pequenas empresas, com
poucos computadores onde há a necessidade de se compartilhar recursos como impressoras ou
arquivos, mas não há a necessidade de se ter uma base para autenticação.
As máquinas que fazem parte de um grupo de trabalho compartilham seus
recursos utilizando bases locais de autenticação. Cada usuário que desejar acessar um recurso
em um servidor deverá ser validado nesse servidor, ou seja, cada servidor possui uma base
própria para autenticação dos usuários que quiserem acessar algum recurso.
Sendo assim, em uma rede formada por grupos de trabalho uma conta de usuário
pode conter várias senhas diferentes, já que cada conta está em uma base distinta.
A configuração para ingressar uma máquina em um grupo de trabalho é
extremamente simples como pode ser visto nas Figuras 4 e 5.
O software Samba na integração de redes heterogêneas
30 / 101
Figura 4 - Alteração do nome do computador
Acessando as propriedades do sistema do ícone meu computador e abrindo a aba
"Nome do computador" o usuário poderá renomear o seu computador e ingressá-lo em um
grupo de trabalho, bastando para isso clicar no botão "Alterar" que abrirá uma nova janela,
conforme mostra a Figura 5 aonde o usuário irá informa o nome do grupo de trabalho ao qual
irá fazer parte.
Figura 5 - Inclusão em um grupo de trabalho
O software Samba na integração de redes heterogêneas
4.2.1.
31 / 101
Domínios
Um domínio consiste em uma máquina central chamada de PDC (Primary
Domain Controller) que mantém o controle de todas as contas de grupos / usuários e
permissões para acesso à rede. Dessa forma o acesso é centralizado permitindo ao
administrador usar o nível de acesso por usuário nas máquinas definindo quais usuários /
grupos terão acesso aos recursos. O controlador de domínio possui as diretivas de segurança
onde os usuários se autenticam ao efetuarem o login.
Em um domínio um conjunto de máquinas faz parte de uma hierarquia bem
definida de nomes comuns, onde as máquinas são clientes ou servidores. A regra geral é que é
possível gerenciar um grupo de trabalho de até dez máquinas, a partir daí a utilização de um
domínio é recomendada.
Um administrador de domínio possui direitos e permissões administrativas apenas
em seu próprio domínio, a não ser que esses direitos e permissões sejam explicitamente
permitidos em outros domínios [MOC 2151, 2002].
Para que um domínio possa existir é preciso antes que haja um domínio raiz, ou
domínio pai. Esse domínio, criado abaixo do domínio pai irá herdar todas as características do
domínio anterior a ele.
Na Figura 6 há o domínio raiz e todos os outros domínios criados abaixo dele
herdarão o nome do pai sendo acrescentado como sufixo ao seu nome.
Figura 6 - Hierarquia entre domínios
O software Samba na integração de redes heterogêneas
32 / 101
Diferentemente do grupo de trabalho, em um domínio o usuário realiza uma
autenticação única, pois a conta de usuário está centralizada na máquina que será o
controlador do domínio, o usuário pode então, se autenticar em qualquer máquina do domínio
e obter acesso aos recursos da rede.
Em cada domínio há um identificador de segurança chamado de SID (Security
Identifier). Cada usuário ou grupo recebe um identificador único. Esse identificador é gerado
com base na combinação do SID com um RID (Relative Identifier), a partir do identificador
gerado podem ser criadas listas de controle de acesso aos recursos. Assim, todas as máquinas,
usuários e grupos do domínio sempre estarão inseridos em um mesmo contexto de segurança
(ou mesmo SID de domínio) [TS, ECKSTEIN e COLLIER-BROWN, 2003].
Em redes Windows que utilizam domínios há dois tipos de servidores:
Controladores de Domínio (Domain Controller – DC) e Servidor Membro do Domínio
(Domain Member Server).
Nos tópicos a seguir será abordado o funcionamento de cada um deles.
4.4.2.1 Controladores de Domínio (Domain Controllers)
O DC é uma máquina que possui uma cópia do banco de dados do diretório e fornece o
gerenciamento seguro de contas para computadores e usuários do domínio. São eles os
responsáveis pelas alterações nas informações do diretório e pela replicação dessas
informações para outros controladores de domínio.
As informações referentes às contas de usuários e de máquinas do domínio ficam
armazenadas no controlador de domínio, essa base é conhecida como SAM (Security Account
Manager). É utilizando essa base que os controladores de domínio realizam o processo de
autenticação de usuários e máquinas do domínio [MOC 2151, 2002].
Para ter acesso aos recursos de um domínio o usuário solicita autenticação ao
controlador de domínio da rede a qual pertence.
O controlador verifica suas permissões e o autentica, a partir daí o usuário poderá
O software Samba na integração de redes heterogêneas
33 / 101
acessar os recursos do seu domínio conforme mostra a Figura 7.
Figura 7 - Controlador de domínio
No Windows NT4 há o conceito de PDC – Primary Domain Controller e BDC –
Backup Domain Controller.
O PDC é a máquina responsável pelo controle de todas as contas de usuários,
grupos e permissões para acesso à rede e possui a base de dados SAM, referenciada
anteriormente. Ele armazena as informações dos usuários e faz a autenticação dos mesmos.
Enquanto que o BDC é uma cópia, com permissão de somente leitura, do PDC. Nas redes
onde há PDC's e BDC's as requisições de autenticação são repassadas aos BDC's
preferencialmente.
Estes dois conceitos eram utilizados no Windows NT 4.0 a partir dos servidores
Windows 200x não há mais uma distinção entre PDC e BDC, agora todos os controladores de
domínio armazenam uma cópia do Active Directory que pode ser modificada.
4.4.2.2. Servidor Membro (Member Server)
Um servidor membro é uma máquina que não possui responsabilidades como o
controlador de domínio como, por exemplo, não processa logon nem armazena informações
sobre a política de segurança do domino, mas realiza uma grande variedade de funções como:
O software Samba na integração de redes heterogêneas
34 / 101
Servidor de arquivos;
Servidor de aplicações;
Servidor de banco de dados;
Servidor de web;
Servidor de firewalls;
Servidor de acesso remoto.
Os servidores membros possuem recursos relacionados à segurança que são
comuns a todos os servidores membro, entre eles:
Aderência às configurações da política de grupo que são definidas para o
domínio;
Controle de acesso para os recursos que estão disponíveis em um servidor
membro;
Banco de dados da conta de segurança local.
4.5.
AD – Active Directory
Active Directory (Diretório Ativo) é um serviço diretório que permite que as
informações sobre os recursos da rede sejam centralizadas, facilitando o gerenciamento para
os administradores e o aceso para todos os usuários que dela se utilizam. Foi lançado com o
Windows 2000 Server em sua primeira versão e possibilitou melhorias na administração do
Windows Server 2003.
O seu principal objetivo consiste em fornecer serviços centrais, autenticação e
autorização para computadores baseados em Windows, também permite que os
administradores possam atribuir políticas, implantar softwares, e aplicar as atualizações
críticas para uma organização e armazenar informações e definições em uma base de dados
central. O Active Directory pode variar de uma pequena instalação com algumas centenas de
objetos, a uma grande instalação com milhões de objetos.
A segurança é feita por meio da autenticação do logon e do controle de acesso aos
objetos no diretório. O administrador da rede faz o gerenciamento, a organização e o controle
dos dados de diretório apenas com um único logon, da mesma forma os usuários autorizados
podem acessar seus recursos a partir de qualquer host bastando para isso fornecer login e
senha uma única vez. O gerenciamento, até mesmo das redes mais complexas, é facilitado
pelo uso das diretivas utilizadas pelo AD. [RODRIGUES, 2007]
O software Samba na integração de redes heterogêneas
35 / 101
O AD no Windows Server 2003 também inclui:
um esquema, ou seja, um conjunto de regras onde são definidas as classes de
objetos e atributos que fazem parte do diretório, assim como as restrições
desses objetos e a forma como os seus nomes serão apresentados;
um catálogo global com as informações de cada objeto presente no diretório,
permitindo assim, que usuários e administradores possam encontrar
informações sobre um diretório independentemente de onde esteja localizada
esta informação, que pode estar no domínio do diretório onde a pesquisa está
sendo feita ou não;
os usuários ou aplicativos da rede podem encontrar objetos ou aplicativos
através de uma consulta que exibe os objetos e suas propriedades;
um serviço de replicação onde os dados de um diretório são distribuídos na
rede e assim os controladores de domínio de um domínio participam da
replicação de modo que possuem uma cópia com as informações referentes ao
seu domínio e as alterações que ocorrem nos dados é replicada para os outros
controladores de domínio.
Com ele é possível armazenar de maneira centralizada informações referentes à
organização, ou aos domínios que representam a organização, proporcionando aos
administradores a comodidade de gerenciamento da rede através de uma única localidade.
Cada componente da rede é representado por um objeto no Active Directory.
Esses objetos podem ser uma máquina cliente, um servidor, uma conta de usuário e assim por
diante.
O AD permite que os controles de objetos específicos, como usuários e
computadores, possam ser delegados a outros usuários e administradores. Isso possibilita a
divisão de tarefas administrativas, sem que todos os envolvidos tenham acesso completo e
irrestrito a todos os recursos da rede.
Na Figura 8 é apresentada a tela de autenticação do usuário no AD.
O software Samba na integração de redes heterogêneas
36 / 101
Figura 8 - Autenticação de usuários no AD
4.5.1.
Árvores e florestas
O Active Directory trabalha com o conceito de árvores e florestas. Árvore é uma
estrutura hierárquica de um ou mais domínios. Ela é criada quando um domínio é criado,
sendo que o nome dado à árvore é o mesmo nome dado ao domínio.
Os domínios em uma árvore se comunicam através da relação de confiança
transitiva bidirecional, que será vista mais adiante.
A floresta é um grupo composto por uma ou mais árvores e provê recursos de
segurança, convenções e confiança. Elas são criadas para organizar as árvores e manter os
esquemas separados.
4.5.2.
Relação de Confiança
A comunicação entre domínios ocorre através de relações de confiança que é
estabelecida para permitir que os usuários de um domínio sejam autenticados pelo controlador
de domínio do outro domínio.
O software Samba na integração de redes heterogêneas
37 / 101
4.5.2.1. Tipos de relação de confiança
Por padrão, quando um novo domínio é adicionado a uma árvore de um domínio
ou raiz de floresta, a relação de confiança criada é chamada de transitiva bidirecional. Mas
existem quatro tipos de relação que podem ser criados, de acordo com as necessidades dos
usuários. Elas podem ser classificadas de acordo com a transitividade em: transitiva ou não
transitiva, e também podem ser classificadas de acordo com a direção em: unidirecional ou
bidirecional.
Uma relação de confiança transitiva significa que, ao se estabelecer uma relação
de confiança com um domínio, todos os demais domínios que possuem confiança com esse
também passarão a confiar no domínio que está sendo confiado.
A Figura 9 demonstra como a relação de confiança transitiva funciona.
Figura 9 - Relação de confiança transitiva
Com relação à direção, as relações podem ser unidirecionais, onde um domínio é
confiante e o outro é um domínio confiado, ou bidirecionais, onde ambos os domínios são
confiantes e confiados [MOC 2151, 2002].
A Figura 10 representa os tipos de direção de uma relação de confiança.
O software Samba na integração de redes heterogêneas
38 / 101
Figura 10 - Confiança unidirecional e bidirecional
O Active Directory provê segurança envolvendo múltiplos domínios através de
relações de confiança entre domínios, baseando-se no protocolo de segurança Kerberos versão
5 que será visto mais adiante.[MOC 2151, 2002].
4.5.2.2. Relação de confiança no Windows Server 2003
Todas as relações de confiança do Windows 2000 e Windows 2003 Server são do
tipo transitiva bidirecionais. Logo, os dois domínios da relação são confiáveis. Conforme
mostra a Figura 11 se o domínio A confiar no domínio B e o domínio B confiar no domínio C,
então os usuários do domínio C podem acessar os recursos do domínio A.
O software Samba na integração de redes heterogêneas
39 / 101
Figura 11 - Estrutura de domínios do Windows
Um controlador de domínio executando em Windows Server 2003 autentica seus
usuários através do protocolo Kerberos. O cliente solicita ao controlador de domínio da conta
uma permissão para o servidor no domínio confiante, ou seja, o domínio que tem o recurso ao
qual o usuário deseja obter acesso, essa permissão é emitida por um intermediário de
confiança do cliente e do servidor. O cliente então, apresenta essa permissão ao servidor de
domínio para que seja autenticada.
Ao tentar o acesso, o computador do usuário se comunica com o controlador do
seu domínio. Se o recurso desejado não estiver disponível naquele domínio, o controlador de
domínio irá se comunicar, através da relação de confiança, utilizando o protocolo Kerberos,
com o controlador do domínio confiado [MOC 2151, 2002].
4.6.
Protocolo Kerberos
Esse protocolo foi desenvolvido pelo MIT (Massachusetts Institute of
Technology) na década de 80 e tem por objetivo garantir uma autenticação segura entre
aplicações do tipo cliente/servidor.
Para prover essa autenticação segura este protocolo utiliza três servidores, o que o
faz ser classificado como um sistema de autenticação distribuído[ALBUQUERQUE, 2003].
Os servidores são:
Servidor de Autenticação (SA) – responsável pela autenticação propriamente
dita. Ele recebe um pedido do usuário e verifica a autenticidade do mesmo, se
O software Samba na integração de redes heterogêneas
40 / 101
for um usuário válido será emitido um ticket e uma chave de sessão, o que irá
permitir que o usuário continue seu processo de autenticação;
Servidor de concessão de tickets (TGS) – é o servidor responsável por fornecer
o ticket para cada serviço disponível;
Servidor de administração (KADM) – é o responsável por controlar a chave
secreta que é gerada quando o usuário fornece o login e a senha. Estes dados
são criptografados e se tornam a chave secreta do mesmo.
Explicando alguns termos do Kerberos:
Ticket – é uma espécie de certificado criptografado com a chave secreta do
usuário e serve para informar a identidade do usuário para quem o ticket foi
concedido;
Chave de sessão – é uma chave gerada pelo Kerberos cujo objetivo é autenticar
uma conexão feita e tem duração pré-determinada.
O Kerberos trata a rede dividindo-a em domínios chamados de realms onde cada
realm tem seu próprio servidor de autenticação, isso permite uma divisão hierárquica dos
realms possibilitando a definição de diferentes níveis de segurança.
O funcionamento básico do Kerberos ocorre da seguinte maneira: ao fornecer o
login e a senha na máquina cliente será aplicada uma criptografia nesses dados e uma chave
secreta será gerada nessa máquina, após esse processo, a máquina cliente envia ao SA uma
solicitação de serviço, o SA irá verificar se aquele cliente está cadastrado em sua base, se
estiver ele retorna uma mensagem A contendo a chave de sessão e uma mensagem B
contendo o ticket
de concessão do cliente. De posse dessas duas mensagens o cliente
descriptografa a mensagem A e obtém sua chave de sessão, que será utilizada em outras
conexões. Agora o cliente tem as informações suficientes para se autenticar no TGS e irá
enviar duas mensagens, uma composta do seu ticket e do ID do serviço solicitado e outra
composta pelo identificador. O TGS enviará outras duas respostas ao cliente, uma contendo o
ticket cliente para servidor e outra contendo a chave de sessão cliente-servidor. O cliente pode
então se autenticar no SA, que recebe uma mensagem com o novo ticket do cliente e um novo
identificador, se as informações estiverem corretas e atualizadas o cliente pode então, solicitar
os serviços que deseja.
O software Samba na integração de redes heterogêneas
4.7.
41 / 101
DNS e Active Directory
DNS é o backbone do Active Directory e o principal mecanismo de resolução de
nomes do Windows 2000 e Windows Server 2003. Os controladores de domínio do Windows
2000 e Windows Server 2003 registram dinamicamente informações sobre eles próprios e
sobre o Active Directory no DNS. Outros controladores de domínio do Windows 2000 e
Windows Server 2003, servidores e estações de trabalho que fazem parte do domínio
consultam o DNS para encontrar informações relacionadas ao Active Directory. Se o DNS
não estiver configurado corretamente, podem ocorrer problemas de domínio amplo, como
replicação entre controladores de domínio.
Estes mecanismos de integração permitem que os computadores de domínios AD
utilizem o DNS para localizar computadores que fornecem serviços relacionados ao AD. Um
exemplo dessa utilização é o processo de login, para tal o usuário realizará uma busca nos
servidores DNS para localizar o controlador do domínio.
O software Samba na integração de redes heterogêneas
5.
42 / 101
SAMBA
Com a disseminação do software livre muitas empresas se utilizam destes
produtos devido ao custo ser inexistente e à possibilidade que eles oferecem de serem
configurados conforme a necessidade do usuário. Desse modo, por algum tempo a rede da
empresa apresenta um ambiente heterogêneo, e para fazer com que esses sistemas se
comuniquem existem aplicações que fazem essa integração e um deles é o Samba, que
permite que os ambientes heterogêneos interajam de forma satisfatória.
Este capítulo irá mostrar um pouco da história do Samba, os protocolos que ele
utiliza, o seu arquivo de configuração e os serviços que ele dispõe para compartilhamento de
recursos e autenticação de usuários.
5.1.
Um pouco da história do Samba
Samba é um software livre que desde 1992, quando foi lançado, permite o
compartilhamento de serviços para clientes que utilizam máquinas com o sistema operacional
Windows.
Ele funciona como um servidor para Linux, ou sistemas baseados na arquitetura
Unix. Ele pode funcionar como servidor de arquivos e de impressão permitindo a autenticação
de usuários Linux fazendo com que eles se apresentem como se fossem usuários Windows na
rede permitindo assim a integração das redes heterogêneas, com o Samba as máquinas Linux
são vistas como unidades lógicas para os usuários Windows.
O Samba nasceu da necessidade do seu criador, Andrew Tridgell, de integrar um
servidor rodando Unix com uma máquina rodando MS-DOS. Na época o DOS utilizava o
sistema de arquivos NFS, mas esse problema foi resolvido facilmente visto que ele possuía
uma versão do NFS que permitia que a máquina que usava o DOS acessasse os arquivos que
estavam no servidor Unix. O maior problema surgiu porque Tridgell tinha uma aplicação que
precisava da interface NetBIOS, na época a Microsoft utilizava o SMB, que era o protocolo
utilizado para compartilhamento de recursos, mas a especificação desse protocolo não era
pública, então foi preciso que Tridgell utilizasse um software de análise de rede (sniffer) e
aplicasse engenharia reversa no protocolo para decifrar o modo de funcionamento do SMB.
Após decifrar o modo de operação do protocolo SMB, Tridgell fez a implementação do
O software Samba na integração de redes heterogêneas
43 / 101
mesmo na sua máquina Unix, dessa forma o Unix aparecia na rede como um servidor de
arquivos Windows.
O código foi publicado em 1992 e logo depois posto de lado. Dois anos depois a
Microsoft disponibilizou a arquitetura NetBIOS e a especificação do protocolo SMB e com
essas informações Andrew pode retomar o projeto. [ALECRIM, 2005]
Vindo de uma necessidade pessoal, o Samba é atualmente fundamental para a
integração de ambientes mistos, de pequenos grupos de trabalho a grandes domínios. O
projeto conta com a colaboração de vários desenvolvedores espalhados pelo mundo e a
maioria dos sistemas Unix já incluem o Samba em suas distribuições.
As versões anteriores e a versão utilizada para o desenvolvimento deste projeto
são baseadas nas funcionalidades do Windows NT, mas as funcionalidades do Windows 200x
vêm sendo incorporadas ao serviço.
Hoje o Samba é quase que cem por cento compatível com os recursos de rede do
Windows, e é reconhecido por ser mais rápido que o Windows na tarefa de servidor de
arquivos.
As Informações e o download referentes a esse poderoso software podem ser
encontradas no site http://us3.samba.org/samba/, bem como o guia oficial e a documentação a
respeito do mesmo.
5.2.
O protocolo SMB / CIFS no Samba
A integração do Linux com o Windows é possível graças ao protocolo SMB/CIFS
(Server Message Block / Common Internet File System). De acordo com o modelo OSI esse
protocolo pertence à camada de aplicação e o seu uso se destina ao compartilhamento de
arquivos em uma LAN.
Os usuários podem manipular seus arquivos como se estes estivessem em sua
máquina local e o gerenciamento dessas funcionalidades é feito pelo protocolo SMB/CIFS
que foi desenvolvido inicialmente pela IBM e se chamava apenas SMB, mas a Microsoft
adicionou funcionalidades e atualmente ele é conhecido como SMB/CIFS. O protocolo então,
é formado a partir de uma junção do protocolo NetBIOS (Network Basic Input Output
System) da IBM com o DOS (Disk Operatin System) da Microsoft que implementava um
protocolo de compartilhamento sobre NetBIOS. Entre os serviços oferecidos pelo SMB/CIFS
e suportados pelo Samba encontram-se:
O software Samba na integração de redes heterogêneas
Compartilhamento de arquivos;
Compartilhamento de impressoras;
Autenticação e
Resolução de nomes.
44 / 101
O protocolo SMB/CIFS permite a comunicação e compartilhamento de recursos
via rede através do TC/IP, onde três tipos de pacotes são utilizados:
UDP/137: resolução de nomes e registro de tráfego;
UDP/138: browsing e anúncio de tráfego e
TCP/139: compartilhamento de arquivos.
O SMB é um protocolo cliente-servidor do tipo pedido-resposta onde o cliente
envia uma requisição ao servidor e este lhe devolve uma resposta como mostra a Figura 12.
[MAYER, FRIES e BAÚ, 2004]
Figura 12 - Funcionamento básico do protocolo SMB
5.3.
Funcionamento básico do Samba
O servidor Samba trabalha com dois daemons principais que são o smbd e o
nmbd. O primeiro é o responsável pelo compartilhamento de arquivos e impressoras e o
segundo pela resolução de nomes.
O software Samba na integração de redes heterogêneas
45 / 101
Outro daemon utilizado pelo Samba é o winbind que possibilita que o Samba
autentique usuários em outros servidores, sendo eles Windows ou Linux.
5.3.1.
Smbd
O daemon smbd é o responsável por gerenciar os recursos compartilhados da
rede. Através da porta TCP/139 ele ouve todas as requisições dos clientes e gera um processo
para cada cliente conectado.
Por meio do seu arquivo de configuração (smb.conf) e dos dados obtidos pelo
smbd o Samba fornece ao cliente informações sobre o espaço disponível em disco e referentes
ao serviço de impressão.
5.3.2.
Nmbd
Esse daemon é o primeiro serviço que dever ser inicializado no momento em que
os serviços do Samba são inicializados.
É o responsável pelo serviço de nomes NetBIOS e WINS, browsing e registro do
Samba. O nmbd faz o registro da requisição de nomes e traduz esses nomes para os seus
respectivos IP's em resposta à requisição do cliente. Já o Browsing é uma combinação de
protocolos de publicação, serviço de anúncio e diretório ativo. Esse protocolo fornece um
diretório dinâmico dos serviços, discos e impressoras que o servidor está disponibilizando. O
nmbd, quando ativo, responde às requisições do protocolo de browsing utilizado pelo
ambiente de rede Windows.
5.3.3.
Winbind
O winbind é um daemon que deve ser inicializado junto com o Samba quando este
for membro de um domínio em que o Windows funciona como o controlador de domínio
(PDC). Ele também é necessário quando o Samba estabelece uma relação de confiança com
outros domínios.
Esse daemon irá checar o arquivo de configuração do Samba para encontrar os
parâmetros idmap uid e idmap gid. Se eles não forem encontrados o winbind irá recusar a
O software Samba na integração de redes heterogêneas
46 / 101
conexão.
Se o winbind estiver ativo, então a administração das contas de usuários, como
alteração de senhas do usuário, é feita no Windows PDC, não sendo necessário fazer o
gerenciamento no Unix.
5.4.
Smb.conf
Uma das facilidades de utilização do Samba está em seu arquivo de configuração.
É nele que estão todas as informações que serão utilizadas pelo conjunto de programas do
Samba. Originalmente ele se encontra em /etc/samba/smb.conf e é composto por seções e
parâmetros que devem ser configurados de acordo com as necessidades da rede. Ele pode ser
editado e configurado através de simples editores de texto ou através de ferramentas gráficas
destinadas a este uso especifico, como é o caso do SWAT. [MORIMOTO, 2006]
5.4.1.
Seções
O arquivo é dividido em seções que tem o objetivo de organizar os parâmetros de
configuração e facilitar a sua manipulação, assim as alterações só terão efeito em alguns
compartilhamentos do servidor, excetuando-se apenas a seção global onde ficam as principais
configurações para o funcionamento do Samba.
Alguns nomes são como palavras reservadas em uma linguagem de programação
e servem para configurações específicas do Samba. São elas:
[global] – define as configurações gerais do servidor fazendo efeito em todos
os compartilhamentos da máquina;
[homes] – disponibiliza o diretório home do usuário conectado ao servidor;
[netlogon] – contém as configurações para a execução de scripts quando um
usuário efetua logon num domínio especificado;
[printers] – define as opções para controle das impressoras conectadas ao
O software Samba na integração de redes heterogêneas
47 / 101
sistema e faz o mapeamento das mesmas.
Qualquer outra seção pode ser definida, bastando para isso, colocá-la entre
colchetes e utilizar os parâmetros adequados. Os caracteres "#" e ";" são utilizados para
indicar que a linha corrente é de comentário e será portanto ignorada.
5.4.2.
Parâmetros
Os parâmetros são definidos como <nome do parâmetro> = <valor> onde valor
pode ser representado por 0 ou 1; yes ou no; true ou false ficando a critério do administrador
qual padrão será utilizado para a configuração do arquivo.
Os principais parâmetros da seção global são:
workgroup – define o nome do grupo de trabalho ou do domínio de rede
Windows que o Samba faz parte;
netbios name – é o nome NetBIOS da máquina na rede ;
security – esse parâmetro define o nível de segurança que o servidor irá operar
e autenticar o acesso aos usuários. Este parâmetro pode ser:
o Server: define onde o servidor irá autenticar o usuário: se num servidor
Windows NT, 2000 ou Samba e se a operação falhar ele deverá fazer a
autenticação na base local;
o User: esta é a opção padrão. Para que o usuário possa se autenticar ele
deve antes possuir uma conta no Linux e caso seja autenticado terá
acesso a todos os recursos que lhe forem permitidos não necessitando
fornecer login e senha novamente;
o Domain: determina que os usuários serão autenticados em um servidor
de domínio primário que irá definir os níveis de acesso e os recursos
disponíveis.
o Share: aqui a permissão é definida de acordo com o compartilhamento,
para acesso a arquivos e impressão. Se esta opção for escolhida será
O software Samba na integração de redes heterogêneas
48 / 101
verificado se o usuário tem permissão suficiente para acessar arquivos,
e se for o caso imprimir.
o Ads: se este parâmetro estiver setado significa que o Samba faz parte de
um domínio controlado pelo Active Directory que será o responsável
pela autenticação dos usuários.
Unix password sync – este parâmetro sincroniza as senhas do Linux e do
Samba;
Domain master – caso este parâmetro esteja ativo indica que o servidor será o
navegador principal do domínio;
Local master – se ativo, indica que o servidor será o navegador principal do
seu grupo de trabalho;
Preferred master – quando ativo indica que o servidor terá preferência em ser o
navegador principal do domínio;
Encrypt passwords – indica que as senhas do Samba devem ser criptografadas
quando estiver ativo;
Smb passwd file – arquivo que armazena as senhas dos usuários do Samba.
Abaixo segue a configuração do arquivo smb.conf utilizado neste projeto:
#=========== Global Settings ==================
[global]
# domínio do servidor que utilizará o Samba
workgroup = PROJ
# comment = servidor Samba
# server string = smb-srv
server string = clarice
O software Samba na integração de redes heterogêneas
49 / 101
netBios name = clarice
username map = /etc/Samba/smbusers
# security = user
security = ads
os level = 60
# domain logons = yes
# logon script = logonScript.bat
# logon path =
# logon drive =
# logon home =
# criação da conta de relação de confiança
password server = sol.proj.com.br
realm = PROJ.COM.BR
# winbind separator = +
template shell = /bin/bash
# cria uma home para cara usuário no diretório home, é necessário criar uma para
cada nome de usuário
template homedir = /home/%U
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind cache time = 14400
# winbind uid = 10000-20000
# winbind gid = 10000-20000
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
#
#
#
#
#
opções principais para que ele atue como PDC
domain master = yes
local master = yes
preferred master = yes
wins support = yes
encrypt passwords = true
# smb passwd file= /etc/Samba/smbpasswd
# log file = /var/log/Samba_log.%m
log file = /var/log/Samba/%m.log
null passwords = no
unix password sync = yes
socket options = IPTOS_LOWDELAY TCP_NODELAY
#========= Configurações para o LDAP =============
passdb backend = ldapsam:ldap://127.0.0.1
ldap passwd sync = yes
ldap delete dn = Yes
ldap admin dn = cn=root,dc=proj,dc=com,dc=br
ldap suffix = dc=proj,dc=com,dc=br
ldap machine suffix = ou=Computadores
ldap user suffix = ou=Usuarios
O software Samba na integração de redes heterogêneas
50 / 101
ldap group suffix = ou=Grupos
ldap idmap suffix = SambaDomainName=Linux
idmap backend = ldap:ldap://127.0.0.1
idmap uid = 10000-20000
idmap gid = 10000-20000
#=========== Compartilhamento de Diretórios ===============
[homes]
comment = Pastas dos Usuários
public = no
browseable = no
writeable = yes
[netlogon]
# Caminho para os scripts de logon
comment = Scripts
path = /home/Samba/netlogon/logonScript.bat
public = yes
browseable = yes
writeable = no
[Profiles]
comment = Network User Profiles
path = /home/profiles
read only = no
create mask = 0700
directory mask = 0700
[Diretório Compartilhado]
comment = documentos
path = /home/Samba/netlogon/logonScript.bat
browseable = yes
valid users = @Usuarios
writeable = yes
write list = @users
force create mode = 0770
force directory mode = 0770
5.5.
Bases de autenticação utilizadas pelo Samba
O Samba necessita manter várias bases de consulta de informações de usuários.
Dentre essas informações as contas de usuário assumem papel relevante. Essas contas devem
conter:
O software Samba na integração de redes heterogêneas
51 / 101
O nome do usuário;
A senha do usuário (que é armazenada em dois tipos de cifragem distintos);
O login script do usuário;
O nome completo do usuário;
A descrição da conta;
As estações de trabalho que o usuário pode utilizar;
Tipo de conta (se usuário ou máquina);
Políticas da conta;
O System Identifier (SID) do usuário;
O SID do grupo primário do usuário;
A localização da home directory;
A localização do profile path e
A letra de drive a ser mapeada para a home directory.
Até a versão 3.0 o Samba utilizava para guardar essas informações o arquivo
smbpasswd. Para cada usuário esse arquivo continha apenas o nome, o identificador Unix, o
tipo de conta e as senhas, os outros parâmetros eram iguais para todos os usuários. Já nas
O software Samba na integração de redes heterogêneas
52 / 101
versões posteriores, além do smbpasswd outras formas de armazenamento são suportadas,
dentre elas PlainText, TDB, MySQL, Pgsqlsam e LDAP. Essas formas suportam todos os
campos necessários a uma conta de usuário de domínio Windows sem as limitações do
smbpasswd. A Figura 13 mostra as bases de autenticação utilizadas. [MOREIRA, 2003]
Figura 13 - Bases de autenticação utilizadas pelo Samba
A seguir serão descritas as bases smbpasswd e LDAP.
5.5.1.
Smbpasswd
O Samba armazena as senhas criptografadas dos seus usuários em um arquivo
chamado smbpasswd, que por padrão fica no diretório /usr/local/Samba/private. Esse arquivo
deve ser guardado tão secretamente quanto o arquivo passwd e apenas o usuário root, com
permissão de leitura e escrita, deve ter acesso a ele, não permitindo acesso total a nenhum
outro usuário.
Antes de se usar senhas criptografadas é necessário criar uma entrada para cada
usuário Unix no arquivo smbpasswd que tem estrutura similar ao arquivo passwd, mas com
campos diferentes. Abaixo será feita uma breve descrição dos campos desse arquivo.
Username: é o nome da conta, que é obtido diretamente do arquivo passwd.
O software Samba na integração de redes heterogêneas
53 / 101
UID: esse é o identificador da conta do usuário, também obtido do arquivo
passwd.
LAN manager password hash: essa é uma seqüência hexadecimal que
representa as senhas dos usuários Windows 95 e 98.
NT password hash: representa uma seqüência hexadecimal das senhas de
usuários de Windows NT.
Account flags: esse campo é formado por onze caracteres entre colchetes. O
parâmetro U indica que é uma conta de usuário comum; D indica que o usuário
está desabilitado e o Samba não irá permitir o logon; N indica que a conta não
possui senha associada a ela e W indica que uma conta de relação de confiança
pode será criada fazendo com que o Samba se torne o controlador de domínio
primário (PDC), permitindo que máquinas do domínio Windows NT sejam
adicionadas ao domínio Samba.
5.5.2.
LDAP
LDAP (Lightweight Directory Access Protocol) como o nome diz, significa que
se trata de um protocolo leve para acesso a diretórios. O LDAP foi projetado para ser
amplamente escalável e também para ser utilizado por um grande numero de áreas de
aplicação contendo diversas plataformas e sistemas operacionais conforme mostra a Figura
14:
O software Samba na integração de redes heterogêneas
54 / 101
Figura 14 - Plataformas que utilizam LDAP
O termo diretório normalmente está relacionado às pastas de um disco rígido, mas
no contexto do LDAP significa que se trata de uma base de dados especializada definida de
forma hierárquica otimizando as consultas, possibilitando uma resposta rápida a um enorme
volume de buscas e onde estão armazenadas informações estáticas de objetos, onde esses
objetos podem ser pessoas, organizações, servidores de e-mail entre outras possibilidades.
O modelo de informações do LDAP é baseado em entradas. Uma entrada é uma
coleção de atributos que tem forma geral e um nome distinto que serão tratados mais adiante.
Essas entradas dos diretórios são organizadas em uma estrutura de árvore como mostra a
Figura 15.
O software Samba na integração de redes heterogêneas
55 / 101
Figura 15 - Árvore de diretórios do LDAP
Esta árvore também pode ser organizada sob o domínio de nomes da Internet
(DNS) como mostrado na Figura 16.
Figura 16 - LDAP com base de nomes
O software Samba na integração de redes heterogêneas
56 / 101
Todos os objetos no LDAP possuem um nome distinto, que identifica onde está o
objeto e um nome completo que indica onde o objeto pode ser encontrado. A Tabela 1
demonstra cada componente de um nome distinto. [GOUVEIA, 2005]
Chave
Atributo
Descrição
Domain Component
DC
OU
Um componente do nome DNS do domínio, por
de exemplo “com”. No exemplo DC=empresa,DC=com o
(Componente
Domínio)
nome DNS representado seria “empresa.com”.
Organizational Unit
Uma unidade organizacional que pode ser usada para
(Unidade
agrupar outros objetos.
Organizacional)
CN
Common Name
Quaisquer demais objetos que não sejam encaixados
(Nome comum)
nos dois casos anteriores. Podem definir objetos de
usuários e computadores.
Tabela 1 - Componentes de um nome distinto
A configuração do LDAP é feita através do arquivo slapd.conf que permite
adicionar, eliminar, alterar ou pesquisar a informação alocada no servidor LDAP.
O LDAP vem sendo cada vez mais utilizado por administradores de redes, pois
uma de suas vantagens é centralizar as informações diminuindo os dados duplicados, alem de
ser código aberto.
5.6.
Samba e domínios
Como no Windows, o Samba também permite que os seus recursos estejam
disponíveis em grupos de trabalho ou em domínios bastando para isso configurá-lo de acordo
com o perfil desejado.
Um grupo de trabalho é caracterizado por um grupo específico de usuários. Esses
grupos terão acesso exclusivo aos recursos a eles disponibilizados independentes uns dos
outros. Já o domínio é semelhante ao grupo de trabalho, diferenciando-se pelo controle que é
exercido por uma máquina PDC onde atuam as diretivas de acesso e controle. É nessa
máquina que estão as contas de acesso que serão utilizadas pelo usuário para acessar os
recursos existentes em outras máquinas e os scripts de logon entre outras tarefas definidas
pelo administrador.
O software Samba na integração de redes heterogêneas
5.6.1.
57 / 101
O Samba como PDC
O PDC (Primary Domain Controller) é a máquina responsável pelo controle de
todas as contas de usuários, grupos e permissões para acesso à rede. Ele armazena as
informações dos usuários e faz a autenticação dos mesmos. Há também o BDC (Backup
Domain Controller) que é uma cópia do PDC.
O Samba pode atuar como um PDC em uma rede utilizando características
similares às redes controladas por servidores Windows NT, ou seja, utilizando o conceito de
PDC e BDC, mas não é capaz de atuar como um servidor AD (Active Directory), porém
existem esforços para que essa funcionalidade seja implementada e disponibilizada no futuro.
Para que o Samba se torne o PDC é necessário que as seguintes opções estejam
ativas na seção [global] do arquivo smb.conf:
# Opções principais para se tornar o PDC
domain master = yes
local master = yes
preferred master = yes
encrypt passwords = yes
5.6.2.
Navegador mestre local (local Master Browser)
Quando uma máquina acessa uma rede NetBIOS ela pergunta quem é o
navegador mestre local, que é o responsável por manter uma lista das máquinas presentes na
rede, caso nenhuma máquina responda ela irá forçar uma eleição através de uma requisição de
broadcasting e vence a eleição que tiver o maior número de OS level que nada mais é que o
número do nível do sistema operacional e varia entre 0 e 255. A Tabela 2 mostra os níveis de
sistema operacional das versões de sistemas da Microsoft, bem como o OS level do Samba.
O software Samba na integração de redes heterogêneas
58 / 101
Sistema Operacional
Nível
Windows for WorkGroups
1
Windows 95
1
Windows 98
2
Windows NT WS 3.51
16
Windows 2000 Professional
16
Windows 2000 Server (StandAlone)
16
Windows NT WS 4.0
17
Windows Server 3.51
32
Windows 2000 Server (Domain Controller)
32
Samba
32
Windows NT Server 4.0
33
Tabela 2 - Níveis do sistema operacional Windows
O valor padrão do OS level do Samba é 32, mas esse número é flexível, podendo
ser configurado no arquivo smb.conf fazendo com que o Samba sempre vença as eleições e se
torne o Navegador mestre local da rede. [SILVA, 2007]
Após ser declarada como Local Master Browser a máquina recebe via
broadcasting a lista de recursos compartilhados por cada máquina e a partir dela será montada
uma lista principal que será enviada as outras máquinas do grupo de trabalho ou outras subredes que solicitem recursos compartilhados por aqueles grupos.
É interessante notar que o Windows NT não aceita perder a eleição mesmo que o
Samba esteja com um OS level superior, sendo assim ele solicita uma nova eleição causando
grande tráfego de informações broadcast na rede. Para que isso não aconteça é necessário que
o recurso de participação em tais eleições esteja desativado no servidor onde o Windows está
funcionando.
O software Samba na integração de redes heterogêneas
59 / 101
As eleições são feitas a cada trinta minutos ou quando a máquina que está como
local master browser é desligada.
5.6.3. Navegador mestre de domínio (Domain Master Browser)
Depois que o navegador mestre local é eleito é feita uma consulta ao servidor
WINS para saber quem é o navegador mestre daquele domínio. Depois de obter uma resposta
o navegador mestre local envia pacotes UDP para a porta 138, por onde passam as requisições
de browsing do navegador mestre de domínio, este então responde solicitando a lista das
máquinas que o Local Master Browser conhece e o registra como navegador mestre local para
aquele segmento de rede.
Se uma rede for composta por vários domínios, cada um deles deve possuir o seu
próprio navegador mestre de domínio, e é importante ter em mente que em um domínio só
deve haver um único navegador mestre de domínio.
5.7.
Métodos de resolução de nomes utilizados pelo Samba
Este tópico irá abordar quais os métodos de resolução de nomes utilizados pelo
Samba. Serão apresentados pela ordem de prioridade: do mais recomendável para o menos
recomendável:
lmhosts: a pesquisa é feita primeiro em /etc/Samba/lmhosts que é um banco de
dados que mapeia o endereço IP com o nome NetBIOS da máquina. É útil
quando segmentos de rede estão separados e não há, entre os dois pontos, um
servidor WINS para fazer a resolução dos nomes, por exemplo;
host: é feita uma pesquisa no arquivo /etc/host e no DNS;
WINS: aqui a resolução de nomes é feita consultando-se diretamente o WINS
ao invés de fazer broadcasting que gera muito tráfego na rede;
O software Samba na integração de redes heterogêneas
60 / 101
bcast: nesse método é enviado um pacote com o endereço de broadcast da
rede, devendo ser evitado pois gera tráfego excessivo na rede.
A ordem em que os métodos serão utilizados é definida no arquivo de
configuração do Samba, o smb.conf.
O software Samba na integração de redes heterogêneas
6.
61 / 101
SOLUCÃO PROPOSTA
Após a realização das simulações verificou-se que o software Samba é uma
ferramenta poderosa para integração de redes que utilizam plataformas distintas. Sua
flexibilidade de configuração permite que ele seja utilizado como um controlador de domínio
(PDC) ou faça parte de um domínio controlado pelo Active directory. Essa funcionalidade
está disponível a partir da versão 3.0 sendo necessária a instalação e configuração do
protocolo Kerberos, responsável pela autenticação dos usuários, e para que o Samba possa
autenticar usuários de diferentes domínios é necessário que haja uma relação de confiança
entre os mesmos.
A seguir serão apresentados os cenários testados neste projeto.
6.1.
Cenário 1 – O Samba como um PDC
A integração entre redes heterogêneas, no caso Linux-Windows e vice-versa, é
possível graças à implantação do servidor Samba, que faz a interligação entre elas.
Atualmente, os sistemas Linux já vêm com o Samba instalado, bastando apenas habilitar os
pacotes necessários a cada utilização.
Para a elaboração dos testes neste projeto, foram habilitados os seguintes pacotes:
Samba Server, Samba client (pacote cliente para Unix), Samba-common (arquivos comuns do
Samba utilizados tanto pelo cliente quanto pelo servidor), smbldap-tools (contém os scripts de
gerenciamento de contas Unix e Samba armazenadas no LDAP). Também foi necessário
instalar o servidor OpenLdap para que a autenticação ocorresse de forma segura, porém é
possível trabalhar com o Samba sem o OpenLdap instalado, uma vez que o controle de senhas
no Samba é feito no arquivo smbpasswd.
Antes de iniciar a configuração do Samba e dos clientes Windows é importante
verificar o correto funcionamento das máquinas na rede, bastando para isso testar a
conectividade entre as mesmas com o comando ping.
Neste primeiro cenário o Samba está configurado para ser o controlador primário
O software Samba na integração de redes heterogêneas
62 / 101
de domínio da rede (PDC) onde será feita a autenticação dos usuários e o controle de acesso
aos recursos da rede como pode ser visto na Figura 17.
Figura 17 - O Samba atuando como PDC
O ambiente utilizado foi composto de uma máquina com Linux-Debian, onde os
pacotes do Samba foram habilitados, e como cliente foi utilizada uma máquina com o
Windows XP Professional instalado, sem a necessidade de se habilitar pacotes adicionais.
Vale ressaltar que não é possível utilizar o Windows XP Home Edition visto que nele não há a
opção para se trabalhar com domínios, apenas com grupos de trabalho.
As configurações feitas aqui foram realizadas utilizando-se o shell do Linux,
sendo necessário estar logado como super usuário (root), porém, todas elas podem ser feitas
através do modo gráfico utilizando-se para isso o Swat.
Os detalhes das configurações, os comandos utilizados e esclarecimentos
adicionais podem ser encontrados nos apêndices ao final deste documento.
O primeiro passo para que os clientes sejam autenticados é alterar o arquivo de
configuração do Samba que, como dito anteriormente, é onde estão os parâmetros utilizados
pelos programas que o compõe. Antes de se fazer qualquer alteração neste arquivo é
conveniente fazer uma cópia de segurança, caso algum erro inesperado aconteça é possível
O software Samba na integração de redes heterogêneas
63 / 101
recuperar o arquivo original.
Geralmente o arquivo smb.conf encontra-se em /etc/Samba/smb.conf e sua
manipulação pode ser feita através do editor de arquivos mais conveniente. Aqui foi utilizado
o nano.
O arquivo smb.conf em seu estado original apresenta várias seções, parâmetros e
comentários que podem ser retirados ou acrescentados conforme a necessidade. Abaixo segue
o arquivo smb.conf utilizado neste primeiro cenário.
#=============== Global Settings ====================
[global]
workgroup = Linux
server string = Samba Server
netbios name = SMB-SRV
security = user
os level = 100
logon script = %U.bat
logon path =
logon drive =
logon home =
#opcoes principais para que ele atue como PDC
domain logons = yes
domain master = yes
local master = yes
preferred master = yes
wins support = yes
log file = /var/log/Samba/%m.log
encrypt passwords = yes
null passwords = no
unix password sync = yes
socket options = IPTOS_LOWDELAY TCP_NODELAY
#========= Configurações para o LDAP =============
passdb backend = ldapsam:ldap://127.0.0.1
ldap passwd sync = yes
ldap delete dn = Yes
O software Samba na integração de redes heterogêneas
64 / 101
ldap admin dn = cn=root,dc=proj,dc=com,dc=br
ldap suffix = dc=proj,dc=com,dc=br
ldap machine suffix = ou=Computadores
ldap user suffix = ou=Usuarios
ldap group suffix = ou=Grupos
ldap idmap suffix = SambaDomainName=linux
idmap backend = ldap:ldap://127.0.0.1
idmap uid = 10000-20000
idmap gid = 10000-20000
#=========== Compartilhamento de Diretórios ===============
[homes]
comment = Pastas dos Usuários
public = no
browseable = no
writeable = yes
[netlogon]
#Caminho para os scripts de logon
comment = Compartilhamento de Scripts
path = /home/Samba/netlogon/logonScript.bat
public = no
browseable = no
writeable = no
Após a configuração do arquivo smb.conf é necessário criar as contas dos
usuários, tanto para o Linux quanto para o Samba. Essas contas ficam armazenadas no
arquivo /etc/passwd, no caso do Linux, já no caso do Samba elas estão armazenadas no
arquivo smbpasswd.
Uma vez criados os usuários deve-se criar o grupo, ou grupos, que irá conter as
contas das máquinas Windows que serão administradas pelo Samba. Esse grupo, assim como
as contas dos usuários, também deve ser criado no Samba. A utilização de grupos facilita a
administração da rede, mas pode-se apenas criar as contas de máquinas sem adicioná-las a
algum grupo.
O próximo passo, após a criação dos grupos, é adicionar as máquinas a eles. Cada
máquina da rede deve ter uma conta para que o Samba possa fazer a autenticação dos usuários
O software Samba na integração de redes heterogêneas
65 / 101
que estiverem utilizando aquela máquina.
Uma vez realizadas as configurações no servidor Samba, o próximo passo é
configurar as máquinas Windows. Para isso deve-se adicionar cada máquina Windows ao
domínio do Samba. Os detalhes desta configuração encontram-se no apêndice A.
Ajustadas as configurações na máquina Windows, seus usuários poderão acessar
os recursos da rede como se fossem clientes Linux e todo esse processo é feito de forma
transparente para o usuário final. A Figura 18 ilustra alguns usuários logados.
Figura 18 - Usuários Linux logados no Windows
O software Samba na integração de redes heterogêneas
6.2.
66 / 101
Cenário 2 – Adicionando o Linux a um domínio Windows
Como dito anteriormente, para que o Samba autentique usuários de diferentes
domínios é necessário que haja uma relação de confiança entre os mesmos e para isso
algumas alterações no arquivo de configuração do Samba são necessárias.
Já no domínio Windows, para que os usuários possam acessar compartilhamentos
e recursos é necessário que seja estabelecida uma relação de confiança entre os domínios e
isto é feito habilitando-se o Active Directory e configurando-o com o tipo de relação de
confiança desejada. Aqui ele foi configurado para se ter uma relação de confiança
bidirecional, ou seja, o domínio A confia no domínio B assim como o domínio B confia no
domínio A. A Figura 19 ilustra o ambiente configurado.
Figura 19 - Relação de confiança entre domínios
O software Samba na integração de redes heterogêneas
67 / 101
É preciso informar ao Samba que a autenticação será feita entre domínios e não
mais por usuário, como era no cenário anterior, também é preciso informar o endereço do
servidor ADS, onde estarão concentradas as senhas e outros parâmetros necessários ao correto
funcionamento do Samba. Abaixo seguem as linhas que devem ser alteradas ou acrescentadas
à seção global do arquivo smb.conf:
security = ADS
password server = endereço_do_ADS
realm = REALM.DO.ADS
Finalizadas as configurações do Samba, o próximo passo é editar o arquivo de
configuração do protocolo Kerberos inserindo as linhas de identificação do domínio. Esse
arquivo encontra-se em /etc/krb5.conf. Segue abaixo a configuração utilizada neste projeto:
[libdefaults]
default_realm = PROJ.COM.BR
[realms]
PROJ.COM.BR = {
kdc = sol.proj.com.br:88
}
[domain_realm]
.com.br = PROJ.COM.BR
[kdc]
profile=/var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime=36000
O software Samba na integração de redes heterogêneas
68 / 101
renew_liftime=36000
forwardable = true
krb4_convert = false
}
Nesse momento é interessante verificar a comunicação com o servidor AD
autenticando algum usuário existente nele e verificar se o protocolo Kerberos está
funcionando corretamente. Para isso basta utilizar o comando kinit. Se ele não retornar
nenhuma mensagem, então está tudo funcionando corretamente. Caso ele retorne a
mensagem: clock skew too great while getting initial credentials significa que os relógios das
máquinas não estão sincronizados ou o fuso horário ou o horário de verão estão diferentes,
será necessário portanto, sincronizá-los.
Outro ponto importante é especificar o endereço do servidor DNS dos dois
domínios. A máquina Linux deve ter o mesmo endereço do servidor DNS da máquina
Windows, ou seja, o servidor DNS das máquinas deverá ser o mesmo. Caso não seja possível
configurar as máquinas em um servidor DNS é necessário especificar no arquivo /etc/hosts,
para o Linux e no arquivo c:\windows\system32\drivers\etc para o Windows, os IP's das
máquinas que farão parte do domínio. Outro arquivo a ser modificado é o /etc/hostname que
irá conter o nome da máquina que irá se autenticar no domínio controlado pelo AD.
O arquivo /etc/resolv.conf também deverá ser editado para que a máquina Linux
seja incluída no domínio do Server 2003. Para isso devem ser editadas as linhas de
identificação do domínio.
É necessário também, editar os módulos PAM setando os parâmetros para que ele
permita que o usuário acesse sua conta e permita a autenticação nos serviços disponibilizados
a ele. Os módulos a serem editados são: common-account, common-auth e common-session.
Todos localizados em /etc/pam.d.
Depois de efetuadas as configurações é preciso obter o ticket do administrador do
domínio, esse ticket como visto anteriormente, terá uma validade e serve para que o
administrador possa adicionar a máquina Linux ao domínio do Server 2003. O comando
utilizado para isso é o kinit –V <nome do administrador>@<NOME. DO. DOMINIO>.
Lembrando que o nome do domínio deve estar em letras maiúsculas. Para saber qual a
validade do ticket basta utilizar o comando klist.
Ao finalizar as configurações dos arquivos acima, é preciso reiniciar os serviços do
Samba, do Kerberos e do winbind para então incluir a máquina Linux no domínio Server
O software Samba na integração de redes heterogêneas
69 / 101
através do comando net ads join. Para este procedimento basta realizar o login com o nome e
a senha do administrador da máquina Windows, após a execução deste procedimento será
exibida uma mensagem informando que a máquina foi adicionada ao novo domínio. O
próximo passo é reiniciar a máquina Linux e fazer o logon com um usuário comum que esteja
cadastrado no Active Directory.
A Figura 20 mostra a máquina Linux, de nome "clarice", cadastrada no Active
Directory, assim como os usuários Linux.
Figura 20 - Usuários e computadores do AD
O software Samba na integração de redes heterogêneas
70 / 101
Na Figura 21 é possível ver o ambiente de rede da máquina Linux onde estão
mapeadas a máquina de nome "projeto" que contém o Linux e o servidor Samba, já a máquina
de nome "sol" contém o servidor Windows Server 2003.
Figura 21 - Windows logado no domínio Linux
O software Samba na integração de redes heterogêneas
7.
71 / 101
CONCLUSÃO
O aumento da utilização do software livre nas empresas públicas e privadas é
inegável e dois fatores, além de outros, contribuem para esse crescimento: o baixo custo para
se implantar um ambiente com software livre e a flexibilidade que o mesmo oferece podendo
ser adaptado às necessidades de cada órgão ou setor.
O presente trabalho tem como finalidade facilitar a integração entre os sistemas
operacionais Linux e Windows, objetivando a autenticação entre cliente e servidor, através
da relação de confiança entre os dois servidores, ou seja a comunicação entre o domínio
Windows e o domínio Linux ocorre através de relações de confiança que são estabelecidas
para permitir que os usuários de um domínio sejam autenticados pelo controlador de domínio
do outro domínio.
Temos ciência que esta integração já vem sendo usada por diversas empresas,
devido aos softwares livres que nos últimos tempos têm se tornando cada vez mais atrativos
devido às suas características favoráveis de custo, estabilidade, confiabilidade e flexibilidade
em relação aos softwares proprietários, como dito anteriormente. Entretanto, não existe um
documento que possa ser seguido para que as configurações sejam feitas com sucesso a fim
de se conseguir essa integração de forma clara. Os passos que devem ser seguidos para se
configurar um ambiente heterogêneo não estão condensados em um documento único, o que
torna o processo mais trabalhoso e demorado.
Assim, através de experimentos, pesquisas e orientações chegamos a um tutorial
que, se for acompanhado, levará o administrador ou usuário a ter um ambiente integrado de
forma ágil e eficiente, evitando falhas de configuração, comuns nesse processo de integração.
Este trabalho está exemplificando os possíveis erros e soluções para uma
integração com agilidade e segurança, e poderá ser feito por qualquer pessoa que entenda o
básico dos dois sistemas operacionais.
O software Samba na integração de redes heterogêneas
8.
72 / 101
TRABALHOS FUTUROS
Como proposta para trabalhos futuros, sugerimos a realização de:
A partir da rede local, fazer um estudo sobre a autenticação de usuários em
redes heterogêneas de longa distancia (WAN), simular um link de longa
distância para estudar o comportamento da rede e do software Samba no
momento da autenticação.
Fazer um levantamento dos problemas encontrados na autenticação de usuários
buscando melhorias na velocidade do link com tempo de resposta melhor que o
atual, tendo como resposta o comportamento da rede
autenticação.
no momento da
O software Samba na integração de redes heterogêneas
9.
73 / 101
BIBLIOGRAFIA
[ALECRIN, 2005] Alecrin, Emerson – "Servidor Samba – o que é". Disponível em
< http://www.infowester.com/linuxsamba> acesso em agosto 2007.
[MAYER e FRIES e BAÚ, 2004] Mayer, Eleonor Vinicíus Dudel e Fries, Fabrício Deitos e
Baú, Giovani
- "Samba – servidor de domínio". Disponível em
<http://santarosa.rs.gov.br/~smb/ > acesso em setembro 2007.
[SANTANA] Santana, Fabiano de – "Windows 2000 – AD – Active Directory". Disponível
em <http://www.juliobattisti.com.br/fabiano/artigos/activedirectory.asp > acesso em
outubro 2007.
[MOREIRA, 2003] Moreira, André – "Integração Unix / MS Windows". Disponível em
<http://www.dei.isep.ipp.pt/~andre/documentos/unix-windows.html>
acesso
em
outubro 2007.
[GOUVEIA, 2005] Gouveia, Bruno – "LDAP para iniciantes". Disponível em
<http://www.ldap.org.br/modules/ldap/files/files///LDAP_iniciantes.pdf> acesso em
outubro 2007
[BARREIROS, 2003] Barreiros, Caio Carone – "O Samba". Disponível em
< http://www.gta.ufrj.br/grad/01_2/samba/samba.htm > acesso em novembro 2007.
[BATTISTI, 2006] Battisti, Júlio – "Uma introdução ao WINS". Disponível em
<http://www.juliobattisti.com.br/artigos/windows/tcpip_p10.asp>
acesso
em
novembro 2007.
[CAMPOS] Campos, Augusto – "Como integrar o Linux em redes Windows e vice-versa,
sem perder o ritmo". Disponível em < http://br-linux.org/artigos/dicas_samba.htm>
acesso em novembro 2007.
[MOC 2151, 2002] Microsof Training & Certification – “Implementing and Administering
Microsoft Windows 2000 Directory Services - Microsoft Official Curriculum Course
2151”, Microsoft Corporation.
O software Samba na integração de redes heterogêneas
74 / 101
[NETO, 2007] Neto, Odalberto Oliveira – "Micro curso Samba". Disponível em
<http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7042>
acesso
em
novembro 2007.
[RIBEIRO, 2004] Ribeiro, Daniel Darlen Corrêa – "Software livre na administração publica.
Estudo de caso sobre a adoção do Samba na Auditoria Geral do Estado de Minas
Gerais". Disponível em
<www.rau-tu.unicamp.br/nou-rau/softwarelivre/document/?down=146>
acesso em novembro 2007.
[SILVA, 2007] Silva, Gleydson Mazioli da – "Guia Foca/GNU Linux – Capítulo 18 –
Samba". Disponível em
<http://www.focalinux.cipsga.org.br/guia/avancado/ch-s-samba.html> acesso entre
agosto e dezembro 2007.
[TS, ECKSTEIN e COLLIER-BROWN, 2003] Ts, Jay e Eckstein, Robert e Collier-Brown,
David – “Using Samba, 2nd Edition”, O´Reilly & Associetes: Fevereiro de 2003.
Disponível em: <http://us1.samba.org/samba/docs/using_samba/toc.html> acesso em
novembro 2007.
[RODRIGUES, 2007] Rodrigues, Marcos – "Windows Server 2003 R2: Active Directory".
Disponível em <http://blogs.technet.com/marcosr/rss_tag_DHCP.xml> acesso em
novembro 2007.
[UNISINOS] Universidade do Vale do Rio dos Sinos – "Integração do Linux com o
ambiente Windows". Disponível em
<http://ncg.unisinos.br/robotica/samba/index.html#_Toc15263626> acesso em março
2008.
[MORIMOTO, 2008] Morimoto, Carlos E. – "Servidor DNS – Configurando um servidor
Windows". Disponível em <http://www.guiadohardware.net/tutoriais/configurandoservidor-windows/pagina4.html> acesso em março 2008.
[HORTA, 2004] Horta, André – "Configurando Samba e Windows XP". Disponível em
<http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=845 > acesso em março
2008.
O software Samba na integração de redes heterogêneas
75 / 101
[MORIMOTO, 2006] Morimoto, Carlos E. – "Usando o Samba como controlador de
domínio (PDC) – Parte 1". Disponível em <http://www.dicas-l.com.br/dicasl/20060510.php > acesso em março 2008.
[COSTA, 2005] Costa, Oskar – "O Kerberos não é um cachorro de 3 cabeças!". Disponível
em <http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=3950&pagina=2>
acesso em abril 2008.
[RABADÃO e MONTEIRO] Rabadão, Carlos e Monteiro, Edmundo – "Segurança e QoS no
modelo DiffServ". Disponível em <http://www.fccn.pt/crc2002/pdfs/poster13.pdf >
acesso em abril 2008.
[GOMES e outros, 2001] Gomes, Christian Lyra e outros – "Guia do servidor Conectiva
Linux". Disponível em
<http://www.dimap.ufrn.br/~aguiar/Manuais/Servidor/index.html> acesso em abril
2008.
[ALBUQUERQUE, 2003] Albuquerque, Luciano Renovato de – "Sistema de autenticação –
Uma visao geral do funcionamento do protocolo Kerberos". Disponível em
<http://www.lockabit.coppe.ufrj.br/rlab/rlab_textos?id=75> acesso em abril 2008.
[SANTOS] Santos,
Fábio
Carvalho
dos
–
"Kerberos". Disponível
<http://www.gta.ufrj.br/grad/02_2/kerberos/ > acesso em abril 2008.
em
[FAHDAZIZ, 2007] Fahdaziz – "Configuring Samba 3.0 to use ADS security mode".
Disponível em < http://www.howtoforge.com/samba_ads_security_mode> acesso em
abril 2008.
O software Samba na integração de redes heterogêneas
76 / 101
10. GLOSSÁRIO
AD: Active Directory. É um serviço de diretório que centraliza os serviços de
autenticação e autorização para computadores baseados em Windows, permitindo que os
administradores apliquem políticas e atualizações para a organização.
NetBIOS: Network Basic Input Output System. Interface utilizada para permitir a
comunicação entre máquinas, onde as máquinas utilizam nomes para serem reconhecidas.
NetBEUI: NetBIOS Extended User Interface. Versão melhorada do protocolo
NetBIOS que também trabalha com o esquema de nomes para endereçar as máquinas na rede.
NBT: NetBIOS over TCP. Protocolo que trabalha com nomes e endereços IP para
identificar as máquinas em uma rede.
IETF: Internet Engineering Task Force. Comunidade internacional ampla e aberta
que identifica e propõe soluções para problemas relacionados ao uso da Internet.
NBNS: NetBIOS Name Server. Serviço de resolução de nomes NetBIOS.
SMB/CIFS: Server Message Block / Common Internet File System. Protocolo que
permite o compartilhamento de arquivos, impressoras e portas seriais utilizado pelos sistemas
Windows.
WINS: Windows Internet Name Services. Serviço de resolução de nomes de máquinas
em uma rede NT.
DNS: Domain Name System. Serviço onde os nomes e redes de computadores são
organizados de forma hierárquica permitindo sua localização através de nomes amigáveis para
o usuário.
PDC: Primary Domain Controller. Máquina responsável por controlar as contas de
grupos e usuários e suas permissões na rede.
O software Samba na integração de redes heterogêneas
77 / 101
BDC: Backup Domain Controller. É uma cópia do PDC com permissão apenas para
leitura.
SID: Security Indentifier. Identificador de segurança em um domínio.
SAM: Security Account Manager. Base de dados com informações referentes às
contas de usuários e máquinas do domínio.
SA: servidor de autenticação: responsável pela autenticação dos usuários do protocolo
Kerberos.
TGS: servidor que fornece os tickets para cada serviço disponível no protocolo
Kerberos.
KDM: no protocolo Kerberos é o responsável por controlar a chave secreta gerada
quando o usuário fornece login e senha.
Ticket: é um certificado criptográfico gerado com a chave secreta do usuário do
protocolo Kerberos.
Realm: o Kerberos divide a rede em domínios chamados realms onde cada um tem
seu próprio servidor de autenticação.
NFS: Network File System. Sistema de arquivos com o objetivo de compartilhar
arquivos e diretórios na rede.
SMB: Server Message Block. Protocolo do tipo pedido-resposta utilizado pelo MSDOS.
Daemons: programa que roda em segundo plano e respondem às atividades da rede,
de hardware entre outras tarefas.
Smbd: daemon responsável pelo gerenciamento dos recursos da rede.
O software Samba na integração de redes heterogêneas
78 / 101
Nmbd: daemon responsável pelo serviço de nomes do samba.
Winbind: daemon responsável por estabelecer uma relação de confiança com outros
domínios.
Smbpasswd: arquivo que armazena as senhas dos usuários do Samba.
LDAP: Lightweight Directory Access Protocol.
Base de dados especializada e
definida de forma hierárquica provendo uma resposta rápida às consultas.
O software Samba na integração de redes heterogêneas
Apêndices
79 / 101
O software Samba na integração de redes heterogêneas
80 / 101
APÊNDICES
1. APÊNDICE A – O SAMBA COMO UM PDC
Instalação do Samba
Comandos:
# apt-get install Samba Samba-common Samba client smbfs smbldap-tools
smb.conf
O arquivo smb.conf deve ser configurado de acordo com as necessidades. A
edição deste arquivo, para este documento, foi feita através do editor nano conforme abaixo:
# /etc/Samba nano smb.conf
A especificação de cada parâmetro pode ser observada logo abaixo do mesmo,
indicada por uma linha comentada (#) que será ignorada. Não há necessidade de mantê-las no
arquivo, elas encontram-se aqui apenas para fins explicativos.
#=============== Global Settings ====================
[global]
# seção que define as configurações que afetam o Samba como um todo
workgroup = Linux
#nome do domínio ao qual o Samba fará parte
server string = Samba Server
# string identificadora do servidor (este é o nome que irá aparecer quando o
usuário estiver logado)
netbios name = SMB-SRV
# é o nome netBios da máquina
security = user
# indica que o usuário irá se autenticar, caso se autentique terá acesso a todos
os recursos destinados a ele sem ter que fornecer senha novamente
os level = 100
# este parâmetro deve estar acima de 32 para que o Samba vença as eleições e
se torne o controlador de domínio
O software Samba na integração de redes heterogêneas
81 / 101
logon script = %U.bat
# define o nome do arquivo que será executado no logon. Nesse caso %U
significa que será executado um logon específico por nome de usuário
#======opções principais para que ele atue como PDC=============
domain logons = yes
# permite acesso ao domínio para estações Windows 95 e 98
domain master = yes
# especifica que o Samba é o controlador de domínio
local master = yes
#permite que o Samba se torne o navegador mestre local da rede
preferred master = yes
# força uma eleição local para que o Samba se torne o pdc
WINS support = yes
# diz ao nmbd para habilitar o Samba como um servidor WINS
log file = /var/log/Samba/%m.log
# define a localização dos arquivos de log. Neste caso, %m indica que serão
armazenados os logs das máquinas
encrypt passwords = yes
# habilita o uso de senhas criptografadas
null passwords = no
# não aceita senhas em branco
unix password sync = yes
# sincroniza as senhas do Linux e do Samba
socket options = IPTOS_LOWDELAY TCP_NODELAY
# garante uma melhor performance para o servidor
#========= Configurações para o LDAP =============
passdb backend = ldapsam:ldap://127.0.0.1
ldap passwd sync = yes
ldap delete dn = Yes
ldap admin dn = cn=root,dc=proj,dc=com,dc=br
ldap suffix = dc=proj,dc=com,dc=br
ldap machine suffix = ou=Computadores
ldap user suffix = ou=Usuarios
ldap group suffix = ou=Grupos
O software Samba na integração de redes heterogêneas
82 / 101
ldap idmap suffix = SambaDomainName=linux
idmap backend = ldap:ldap://127.0.0.1
idmap uid = 10000-20000
idmap gid = 10000-20000
#=========== Compartilhamento de Diretórios ===============
[homes]
# esta seção indica os diretórios dos usuários
comment = Pastas dos Usuários
# comentário sobre este compartilhamento
public = no
# diz se a pasta é publica ou não
browseable = no
# indica se a pasta é navegável ou não
writeable = yes
# permite ou não a escrita na pasta
[netlogon]
# esta seção permite que o usuário tenha acesso ao seu perfil de qualquer
máquina da rede
path = /home/Samba/netlogon/logonScript.bat
#indica o caminho para os scripts de logon
public = no
# diz se esta pasta será publica ou não
browseable = no
# indica se a pasta será navegável ou não
writeable = no
# permite ou não a escrita
#==============================================
Criação das contas
Para a criação das contas dos usuários foram utilizados os seguintes comandos:
Para o Linux:
# adduser <nome do usuário>
O software Samba na integração de redes heterogêneas
83 / 101
As contas também podem ser criadas utilizando-se o comando useradd <nome do
usuário>. A diferença entre eles é que o primeiro cria o diretório /home para o usuário, já o
useradd não. Para este documento as contas dos usuários foram criadas utilizando-se o
primeiro comando.
Caso seja necessário remover um usuário utiliza-se o seguinte comando:
# userdel <nome do usuário>
Para criar as contas no Samba basta utilizar o comando abaixo:
# smbpasswd –a <nome do usuário>
o parâmetro –a indica que se trata de uma conta de usuário.
Para remover um usuário o comando abaixo é utilizado:
# smbpasswd -x <nome do usuario>
Criação dos grupos
Antes de criar uma conta de máquina é necessário criar um grupo e inseri-la nesse
grupo. Para isso é utilizado o comando abaixo:
# addgroup <nome do grupo>
Criando as contas de máquina
O Samba oferece duas maneiras para a criação de contas de máquina em um
domínio. A criação manual e a criação automática. Criar uma conta de máquina em um
domínio garante que nenhum outro computador possa usar o mesmo nome de uma máquina
confiável. Como acontece quando são criadas as contas de usuário, aqui também é
necessário existir uma conta no Linux e outra no Samba.
Para a criação manual é necessário seguir os passos abaixo:
a) criar uma conta no arquivo /etc/passwd (Linux):
# useradd -d /dev/null -g <nome do grupo> -s /bin/false <nome da maquina>$
O parâmetro –g indica que se trata de um grupo, deve-se informar o nome do
grupo que foi criado e ao qual a máquina irá fazer parte. È necessário informar o parâmetro $
ao final do nome da máquina para indicar que se trata de uma conta de máquina e não uma
conta de usuário comum.
b) criar uma conta no arquivo smbpasswd (Samba):
O software Samba na integração de redes heterogêneas
84 / 101
# smbpasswd –a –m <nome da máquina>
Aqui não é necessário informar o parâmetro $ após o nome da máquina, pois o
smbpasswd identifica automaticamente de acordo com o registro em /etc/passwd se é uma
conta de máquina ou não.
Já para a criação automática é necessário fazer a inclusão da seguinte linha na
seção [global] do smb.conf:
add user script = useradd –g<nome do grupo> -s/bin/false/-d/dev/null %m
Esse método faz com que as contas sejam criadas automaticamente assim que seja
feita a entrada no domínio, usando a conta do administrador do domínio no Samba.
Para remover uma máquina basta utilizar o comando userdell <nome da
máquina>.
Após criados os usuários, os grupos e as máquinas é interessante reinicializar os
serviços do Samba, para isso basta utilizar o comando:
# /etc/init.d/samba restart
Outro comando que deve ser utilizado com freqüência é o seguinte:
# testparm
Ele irá informar se o arquivo smb.conf apresenta algum erro ou não. Abaixo segue
um exemplo deste comando:
O software Samba na integração de redes heterogêneas
85 / 101
Caso seja necessário verificar os compartilhamentos do Samba o comando
smbclient deve ser utilizado:
# smbclient -L localhost -U%
Domain=[LINUX] OS=[Unix] Server=[Samba 3.0.26a]
Sharename
--------IPC$
----
Type
Comment
-------
IPC
IPC Service (Samba server)
Diretório Compartilhado Disk
Compartilhamento
Domain=[LINUX] OS=[Unix] Server=[Samba 3.0.26a]
Server
Comment
---------
-------
SMB-SRV
Samba server
Workgroup
Master
--------LINUX
------SMB-SRV
O software Samba na integração de redes heterogêneas
86 / 101
O gerente da rede pode verificar quais os usuários estão logados através do
comando smbstatus como demonstra a figura abaixo:
Configurações do Windows
Para que o Windows faça parte do domínio do Samba é necessário configurá-lo de
acordo com os passos abaixo:
Clicar em "iniciar", "painel de controle", "sistema" ·
Clicar na aba "nome do computador", clicar no botão "alterar" e marcar a opção
"domínio" ·
Digitar o nome do domínio que foi dado no Samba, ou seja o nome
"workgroup". Clicar em "ok".
Será apresentada uma janela onde devem ser inseridos o login e a
senha. Essa conta deve ser criada no Samba com o comando, já citado, smbpasswd –a
<nome de usuário> e será utilizada somente para o primeiro logon, sendo que o nome do
usuário, para este caso, será "root", já a senha fica a critério do administrador. Essa conta
serve apenas para que o administrador registre a máquina Windows no domínio Linux. A
figura abaixo mostra a configuração e a tela do primeiro logon.
O software Samba na integração de redes heterogêneas
87 / 101
Ao tentar ingressar o Windows no domínio pela primeira vez é comum este
apresentar uma mensagem dizendo que não foi possível encontrar o controlador de domínio.
Isso acontece porque as diretivas de segurança do Windows estão ativadas. Para desativá-las é
necessário seguir os passos:
Clicar em "iniciar" painel de controle ferramentas administrativas
diretivas locais diretiva local opções de segurança. Os itens a serem desativados são:
Controlador de domínio: permitir que operadores do servidor agendem tarefas;
Controlador de domínio: recusar alterações de senha de contas do computador;
Membro de domínio: assinar digitalmente dados do canal seguro (quando for
possível);
Membro de domínio: criptografar digitalmente dados do canal seguro (quando
for possível);
Membro de domínio: criptografar ao assinar digitalmente dados do canal
seguro (sempre);
Membro de domínio: desativar alterações de senha de conta da máquina;
O software Samba na integração de redes heterogêneas
88 / 101
Mento de domínio: requer uma chave de seção de alta segurança (Windows
2000 ou posterior).
Após desativar as diretivas de segurança citadas deve-se forçar a alteração das
mesmas para que o logon funcione corretamente sem a necessidade de reiniciar a máquina
nesse momento. Para isso é necessário abrir um prompt de comando do modo MS-DOS:
Iniciar executar cmd na linha de comando digitar: gpupdate/force
Para que o cliente Windows possa se autenticar no domínio Linux é necessário
que ele encontre o seu controlador de domínio, sendo assim, deve-se informar a ele o
endereço IP do servidor WINS, bem como o IP do servidor DNS.
O caminho é:
Iniciar Painel de controle conexões de rede conexão local
clicar com o botão direito e clicar em "propriedades" protocolo
TCP/IP "propriedades" guia geral marcar a opção:
"usar os seguintes endereços do servidor DNS".
No campo "servidor DNS preferencial" informar o endereço IP onde está
instalado o servidor Samba. A figura abaixo ilustra esses passos.
O software Samba na integração de redes heterogêneas
89 / 101
Clicar no ícone "avançado" e clicar na aba "DNS". Adicionar o endereço do
servidor DNS (onde esta instalado o servidor Samba), no caso deste projeto o endereço
utilizado foi: 172.25.0.25.
Na aba WINS adicionar o endereço do servidor de WINS, onde está o servidor
Samba, nesse caso 172.25.0.25.
Deixar marcadas as opções "padrão de configuração NetBios" e marcar a opção
"ativar pesquisa LMHosts".
Vale lembrar que o firewall do Windows deve estar desativado para que a
conexão com o outro domínio seja possível.
Depois de ajustadas as configurações e sanados os erros é necessário voltar no
menu "iniciar", opção "painel de controle" e ícone "sistema" para ingressar a máquina no
domínio do Linux. Fornecidos login e senha será apresentada a seguinte tela:
O software Samba na integração de redes heterogêneas
90 / 101
Esta tela mostra que o login inicial foi realizado com sucesso. Clique no botão
"ok" e será apresentada a tela abaixo:
O software Samba na integração de redes heterogêneas
91 / 101
Clique em "ok" e aguarde o computador ser reiniciado.
Agora é possível fazer o login com um usuário Linux comum. A figura abaixo
mostra alguns usuários Linux logados:
É possível que o Windows apresente o seguinte erro quando um usuário Linux se
logar nele:
O Windows não pode localizar o perfil local e está fazendo seu logon com um
perfil
temporário. As alterações que você fizer nesse perfil serão perdidas
quando você fizer logoff.
O Windows não pode localizar a cópia do servidor do perfil móvel e está tentando
fazer logon com o seu perfil local. As alterações no perfil não serão copiadas no
servidor quando você fizer logoff. Dentre as causas possíveis de erro estão
problemas com a rede ou direitos insuficientes de segurança. Se o problema
persistir, contate o administrador da rede.
DETAIL - Acesso negado.
O software Samba na integração de redes heterogêneas
92 / 101
Para evitar que isso aconteça convém deixar a linha logon path, que indica onde
serão guardados tais perfis, em branco.
Altere esse parâmetro e os sistemas estão prontos para interagirem.
2. APÊNDICE B – ADICIONANDO O LINUX A UM DOMINIO WINDOWS
Para adicionar o Linux a um domínio controlado pelo Windows é necessário
configurar o Samba para que a autenticação dos usuários seja feita no controlador de domínio
do Windows, ou seja, a autenticação será realizada pelo Active Directory e para isso alguns
parâmetros do arquivo smb.conf devem ser alterados como abaixo:
security = ads
password server = sol.proj.com.br
realm = PROJ.COM.BR
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind cache time = 14400
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
O valor do parâmetro realm deve estar em letras maiúsculas para ser reconhecido
pelo Kerberos, também é preciso informar os parâmetros utilizados pelo winbind para que o
samba possa interagir com o outro domínio.
Ao se editar o arquivo de configuração do Kerberos deve-se alterar apenas as
linhas que irão identificar o novo domínio, podendo as outras serem removidas ou
comentadas. Abaixo seguem os parâmetros utilizados para este projeto:
[libdefaults]
default_realm = PROJ.COM.BR
[realms]
PROJ.COM.BR = {
kdc = sol.proj.com.br:88
}
[domain_realm]
.com.br = PROJ.COM.BR
O software Samba na integração de redes heterogêneas
93 / 101
[kdc]
profile=/var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime=36000
renew_liftime=36000
forwardable = true
krb4_convert = false
}
Para verificar se o Kerberos está autenticando seus usuários basta utilizar o
comando kinit -V, como no exemplo abaixo:
Aqui a autenticação foi feita com o usuário administrador da rede Windows. Se
for preciso apenas testar a conectividade com o protocolo Kerberos então o comando kinit
O software Samba na integração de redes heterogêneas
94 / 101
será utilizado novamente, retirando-se a variável –V e informando o nome do usuário e o
domínio como pode ser visto no exemplo a seguir:
# kinit [email protected]
Caso ele não retorne nenhuma mensagem significa que o Kerberos está
funcionando corretamente, porém, se ele apresentar a mensagem de erro:
kinit(v5): clock skew too great while getting initial credentials é preciso
sincronizar os relógios dos dois domínios. Para o Linux utiliza-se o seguinte comando:
# apt-get –t testing install ntpdate
Após sincronizar os relógios é possível verificar a validade do ticket obtido com o
Kerberos. Para isso o comando klist é utilizado conforme abaixo:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting
Expires
Service
principal
03/25/08 17:11:25 03/26/08 03:10:40
krbtgt/[email protected]
renew until 03/26/08 17:11:25
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
No arquivo /etc/resolv.conf deve ser especificado o nome do domínio onde os
usuários Linux irão se autenticar. Abaixo pode ser vista a configuração utilizada neste projeto:
search PROJ.COM.BR
nameserver 172.25.0.17
nameserver 172.19.0.2
nameserver 172.25.0.31
Módulos PAM
Os módulos PAM (Pluggable Authentication Modules) fazem parte do sistema de
autenticação do Linux e são divididos em quatro grupos: auth, account, passwd e session.
O software Samba na integração de redes heterogêneas
95 / 101
Os módulos do arquivo PAM também devem ser editados para que ele autentique
os usuários e permita que eles tenham acesso aos recursos disponibilizados. Para este projeto
foram editados os módulos common-account, common-auth e common-session. Abaixo
seguem os arquivos com suas respectivas configurações:
Common-account:
Responsável por verificar se o usuário que está se autenticando está autorizado a
utilizar o serviço que esta sendo solicitado. Abaixo segue a configuração utilizada neste
projeto:
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account sufficient pam_winbind.so
account required pam_unix.so
#account sufficient pam_unix.so
#account required pam_ldap.so use_first_pass
Common-auth:
Verifica se o usuário é realmente quem diz ser. Segue a configuração deste
módulo utilizada neste projeto:
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
O software Samba na integração de redes heterogêneas
96 / 101
#auth sufficient pam_unix.so
#auth required pam_ldap.so use_first_pass
## Criar diretório local no momento em que o usuário se loga no Desktop
auth sufficient pam_winbind.so
auth required pam_unix.so nullok_secure use_first_pass
#session
optional
pam_mkhomedir.so skel=/etc/skel/ umask=0077
session
required
pam_limits.so
session
required
pam_unix.so
Common-session:
Responsável por montar a sessão que o usuário irá utilizar, criando uma pasta
pessoal por exemplo. Abaixo está a configuração deste módulo para este projeto:
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive). The default is pam_unix.
#
session required pam_unix.so
session optional pam_foreground.so
## Criar diretório local no momento em que o usuário se loga no Desktop
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Outro arquivo que deve ser editado é o /etc/nsswitch.conf. Nele deve ser
informado que o samba utilizará o winbind e para isso deve-se alterar as linhas group, shadow
e passwd conforme abaixo:
# /etc/nsswitch.conf
#passwd:
compat ldap
#group:
compat ldap
#shadow:
compat ldap
O software Samba na integração de redes heterogêneas
group:
files winbind
shadow:
files winbind
passwd:
files winbind
hosts:
files dns mdns
networks:
files
protocols:
db files
services:
db files
ethers:
db files
rpc:
db files
97 / 101
netgroup: nis
Deve-se também editar o arquivo /etc/hostname especificando os IP's das
máquinas que irão se comunicar, este procedimento é feito caso não seja possível registrar as
máquinas em um servidor DNS. Para este projeto, a configuração desse arquivo foi a
seguinte:
127.0.0.1 localhost.localdomain localhost clarice
172.25.0.31 sol.proj.com.br
172.25.0.25 clarice
No Windows esse arquivo, que se encontra em c:\windows\system\host também
deve ser editado para que as máquinas se comuniquem.
Finalizadas as configurações dos arquivos acima é preciso reiniciar os serviços do
samba, do winbind e do Kerberos para que as atualizações entrem em vigor. Feito isso, o
próximo passo é adicionar a máquina Linux ao domínio do Server, para tal o comando net
ads join deve ser utilizado conforme abaixo:
# net ads join -U Administrador
Administrador's password:
Joined 'CLARICE' to realm 'PROJ.COM.BR'
A máquina Linux agora faz parte do domínio do Windows Server 2003. Qualquer
usuário que esteja cadastrado no Active Directory pode efetuar logon a partir da máquina
Linux e acessar os recursos da máquina Windows, isso é possível graças à relação de
confiança existente entre os domínios.
O software Samba na integração de redes heterogêneas
98 / 101
Ao fazer o logon o usuário terá acesso aos recursos que lhe são permitidos. Essas
permissões são definidas pelo administrador da rede no Active Directory. Abaixo é possível
observar um cliente Linux logado e as máquinas da rede mapeadas no seu desktop. Se este
cliente quiser acessar qualquer uma das máquinas e suas respectivas pastas, lhe serão pedidos
login e senha e o acesso será concedido nas pastas e compartilhamentos a que ele tiver acesso.
As máquinas mapeadas na figura são: servidor samba de nome "clarice" cliente
Windows XP de nome "gato" e servidor Windows Server 2003 de nome "sol".
Seguem alguns comandos úteis para a administração do ambiente de rede.
O software Samba na integração de redes heterogêneas
Testar se a máquina está adicionada ao domínio:
Verificar os usuários e grupos do Active Directory:
99 / 101
O software Samba na integração de redes heterogêneas
Verificar a máquina Linux adicionada ao AD:
onde: "projeto" é a máquina Linux e "sol" é a máquina Windows.
A figura abaixo mostra os usuários e computadores do AD:
100 / 101
O software Samba na integração de redes heterogêneas
101 / 101
Aqui são demonstrados quais os passos que devem ser seguidos para se criar uma
conta de usuário no Active Directory.