centro estadual de educação tecnológica paula souza

Transcription

centro estadual de educação tecnológica paula souza
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
EDUARDO SIERRA FERNANDES
SAMBA 4
ALTERNATIVA OPENSOURCE AO ACTIVE DIRECTORY
LINS/SP
1º SEMESTRE/2015
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
EDUARDO SIERRA FERNANDES
SAMBA 4
ALTERNATIVA OPENSOURCE AO ACTIVE DIRECTORY
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção do
Título de Tecnólogo em Redes de Computadores.
Orientador: Prof. Me. Alexandre Ponce de Oliveira
LINS/SP
1º SEMESTRE/2015
EDUARDO SIERRA FERNANDES
SAMBA 4
ALTERNATIVA OPENSOURCE AO ACTIVE DIRECTORY
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins, como parte dos
requisitos necessários para a obtenção do título de
Tecnólogo(a) em Redes de Computadores sob
orientação do Prof. MSC Alexandre Ponce de
Oliveira.
Data de aprovação: ___/___/___
___________________________
Orientador (Nome do Orientador)
______________________________
Examinador 1 (Nome do Examinador)
______________________________
Examinador 2 (Nome do Examinador).
Aos meus pais, José Luiz Fernandes e Sara Sierra
Ascêncio Fernandes, aos meus avós, Aurio Sierra
Pardo, in memoriam e Percília Sierra Assêncio
Pardo e a minha futura esposa Eloisa Suzuki Maia
pelo apoio e incentivo nesta jornada.
EDUARDO SIERRA FERNANDES
AGRADECIMENTOS
Primeiramente gostaria de agradecer a todos que participaram de forma
direta ou indireta para a conquista dessa meta tão importante em minha vida.
Faltariam páginas para listar todos vocês e certamente haveria alguma omissão.
Quero agradecer especialmente a meus pais, José Luiz Fernandes e Sara
Sierra Ascêncio Fernandes, meus avós maternos Aurio Sierra Pardo in memoriam e
Percília Sierra Assêncio, a minha namorada Eloisa Suzuki Maia pelo incentivo (e
cobrança) ao longo dos anos para eu concluir o ensino superior. Sem vocês eu teria
desistido (novamente).
Meus sinceros agradecimentos a meu orientador, Alexandre Ponce de
Oliveira, pela amizade e ajuda na realização deste sonho, ao Centro Paula Souza
pela oportunidade que me foi dada e a todos Colaboradores e Professores da Fatec
de Lins.
EDUARDO SIERRA FERNANDES
RESUMO
Em pequenas e médias empresas o investimento em Tecnologia da Informação é
escasso e realizado em casos de extrema necessidade. É comum o uso de
softwares proprietários, sem licenciamento, para suprir necessidades básicas de
funcionamento da rede em servidores e em estações de trabalho. A facilidade de uso
dos recursos providos pelo Microsoft Active Directory para gerenciamento de
usuários e compartilhamento de arquivos são os principais motivos para o uso de
servidores Windows sem licenciamento, de modo que a empresa está passível de
multas e outros transtornos causados pela pirataria de software. Este trabalho
apresenta uma proposta de implementação de um servidor Active Directory com
utilização somente de softwares livres, conforme designação da Free Software
Foundation, de modo a implementar a interoperabilidade entre os sistemas
operacionais Linux e Windows em ambientes de produção, com baixo custo de
manutenção e livre de licenciamento de software, do lado servidor. Para o total
entendimento da solução adotada, foram abordados conceitos de funcionamento do
Active Directory e tecnologias necessárias para seu funcionamento. A estrutura
utilizada simula um ambiente comum em pequenas e medias empresas,
implementando gerenciamento de usuários, compartilhamento de arquivos, controle
de acesso à Internet e procedimentos básicos de administração.
Palavras-chave: Gerenciamento de Usuários. Active Directory. Samba. Kerberos.
ABSTRACT
In small and medium enterprises investing in Information Technology is scarce and
performed in cases of extreme need. It's common the use of proprietary software
without licensing for basic needs of the network in servers and workstations. The
ease of use of the resources provided by Microsoft Active Directory for user
management and file sharing are the main reasons for using unlicensed Windows
servers, so the company is subject to fines and other disorders caused by software
piracy. This paper presents a proposal to implement an Active Directory server that's
use only free software, as designated by the Free Software Foundation, in order to
implement interoperability between Linux and Windows operating systems in
production environments, with low maintenance costs and free software licensing on
the server-side. For the full understanding of the solution adopted, they were
addressed Active Directory operating concepts and technologies required for its
operation. The structure used simulates a common environment for small and
medium enterprises, implementing user management, file sharing, internet access
control and basic administration procedures.
Keywords: User management. Active Directory. Samba. Kerberos.
LISTA DE ILUSTRAÇÕES
Figura 1.1: Modelo de referência TCP/IP....................................................................16
Figura 1.2: Protocolos e redes no modelo TCP/IP Inicial...........................................17
Figura 1.3: Servidores DNS raiz em 2012..................................................................18
Figura 1.4: DNS Root Servers distribuídos pelo mundo.............................................18
Figura 1.5: Hierarquia de servidores DNS..................................................................19
Figura 1.6: Exemplo de uma árvore de diretório LDAP..............................................21
Figura 1.7: Exemplo de domínio Kerberos..................................................................23
Figura 1.8: O mascote do Linux - Tux.........................................................................25
Figura 2.1: Hierarquia de um domínio Active Directory..............................................31
Figura 2.2: Domínios de uma árvore...........................................................................32
Figura 2.3: Relações de confiança bidirecionais e transitivas....................................33
Figura 2.4: Relações de confiança externas – unidirecional ou bidirecional..............35
Figura 2.5: Relação de confiança do tipo Shortcut.....................................................36
Figura 2.6: Usuário herda as permissões do grupo....................................................38
Figura 2.7: Divisão de um domínio em Unidades Organizacionais............................41
Figura 2.8: Definição de um site..................................................................................43
Figura 2.9:Topologia de replicação simples................................................................45
Figura 2.10: MMC sem nenhum snap-in carregado...................................................48
Figura 2.11: Janela de adição de Snap-ins.................................................................48
Figura 3.1: Registro de nome com e sem servidor de Nomes NetBIOS....................51
Figura 3.2: Resolução de nomes com e sem servidor de nomes NetBIOS...............52
Figura 4.1: Topologia da rede de testes......................................................................58
Figura 4.2: Snap-ins....................................................................................................66
Figura 4.3: Criação de novo grupo..............................................................................67
Figura 4.4: Parâmetros para criação do grupo...........................................................67
Figura 4.5: Grupos criados separados em unidades organizacionais........................68
Figura 4.6: Parâmetros para criação de um novo usuário..........................................68
Figura 4.7: Parâmetros de segurança.........................................................................69
Figura 4.8: Usuários criados separados em unidades organizacionais.....................69
Figura 4.9: Grupos do usuário.....................................................................................70
Figura 4.10: Seleção de grupos do usuário................................................................70
Figura 4.11: Adição de snap-in para controle de GPO...............................................71
Figura 4.12: Configurações de proxy via GPO...........................................................72
Figura 4.13: snap-in para permissões de pastas........................................................72
Figura 4.14: Seleção do computador a ser gerenciado..............................................73
Figura 4.15: Permissões da pasta ADM......................................................................73
Figura 4.16: Domínio disponível para logon...............................................................75
Figura 4.17: Acesso às pastas compartilhadas pelo servidor.....................................75
Figura A.1: Tela de boot do CD de Instalação Debian 8.0 (Jessie)............................80
Figura A.2: Falha na configuração automática de rede..............................................81
Figura A.3: Seleção de configuração manual de rede................................................81
Figura A.4: Configurações de rede - SRV-FW001......................................................81
Figura A.5: Configurações de rede - SRV-AD001.......................................................82
Figura A.6: Configuração de gateway em SRV-AD001..............................................82
Figura A.7: Configuração de servidores DNS em SRV-AD001...................................83
Figura A.8: Configuração de domínio em SRV-AD001 e SRV-FW001.......................83
Figura A.9: Definição da senha de root.......................................................................83
Figura A.10: Definição de nome de usuário “restrito”.................................................84
Figura A.11: Definição de senha de usuário “restrito”.................................................84
Figura A.12: Seleção do método de particionamento de disco..................................84
Figura A.13: Particionamento de disco – SRV-FW001...............................................85
Figura A.14: Particionamento de disco – SRV-AD001................................................85
Figura A.15: Seleção de mirror do gerenciador de pacotes.......................................86
Figura A.16: Seleção de software...............................................................................86
Figura A.17: Instalação do gerenciador GRUB...........................................................87
Figura A.18: Instalação do sistema finalizada.............................................................87
Figura A.19: Tela de login – SRV-FW001....................................................................87
Figura A.20: Tela de login – SRV-AD001....................................................................87
LISTA DE TABELAS
Tabela 1.1 - Principais tipos de registros de recursos DNS para IPv4.......................20
Tabela 1.2 - Nomes de atributo comuns encontrados em hierarquias LDAP.............22
Tabela 2.1 - Requisitos de Hardware – Windows Server 2008..................................30
Tabela 3.1 - Tipos de nós NetBIOS.............................................................................53
Tabela 3.2 - Tipos de recursos....................................................................................53
Tabela 3.3 - Tipos de recursos de grupos NetBIOS....................................................53
Tabela 4.1 - Distribuição de endereços IP..................................................................58
Tabela 4.2 - Configurações das máquinas virtuais.....................................................59
Tabela 4.3 - Opções utilizadas no provisionamento do domínio................................63
Tabela 4.4 - Relacionamento entre usuários e grupos...............................................71
Tabela A.1 - Particionamento de disco........................................................................85
Tabela E.1 - Funcionalidades disponíveis em cada um dos modos de domínios......99
Tabela F.1 - Funcionalidades disponíveis em cada um dos modos de florestas......100
LISTA DE ABREVIATURAS E SIGLAS
AD – Active Directory
BGP – Border Gateway Protocol
BIND – Berkeley Internet Name Domain
CIFS – Common Internet File System
DC – Domain Controller
DFS – Distributed File System
DNS – Domain Name System
FSF – Free Software Foundation
FTP – File Transfer Protocol
GPL – Gnu Public License
GPO – Group Policy Object
IETF – Internet Engineering Task Force
IP – Internet Protocol
ISO – International Organization for Standardization
ITU – International Telecommunication Union
KCC – Knowledge Consistency Checker
LDAP – Lightweight Directory Access Protocol
MMC – Microsoft Management Console
MIT – Massachusetts Institute of Technology
NBNS – NetBIOS Name Server
NTP – Network Time Protocol
OSI – Open Systems Interconnection
OSPF – Open Shortest Path First
RODC – Read-only Domain Controller
SMB – Server Message Block
TCP – Transmission Control Protocol
TLD – Top-Level-Domain
UDP – User Datagram Protocol
UNC – Universal Naming Convention
WINS – Windows Internet Name Service
SUMÁRIO
INTRODUÇÃO............................................................................................................13
1 TECNOLOGIAS ENVOLVIDAS................................................................................15
1.1 TRANSMISSION CONTROL PROTOCOL/INTERNET PROTOCOL (TCP/IP)....15
1.2 DOMAIN NAME SYSTEM (DNS)..........................................................................17
1.2.1 BIND...................................................................................................................20
1.3 LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL (LDAP)..............................21
1.4 KERBEROS...........................................................................................................22
1.5 LINUX....................................................................................................................24
1.5.1 Debian GNU/Linux.............................................................................................26
2 MICROSOFT® ACTIVE DIRECTORY.....................................................................28
2.1 NOMENCLATURAS E CAMINHOS UNC.............................................................28
2.2 INTRODUÇÃO AO ACTIVE DIRECTORY............................................................29
2.2.1 Domínios............................................................................................................31
2.2.2 Árvores...............................................................................................................32
2.2.3 Relação de Confiança e Florestas.....................................................................32
2.2.4 Contas de Usuário..............................................................................................36
2.2.5 Grupos de Usuários...........................................................................................37
2.2.6 Contas de Computador......................................................................................39
2.2.7 Unidades Organizacionais.................................................................................40
2.2.8 Schema..............................................................................................................41
2.2.9 Sites....................................................................................................................42
2.3 REPLICAÇÃO.......................................................................................................44
2.4 FUNCIONALIDADES DE UM DOMÍNIO...............................................................45
2.5 GROUP POLICY OBJECT (GPO)........................................................................46
2.6 CONSOLE DE ADMINISTRAÇÃO E SNAP-IN.....................................................47
3 SAMBA.....................................................................................................................49
3.1 O QUE É O SAMBA..............................................................................................49
3.2 HISTÓRIA..............................................................................................................49
3.3 BASE DE FUNCIONAMENTO..............................................................................50
3.3.1 NetBIOS.............................................................................................................50
3.3.2 SMB/CIFS...........................................................................................................54
3.4 SAMBA 4...............................................................................................................54
3.4.1 Modos de Operação Suportados.......................................................................55
3.4.2 Limitações..........................................................................................................55
3.4.3 Novos Recursos (versão 4.2).............................................................................55
3.4.4 Requisitos de Software......................................................................................56
4 ESTUDO DE CASO.................................................................................................58
4.1 CONFIGURAÇÃO SRV-FW001............................................................................59
4.1.1 Configuração do Servidor DHCP.......................................................................60
4.1.2 Configuração do Servidor DNS Secundário......................................................60
4.1.3 Configuração do Firewall....................................................................................61
4.1.4 Configuração do Proxy SQUID..........................................................................61
4.2 CONFIGURAÇÃO SRV-AD001.............................................................................61
4.2.1 Instalação do SAMBA 4......................................................................................62
4.2.2 Provisionamento do Domínio.............................................................................63
4.2.3 Configuração do BIND9.....................................................................................64
4.2.3 Configuração do Kerberos.................................................................................64
4.2.3 Criação das Pastas Compartilhadas..................................................................65
4.3 GERENCIAMENTO DO DOMÍNIO.......................................................................66
4.3.1 Criação de Grupos.............................................................................................67
4.3.2 Criação de Usuários...........................................................................................68
4.3.3 Atribuição de Usuários a Grupos.......................................................................69
4.3.4 Definição de Proxy via GPO...............................................................................71
4.3.5 Permissão de Pastas Compartilhadas...............................................................72
4.4 INGRESSAR ESTAÇÕES DE TRABALHO NO DOMÍNIO...................................74
CONCLUSÃO..............................................................................................................76
REFERÊNCIAS BIBLIOGRÁFICAS............................................................................78
ANEXO A – INSTALAÇÃO DEBIAN GNU/LINUX.......................................................80
ANEXO B – SCRIPT DE FIREWALL..........................................................................88
ANEXO C – ARQUIVO SQUID.CONF........................................................................92
ANEXO D – ARQUIVO DE INICIALIZAÇÃO DO SAMBA 4........................................95
ANEXO E – FUNCIONALIDADES DE MODOS DE DOMÍNIOS................................99
ANEXO F – FUNCIONALIDADES DE MODOS DE FLORESTAS...........................100
13
INTRODUÇÃO
As redes de computadores são atualmente um recurso indispensável para as
empresas. Compartilhar recursos, dispositivos e gerenciamento de usuários tornouse
uma
necessidade
crescente
nas
empresas
de
todos
os
tamanhos.
(TANENBAUM, 2003)
Nas décadas de 70 e 80, o modelo de armazenamento de dados e sistemas
era baseado em computadores de grande porte, os chamados mainframes. Os
terminais (comumente conhecidos como terminais burros) se conectavam ao
mainframe, normalmente via modem, e acessavam os sistemas e dados após
autenticação. Dentre as principais vantagens do uso de mainframes, pode-se citar:
gerenciamento e atualização centralizada, ambiente mais seguro e facilidade na
atualização dos sistemas. Em contrapartida, as principais desvantagens do uso de
mainframes são: custo elevado, sistema de comunicação precário e os dados da
empresa eram administrados por terceiros. (BATTISTI; SANTANA, 2009)
Na década de 90 iniciou-se um processo de substituição dos mainframes,
principalmente devido ao aumento do poder de processamento e barateamento dos
computadores pessoais do padrão IBM/PC. O mainframe continua em uso, porém
em empresas de grande porte ou em aplicações que necessitem alto poder de
processamento. Com essa migração, um processo natural foi a interligação desses
computadores através de redes, inicialmente com o uso de cabos coaxiais. Surgiu
então um modelo conhecido como Cliente/Servidor, onde um equipamento com
maior capacidade de processamento (Servidor) compartilha recursos com outros
equipamentos (Cliente). Com essa migração, ocorreu uma descentralização de
acesso, criando-se a necessidade de definir permissões de acesso aos recursos
compartilhados, de forma que um determinado usuário tivesse acesso apenas ao
que fosse necessário à execução de seu trabalho, o que gerou um problema devido
a cada sistema criar seu próprio arquivo de senhas, de maneira descentralizada,
isso dificultou a manutenção e gerenciamento. (BATTISTI; SANTANA, 2009)
Com o lançamento do Windows 2000 Server, foi introduzido o serviço Active
Directory (AD), que foi a principal atualização do sistema em relação a seu
antecessor, o Windows NT Server 4.0. A proposta da Microsoft® é que aos poucos
as aplicações sejam integradas com o AD, ou seja, em vez de cada sistema ter seu
próprio cadastro de usuários, senhas e grupos, ele seja capaz de acessar as contas
14
e grupos do AD e com isso atribuir as respectivas permissões de acesso. (BATTISTI;
SANTANA, 2009)
Em sistemas operacionais do tipo UNIX, a interoperabilidade com os sistemas
de rede da Microsoft (tanto do lado cliente quanto do lado servidor) é feita através do
software Samba.
Segundo Blackman (1997), o Samba é um conjunto de
programas
trabalham
que
juntos
para
permitir
que
clientes
acessem
compartilhamento de arquivos e impressoras.
O Samba 4 lançado em dezembro de 2012, possibilitou a replicação completa
de um controlador AD sem a necessidade de outros programas, como acontecia
com o Samba 3 e versões anteriores. (SAMBA-HISTORY, 2012)
O objetivo deste trabalho é realizar a implementação do Samba 4 em uma
empresa de médio porte, com aproximadamente 400 usuários, para utilizar os
recursos de autenticação centralizada para prover acesso às áreas de rede de cada
departamento e o controle do uso de internet.
A metodologia utilizada para realizar a implementação deste trabalho foi a
utilização de diversos materiais, como manuais disponibilizados pela equipe de
desenvolvimento do Samba 4 e livros relacionados a redes de computadores,
Windows Server e Linux.
O presente trabalho está dividido em quatro capítulos. O primeiro capítulo
aborda as tecnologias envolvidas que servirão de base fundamental para atingir o
objetivo do trabalho. O segundo capítulo aborda os conceitos fundamentais para
funcionamento do Active Directory, incluindo e não se limitando a árvores, grupos,
usuários e outros objetos. No terceiro capítulo tem-se a história, conceitos e
funcionamento do Samba, assim como uma apresentação da versão 4. O quarto
capítulo contém a implementação do Samba 4 como um controlador de domínio
Active Directory e os passos para realizar a configuração do servidor proxy Squid,
para utilizar a base de dados centralizada e prover acesso à Internet.
Por fim, têm-se as considerações finais do trabalho e as referências utilizadas
ao longo de seu desenvolvimento.
15
1 TECNOLOGIAS ENVOLVIDAS
Este capítulo descreve os conceitos e tecnologias que serviram de base para
a implementação do Samba 4 como um controlador de domínio Active Directory em
um servidor Linux.
Para o desenvolvimento do presente trabalho foram utilizadas diversas
tecnologias, interligadas ou não, sendo que todos os softwares utilizados são
gratuitos, segundo enquadramento da Free Software Foundation (FSF). Dentre os
softwares e tecnologias utilizadas destacam-se os protocolos, serviços e sistemas
operacionais.
1.1 TRANSMISSION CONTROL PROTOCOL/INTERNET PROTOCOL (TCP/IP)
O modelo de interconexão TCP/IP foi desenvolvido pelo departamento de
defesa americano para resolver o problema de interconexão de computadores
heterogêneos, sendo uma evolução de trabalhos iniciados no Massachusetts
Institute of Technology (MIT) e contando com a cooperação de várias empresas. Foi
implementado dez anos antes em relação ao modelo de referência Open Systems
Interconnection/International Organization for Standardization (OSI/ISO). (TEIXEIRA
JR. et al., 1998)
Uma das preocupações do Departamento de Defesa dos Estados Unidos era
com a destruição de hosts, pois a rede deveria ser capaz de sobreviver a essas
perdas e manter as comunicações existentes, ou seja, as conexões deveriam
permanecer intactas enquanto as máquinas de origem e destino estivessem
funcionando, independente se algumas máquinas ou linhas de transmissão
deixassem de operar repentinamente. Outra necessidade era que a implementação
deveria ser em uma arquitetura flexível, que fosse capaz de se adaptar a aplicações
com requisitos diferentes, como por exemplo, transferência de arquivos e
transmissão de dados de voz, em tempo real. (TANENBAUM, 2003)
Segundo Teixeira Jr. et al. (1998), os serviços de protocolos TCP/IP podem
ser organizados de acordo com o esquema de camadas proposto pelo modelo de
referência OSI/ISO, sendo que no TCP/IP, o modelo de arquitetura tem base em 4
camadas, ante as 7 camadas do modelo de referência OSI, conforme ilustra a Figura
1.1.
16
Figura 1.1: Modelo de referência TCP/IP
Fonte: Tanenbaum, 2003, p. 46
Segundo Tanenbaum (2003), a camada de aplicação contém todos os
protocolos de nível mais alto. A camada de transporte tem a finalidade de permitir
que os hosts de origem e destino mantenham comunicação. Para isso, são
utilizados o TCP e o User Datagram Protocol (UDP). A camada Inter-redes trabalha
de forma a permitir que os hosts injetem pacotes em qualquer rede e garanta que
eles trafegarão de forma independente até o destino, inclusive receber em uma
ordem diferente da ordem que foram enviados. A camada de host/rede não
especifica exatamente uma regra, excetuando-se o fato de que o host precisa se
conectar através de algum protocolo que permita o envio de pacotes IP.
Em cada camada são encontrados um ou mais protocolos usados na
comunicação entre os pares na mesma camada, por exemplo, o File Transfer
Protocol (FTP) é um protocolo da camada de aplicação, o TCP um protocolo da
camada de transporte, o IP um protocolo da camada inter-redes e o Ethernet é um
protocolo da camada de host/rede. (TEIXEIRA JR. et al., 1998).
As camadas do protocolo TCP/IP representam a forma mais usada de
comunicação entre computadores remotos atualmente, pois suas especificações e
muitas implementações estão disponíveis a um preço mínimo ou de graça.
(TEIXEIRA JR. et al., 1998)
A Figura 1.2 ilustra as camadas e alguns de seus protocolos.
17
Figura 1.2: Protocolos e redes no modelo TCP/IP Inicial
Fonte: Tanenbaum, 2003, p. 47
1.2 DOMAIN NAME SYSTEM (DNS)
O DNS é um serviço de banco de dados distribuído utilizado pelas aplicações
TCP/IP para traduzir endereços simbólicos de estações para endereços IP
numéricos. Cada domínio mantém isoladamente o seu próprio banco de dados e
fornece tais informações através de um serviço para os demais domínios terem
acesso. Sendo assim, o DNS fornece o protocolo para permitir que clientes e
servidores possam se comunicar uns com os outros em ambientes de Serviços de
Redes. (TEIXEIRA JR. et al., 1998)
O software de serviços de nomes do DNS é dividido conceitualmente em dois
componentes: o resolver, que é o módulo de software responsável pela montagem
das consultas e o servidor de nomes, que é o processo responsável por responder
às perguntas. (TEIXEIRA JR. et al., 1998)
O DNS utiliza um grande número de servidores, organizados de maneira
hierárquica e distribuídos por todo o mundo. Nenhum servidor de nomes isolado tem
todos os mapeamentos para todos os hospedeiros da Internet. Em vez disso, os
mapeamentos são distribuídos pelos servidores de nomes. Há três classes de
servidores de nomes: servidores de nome raiz, servidores de nomes de alto nível
(Top-Level Domain – TLD) e servidores de nome com autoridade. (KUROSE; ROSS,
2013)
Por não possuir uma tabela centralizada e sim um sistema de banco de dados
distribuído, não ocorre degradação do serviço à medida que as bases de dados
crescem. O DNS propaga automaticamente as novas informações de suas bases de
dados, para o restante da rede, à medida que essas novas informações forem
solicitadas por outros domínios. Além de propagar as informações de forma
automática, essas só são propagadas para quem tiver interesse nelas, ou seja, essa
18
propagação é feita por demanda. (TEIXEIRA JR. et al., 1998)
Na Internet há 13 servidores de nomes raiz, nomeados de A a M, sendo que a
maior parte deles está localizada na América do Norte. Apesar de nos
referenciarmos a cada um dos 13 servidores como se fossem um único servidor, na
realidade, cada um é um conglomerado de servidores replicados, para fins de
segurança e confiabilidade. (KUROSE; ROSS, 2013)
Na Figura 1.3 é exibida uma lista dos servidores de nome raiz, conforme sua
distribuição geográfica em 2012. É exibido o nome, organização e localização.
Figura 1.3: Servidores DNS raiz em 2012
Fonte: Kurose; Ross, 2013, p. 135
É possível visualizar um mapa completo e atualizado desses servidores,
através do site http://www.root-servers.org, conforme mostrado pela Figura 1.4.
Figura 1.4: DNS Root Servers distribuídos pelo mundo
Fonte: Root-Server, 2013
19
Os servidores TLD são responsáveis por domínios de alto nível, como por
exemplo, domínios com, org, net, edu e gov, além de todos os domínios de alto nível
que identificam os países, como, por exemplo, br, uk, fr, ca e jp. (KUROSE; ROSS,
2013)
Os servidores de nomes com autoridade são aqueles utilizados por empresas
para que seus serviços possam ser acessados pela Internet. Dentre esses serviços
podemos citar servidores web e correio eletrônico. Os servidores de nomes raiz, TLD
e com autoridade pertencem à hierarquia de servidores DNS, como exemplifica a
Figura 1.5. (KUROSE; ROSS, 2013)
Figura 1.5: Hierarquia de servidores DNS
Fonte: Kurose, Ross, 2013, p. 134
Outra funcionalidade muito importante dos servidores DNS é o cache DNS. O
Cache é utilizado extensivamente para melhorar o desempenho e reduzir o tráfego
de mensagens DNS pela Internet e seu funcionamento é extremamente simples.
Quando o servidor recebe uma resposta DNS, ele faz cache das informações em
sua memória local. Se em uma próxima consulta o servidor possuir no cache a
informação para o host em questão, ele fornecerá o endereço desejado, mesmo que
não seja a autoridade para este domínio. (KUROSE; ROSS, 2013)
Todo domínio, independente de ser um único host ou um domínio de nível
superior, pode ter um conjunto de registros de recursos associados a ele. Para um
único host, o registro de recurso mais comum é apenas o seu endereço IP, porém
existem muitos outros tipos de registros de recursos. Um registro de recurso é uma
tupla de cinco campos: Domain Name – informa o domínio ao qual esse registro se
aplica; Time to Live – fornece uma indicação de estabilidade do registo; Class – No
caso de informações relacionadas à Internet, ele é sempre definido como IN; Type –
20
Informa qual o tipo do registro; e Value – um número, nome de domínio ou string
ASCII, sendo que sua semântica dependerá do tipo de registro. Os principais tipos
de registros para o sistema IPv4 são mostrados na Tabela 1.1. (TANENBAUM, 2003)
Tabela 1.1 - Principais tipos de registros de recursos DNS para IPv4
Tipo
Significado
Valor
SOA
Início de autoridade
Parâmetros para essa zona
A
Endereço IP de um host
Inteiro de 32 bits
MX
Troca de mensagens de correio
NS
Servidor de nomes
CNAME
Nome canônico
Nome alternativo de um endereço IP
PTR
Ponteiro
CPU e sistema operacional em ASCII
HINFO
Descrição de host
Texto ASCII não-interpretado
TXT
Texto
Prioridade, domínio disposto a aceitar
correio eletrônico
Nome de um servidor para este
domínio
Fonte: Tanenbaum, 2003, p. 621
No DNS, existe somente um servidor primário (master) para cada domínio,
sendo que os dados do DNS são fornecidos à base de dados do servidor primário
pelo administrador do domínio. Há também o servidor secundário (slave) que possui
a base de dados completa, referente a um determinado domínio replicada a partir do
servidor primário (master). (TEIXEIRA JR. et al.1998)
1.2.1 BIND
O Bind é o software open-source que implementa o protocolo DNS para a
Internet. Além de ser uma implementação de referência desses protocolos, também
é um software de nível de produção, adequado para uso em aplicações de alto
volume e de alta confiança. O Bind fornece uma plataforma robusta e estável sobre
a qual as organizações podem construir sistemas de computação distribuída com o
conhecimento que esses sistemas são totalmente compatíveis com os padrões de
DNS publicados. (ISC-BIND, 2013)
A distribuição do Bind possui três partes: Um servidor de DNS (named –
name daemon) responsável por responder a todas as perguntas recebidas, seguindo
as regras especificadas nos padrões de protocolo DNS; um resolver – um programa
21
que resolve questões sobre nomes, enviando as perguntas para servidores
apropriados e responder adequadamente às respostas dos servidores; e
ferramentas para teste de servidores que servem para auxiliar em testes e
diagnósticos. (ISC-BIND, 2013)
1.3 LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL (LDAP)
O protocolo LDAP é uma versão simplificada do serviço de diretório X.500,
sendo descrito pela RFC 2251. Suas informações são organizadas como uma árvore
e permite a consulta em diferentes componentes. (TANENBAUM, 2003)
Os dados LDAP assumem a forma de listas de propriedades, conhecidas
como “entradas”, cada uma contendo um conjunto de atributos junto com os valores
desses atributos. As entradas são organizadas em uma hierarquia, pelo uso de
nomes distintos, que acaba formando um tipo de caminho de pesquisa. As entradas
LDAP são esquematizadas pelo uso de um atributo objectClass, que especificam os
atributos que uma entrada pode conter, alguns dos quais podem ser exigidos para
validação. O aninhamento e a combinação das classes de objeto são feitos baseado
no conceito de orientação a objetos, sendo que o nível superior da árvore é a classe
top, conforme ilustrada pela Figura 1.6. (NEMETH et al., 2007)
Figura 1.6: Exemplo de uma árvore de diretório LDAP
Fonte: Carter, 2003, p. 10
A tabela 1.2 lista alguns nomes de atributos comuns em hierarquias LDAP.
22
Tabela 1.2 - Nomes de atributo comuns encontrados em hierarquias LDAP
Atributo
Significado
O que é
Atributo
Organização
ou
Unidade Organizacional
cn
Nome Comum
dc
Componente de domínio
objectClass Classe de objetos
Identifica frequentemente a entrada de
primeiro nível de uma instalação
Uma subdivisão lógica
O nome mais natural para representar a
entrada
Utilizado em sites que modelam sua
hierarquia LDAP com base no DNS
Esquema ao qual os atributos dessa
entrada obedecem
Fonte: Nemeth et al., 2007, p. 362
Segundo Battisti e Santana (2009), um nome LDAP é formatado pelo caminho
completo do objeto, partindo do domínio raiz, até chegar ao objeto referenciado.
Serão usados os exemplos a seguir, para entender o formato de um nome LDAP:
CN=jsilva,OU=contabilidade,DC=vendas,DC=abc,DC=COM – Este nome
representa o usuário jsilva, cuja conta esta contida na unidade organizacional
contabilidade do domínio vendas.abc.com.
CN=maria,OU=auditoria,DC=euro,DC=vendas,DC=abc,DC=COM
–
Este
nome representa o usuário maria, cuja conta esta contida na unidade organizacional
auditoria do domínio euro.vendas.abc.com.
1.4 KERBEROS
O Kerberos é um protocolo de autenticação de rede, sendo desenvolvido para
prover forte autenticação para aplicações cliente/servidor com o uso de criptografia
através de senha. Uma implementação gratuita desse protocolo está disponível
através do MIT e também em diversos produtos comerciais. (KERBEROS, 2013)
Segundo Garman (2003), a definição completa do que o Kerberos provê é:
segurança, login unificado, confiabilidade e mutua autenticação de serviços de
terceiros, destacando-se os seguintes recursos:
Segurança – As senhas nunca são transmitidas sem criptografia pela rede. O
Kerberos é o pioneiro na utilização de tickets. Os tickets são mensagens
criptografadas com tempo de validade pré-definido que provê a identidade para um
23
servidor requisitante, sem a necessidade do envio constante de senhas pela rede ou
o armazenando das senhas no disco local do servidor.
Login unificado – O usuário identifica-se (provê seu usuário e senha)
apenas uma vez. Uma vez autenticado no Kerberos, no início da sessão, suas
credenciais são passadas de forma transparente para todos os outros recursos que
ele acessar durante o dia.
Confiança em terceiros – refere-se ao fato de que o Kerberos funciona
através de um servidor de autenticação central que todos os sistemas na rede
devem confiar. Todas requisições de autenticação passam obrigatoriamente pelo
servidor Kerberos centralizado.
Autenticação mútua – o Kerberos assegura-se que não somente o usuário
que digitou seu usuário e senha seja quem ele é, porém que o servidor que ele se
comunica seja quem ele é. A autenticação mútua protege a confidenciabilidade de
informações sensíveis que assegura que o serviço que o usuário se comunica é
genuíno.
A Figura 1.7 exemplifica o funcionamento de um domínio Kerberos.
Figura 1.7: Exemplo de domínio Kerberos
Fonte: Siqueira, 2009, p. 110
24
Em resumo, o Kerberos é uma solução de diversos problemas de segurança
de rede pois provê as ferramentas de autenticação e forte criptografia sobre a rede
para ajudar a manter seguras suas informações de sistemas em toda a empresa.
(KERBEROS, 2013)
O sistema de autenticação utilizado no Kerberos atinge diversos objetivos
para melhorar a segurança mantendo a conveniência ao mesmo tempo. Ele provê
autenticação centralizada em um servidor (ou um conjunto de servidores), cada um
contendo uma base de dados de todos os usuários e serviços que utilizam o
Kerberos. Para não permitir o tráfego de senhas sem criptografia na rede, o
Kerberos trabalha com tickets criptografados para assegurar a identidade do usuário
e dos servidores de rede. Esses tickets são gerados assim que o usuário se
autentica na rede. (GARMAN, 2003)
1.5 LINUX
Segundo Siqueira (2009), o Linux é um sistema operacional de código aberto
iniciado por Linus Torvalds, cujo objetivo inicial era desenvolver um sistema básico
para estudo e lazer. O Linux em si é apenas o núcleo (kernel) do sistema. Os
programas, compiladores e outros componentes do sistema são projetos de
terceiros, sendo que em sua maioria fazem parte do projeto GNU. O projeto GNU é
liderado por Richard Stallman, renomado desenvolvedor que idealizou todo um
sistema de código aberto, que funcionasse à semelhança dos sistemas Unix
tradicionais.
Pelo fato de o Linux ser um sistema de código aberto existem pessoas,
empresas ou organizações que decidem distribuir o Linux junto com outros
aplicativos, sendo esse o significado essencial de distribuição. Cada distribuição tem
suas próprias características, como por exemplo o sistema de instalação, objetivos,
localização de programas, nome de arquivos, dentre outros. (SILVA, 2010)
Na década de 1990, o Sistema GNU/Linux ganhou muito espaço entre os fãs
de dispositivos de gerenciamento de rede. Ao lançar mão de um sistema
praticamente pronto, que poderia ser alterado e sem restrições de uso, esses
fabricantes reduziam drasticamente os custos de desenvolvimento do produto. O
projeto era beneficiado em consequência, pois todas as melhorias feitas por esses
fabricantes passavam a fazer parte do sistema operacional nas novas versões.
25
(SIQUEIRA, 2009)
Em 1992, Orest Zborowski adaptou o sistema X Window para funcionar com o
Linux. O X Window é uma interface gráfica livre, responsável pelas janelas exibidas
na tela. Essa inovação trouxe o Linux para a versão 0.95. A meta para a versão 1.0
era que o sistema deveria possuir todos os recursos de redes essenciais. Tão logo
as metas para um sistema com recursos satisfatórios e estabilidade foram
alcançadas, surgiram as primeiras distribuições Linux. (SIQUEIRA, 2009)
A reunião do kernel, ferramentas GNU e outros aplicativos utilitários damos o
nome de distribuição. Uma distribuição pode, inclusive, utilizar o kernel Linux e as
ferramentas GNU, adicionando ao pacote de aplicativos softwares proprietários
licenciados, ou adotar a utilização de ferramentas de configuração próprias,
protegidas por copyright. Essas combinações tomam forma nas cerca de 250
distribuições baseadas em Linux que existem atualmente, sob vários tipos de
licença, e com vários enfoques diferentes: existem as distribuições voltadas para
jogos, as educacionais, aquelas voltadas para trabalhos de escritório, para
servidores, etc. (CARMONA, 2007)
O projeto Linux precisava ter uma identidade que o fizesse ser facilmente
reconhecido. Linus Torvalds é fã de pinguins desde o dia que fora mordido por um
em um zoológico australiano. Pela Usenet, ele lançou um concurso para a criação
do logotipo sendo que a ilustração deveria exibir um pinguim um pouco acima do
peso, como que satisfeito logo após finalizar uma refeição. Larry Ewing fez a
imagem vencedora, conforme Figura 1.8, e a mesma foi batizada de Tux.
(SIQUEIRA, 2009)
Figura 1.8: O mascote do Linux - Tux
Fonte: Siqueira, 2009, p. 20
26
Dentre os diversos recursos presentes no sistema operacional Linux, podemse citar: multitarefa real; multiusuário; utilização de permissões de acesso a
arquivos, diretórios e programas em execução na memória; modularização –
somente é carregado na memória o que é utilizado, inclui drivers de periféricos e
recursos do sistema; suporte nativo a diversas tecnologias como, por exemplo,
balanceamento de carga, ip alias, failover, vlan, bridge, trunking, open shortest path
first (OSPF), border gateway protocol (BGP); suporte nativo a múltiplas CPU's;
roteamento estático e dinâmico de pacotes; dentre outros. (SILVA, 2010)
1.5.1 Debian GNU/Linux
Segundo Carmona (2007), em 1993 o americano Ian Murdock lançou o
projeto Debian, adotando o modelo de desenvolvimento do Linux para uma
distribuição em sua totalidade.
Debian é, ao mesmo tempo, o nome de uma distribuição não comercial do
kernel GNU/Linux e de um grupo de desenvolvedores voluntários, espalhados pelo
mundo. Como o Debian é fortemente estruturado tanto na filosofia quanto na
concepção e utilização de ferramentas do projeto GNU ele é usualmente chamado
de Debian GNU/Linux. (CARMONA, 2007)
O Debian GNU/Linux possui suporte a língua Portuguesa, é a única que tem
suporte a quatorze arquiteturas diferentes, por exemplo, i386, IA64, AMD64, Alpha,
Sparc, PowerPc, Macintosh e Arm. (SILVA, 2010)
O Projeto Debian lançou suas versões 0.9x em 1994 e 1995. Neste último
ano ganhou notoriedade o sistema de empacotamento do Debian, o dpkg,
principalmente devido a sua alta taxa de compactação. Em 1996, Bruce Perens
substituiu Ian Murdock como líder do projeto. A primeira ação da nova liderança,
seguindo a linha “filosófica” do Debian foi a redação de vários documentos
importantes: o contrato social e o free software guidelines.
Segundo DEBIAN-RELEASES (2013), o Debian Gnu/Linux possui três
versões, stable, testing e unstable, suas respectivas características são:
stable (estável): é a última versão oficial lançada, sendo a recomendada para
uso em produção;
testing (testes): contém os pacotes que ainda não foram aceitos na versão
estável, mas que estão na fila para aprovação. A vantagem do uso dessa
27
distribuição é que a mesma possui versões mais atualizadas dos softwares;
unstable (instável): é onde o desenvolvimento ativo do Debian ocorre, sendo
uma distribuição mais utilizada por desenvolvedores.
Os nomes das versões oficiais de lançamento são retirados do filme Toy Story
da Pixar. As versões já lançadas são: 1.1 – Buzz, 1996; 1.2 – Rex, 1996; 1.3 – Bo, 2
de junho de 1997; 2.0 – Hamm, 24 de julho 1998; 2.1 – Slink, 9 de março de 1999;
2.2 – Potato, 15 de agosto 2000; 3.0 – Woody, 19 de julho de 2002; 3.1 – Sarge, 6
de junho de 2005; 4.0 – Etch, 8 de abril de 2007; 5.0 – Lenny, 15 de fevereiro de
2009; 6.0 – Squeeze, 6 de fevereiro de 2011; 7.0 – Wheezy, 4 de maio de 2013. A
próxima versão, ainda sem previsão de lançamento, será nomeada Jessie.
(DEBIAN-RELEASES, 2013)
28
2 MICROSOFT® ACTIVE DIRECTORY
Este capítulo descreve os conceitos e tecnologias relacionadas ao
funcionamento e estrutura interna do Microsoft Active Directory.
2.1 NOMENCLATURAS E CAMINHOS UNC
O AD além de uma base de dados e um conjunto de serviços também
interage e depende de vários outros serviços e padrões para seu completo
funcionamento. O AD foi projetado baseado em padrões de diretórios, definidos por
entidades
internacionais
de
padronização,
tais
como
a
International
Telecommunication Union (ITU), International Organization for Standardization (ISO)
e o Internet engineering Task Force (IETF). Essas instituições trabalham em
conjunto ou em colaboração para definir uma série de padrões que dão suporte a
serviços de diretórios. (BATTISTI; SANTANA, 2009)
Um padrão de uso genérico é o X.500 porém apesar de sua grande
abrangência ele é bastante complexo e acabou por não ser adotado em sua
totalidade como um padrão de mercado para a criação de serviços de diretórios. Um
mais leve e que efetivamente tornou-se padrão de mercado é o LDAP. O LDAP
fornece mecanismos de acesso aos objetos do AD, de tal maneira que qualquer
programa ou sistema habilitado ao padrão LDAP será capaz de acessar as
informações do AD. O padrão LDAP define um sistema de nomeação hierárquico,
através do qual é possível referenciar qualquer objeto do AD. (BATTISTI; SANTANA,
2009).
Segundo Battisti e Santana (2009), um nome LDAP é formado pelo caminho
completo do objeto, a partir do domínio raiz até chegar ao objeto referenciado. Nesta
nomenclatura hierárquica são utilizadas algumas abreviaturas, conforme descrito a
seguir:
CN: common name: por exemplo, o nome da conta de um usuário, grupo ou
computador;
OU: faz referência a uma unidade organizacional;
DC: um componente de domínio: Normalmente o nome de um domínio;
O: Nome da organização. Normalmente representado pelo nome do domínio
29
Root;
C: Country: identificação de país, não sendo normalmente utilizado;
Segundo Battisti e Santana (2009), a nomenclatura para localização de
recursos em um servidor segue o padrão Universal Naming Convention (UNC).
Neste padrão, um recurso é identificado pelo nome do servidor, separado do nome
do recurso por uma barra. Abaixo são ilustrados alguns exemplos comuns de uso
deste tipo de nomenclatura:
\\server01.vendas.abc.com\documentos
–
Caminho
para
uma
pasta
compartilhada com o nome de compartilhamento “documentos” no servidor server01
do domínio vendas.abc.com;
\\10.10.20.5\documentos – Exemplo anterior utilizando o número de IP do
servidor ao invés do nome DNS;
\\pr-server.prod.abc.com\laser01
–
Caminho
para
uma
impressora
compartilhada com o nome de compartilhamento “laser01” no servidor pr-server do
domínio prod.abc.com;
\\10.10.30.5\laser01 – Exemplo anterior onde foi utilizado o endereço IP do
servidor ao invés do nome DNS;
vendas.abc.com\jsilva
–
referência
ao
usuário
jsilva
do
domínio
vendas.abc.com;
VENDAS\jsilva – referência ao usuário jsilva do domínio vendas.abc.com
utilizando apenas o nome NETBIOS.
2.2 INTRODUÇÃO AO ACTIVE DIRECTORY
O AD é uma implementação da Microsoft, de um serviço de diretórios que
provê autenticação centralizada e serviços de autorização com armazenamento e
gerenciamento de segurança, como por exemplo, usuários, grupos de computadores
e controle de permissão de recursos de rede. Adicionalmente, uma grande variedade
de produtos voltados para empresas, incluindo o Servidor Exchange e os Serviços
Sharepoint,
necessitam
do
AD
para
funcionamento.
Os
requisitos
para
funcionamento de um servidor Windows (versão 2008) são ilustrados na tabela 2.1.
(POLICELLI, 2009)
30
Tabela 2.1 - Requisitos de Hardware – Windows Server 2008
Componente
Requisitos
Processador
Mínimo: 1GHz (para processadores x86) ou 1.4GHz (para
processadores x64) – Recomendado: 2GHz ou mais
Memória
Mínimo: 512MB – Recomendado: 2GB ou mais
Máximo (sistemas de 32-bit: 4GB (versão Standard) ou 64GB
(versões Enterprise ou Datacenter)
Máximo (Sistemas de 64-bit): 32GB (versão Standard) ou
2 TB (versões Enterprise, Datacenter, ou Itanium-Based)
Espaço em
Mínimo: 10GB – Recomendado: 40GB ou mais
disco/outros
NOTA: Computadores com mais de 16GB de memória requerem
mais espaço em disco para paginação, hibernação e logs.
Drive de DVD-ROM
Monitor com resolução VGA (800 x 600) ou superior
Teclado/Mouse
Fonte: Policelli, 2009, p. 7
Segundo Battisti e Santana (2009), os principais elementos que compõem e
mantém em funcionamento o AD são:
Domínios, Árvores, Relações de
confiança/Florestas, Principais objetos do AD (contas de usuário, grupos de usuários
e contas de computador), Unidades organizacionais, Schema e Sites.
Esses elementos compõem a chamada estrutura lógica do AD, ou seja, a
maneira como o AD é apresentado ao administrador e aos usuários, quando estes
utilizam as ferramentas de administração e pesquisa do AD. A estrutura lógica pode
ser diferente (normalmente é) da estrutura física. A estrutura física determina onde
são armazenadas as informações do AD, e as informações são sincronizadas entre
os diferentes Domain Controller (DC). Este processo conhecido como replicação.
(BATTISTI; SANTANA, 2009)
Segundo Battisti e Santana (2009), além do banco de dados com informações
sobre os elementos (objetos) que compõem o domínio, o AD também disponibiliza
uma série de serviços que executam as seguintes funções: Replicação entre
controladores de Domínio; Autenticação; Pesquisa de objetos na base de dados;
Interface de programação para acesso aos objetos do diretório.
Os domínios AD são nomeados usando o DNS. Pode-se agrupar domínios
que fazem parte do mesmo DNS dentro da mesma árvore do domínio sendo esse o
31
motivo de o DNS ser um dos pré-requisitos para que o AD possa ser configurado e
funcionar perfeitamente. (HUNTER; ALLEN, 2009)
A Figura 2.1 representa a hierarquia de um domínio Active Directory e entre
seus objetos.
Figura 2.1: Hierarquia de um domínio Active Directory
Fonte: Desmond, et. al, 2013, p. 6
2.2.1 Domínios
Um domínio é constituído por um grupo de servidores, estações de trabalho
que concordam em centralizar os nomes de contas de usuário e máquinas em um
banco de dados compartilhado, e com isso permitir que um usuário tenha apenas
um nome de conta e senha e possa utilizá-lo em qualquer computador dentro do
domínio de uma organização. (MINASI, M. et al., 2003)
Segundo Battisti e Santana (2009), todos os servidores que contém uma
cópia da base de dados do AD fazem parte do domínio. Cada estação de trabalho
que faz parte do domínio possui uma conta de computador criada, sendo essa o
mesmo nome da estação na rede.
Um domínio também pode ser definido com um limite administrativo e de
segurança pois a conta de administrador possui permissão de acesso em todos os
recursos do domínio mas não em recursos de outros domínios. Ele é um limite de
segurança porque cada domínio tem definições de políticas de segurança que se
32
aplicam as contas de usuário e demais recursos dentro do domínio. Em um domínio
baseado no AD, é possível ter dois tipos de servidores: DC e Servidor Membro
(Member Server). (BATTISTI; SANTANA, 2009)
2.2.2 Árvores
Segundo Battisti e Santana (2009), uma árvore é o agrupamento ou arranjo
hierárquico de um ou mais domínios que compartilham o mesmo nome de espaço,
conforme exemplificado na Figura 2.2.
Figura 2.2: Domínios de uma árvore
Fonte: Battisti; Santana, 2009, p. 296
Na Figura 2.2 é exibida uma árvore com 7 (sete) domínios, sendo que o
domínio pai (ou root) é abc.com. Os domínios seguintes são vendas.abc.com e
prod.abc.com. Quando é formada uma hierarquia de domínios, nome de espaço
significa que os nomes dos objetos filho contém o nome do objeto pai. Com isso
uma árvore de diretórios forma um espaço de nomes contínuo, onde o nome do
objeto filho sempre contém o nome do objeto pai. (BATTISTI; SANTANA, 2009)
2.2.3 Relação de Confiança e Florestas
Uma floresta é uma coleção de uma ou mais árvores de domínio. Estas
árvores de domínio compartilham o mesmo esquema e contêiner, e essas árvores
estão conectadas entre si através de relações de confiança transitivas. (DESMOND,
33
et al., 2013)
Por meio do uso de relações de confiança entre domínios, é possível que um
usuário de domínio possa fazer logon com sua conta de usuário e senha, mesmo
utilizando o computador de outro domínio. As relações de confiança são criadas
automaticamente entre os domínios de uma árvore de domínios. As relações são
bidirecionais, ou seja, se o domínio “Dom A” confia no domínio “Dom B”, isso
significa que o domínio “Dom B” também confia no domínio “Dom A”. As relações de
confiança são transitivas, ou seja, se “Dom A” confia em “Dom B”, o qual confia em
“Dom C”, então o “Dom A” também confia no “Dom C” e vice-versa. (BATTISTI;
SANTANA, 2009)
A Figura 2.3 ilustra o sistema de relações de confiança bidirecional.
Figura 2.3: Relações de confiança bidirecionais e transitivas
Fonte: Battisti; Santana, 2009, p. 307
Segundo Battisti e Santana (2009), as relações de confiança criadas
automaticamente, entre os domínios de uma árvore apresentam as características
descritas anteriormente: Automaticamente criadas, bidirecionais e transitivas. Porém
existem situações em que pode ser necessária a criação de outros tipos de relações
34
de confiança. Por exemplo, pode ser necessária a criação de uma relação de
confiança entre um dos domínios da sua rede, com um domínio baseado no
Windows NT Server da rede de um fornecedor ou parceiro de negócio. Ou pode ser
necessária a criação de uma relação de confiança entre um domínio da sua rede
com um domínio da rede de outra empresa, ambos utilizando a mesma versão do
Windows Server. Neste caso será necessário criar uma relação de confiança com
um domínio em outra árvore de domínios. Abaixo são descritos os tipos de relação
de confiança entre domínios e árvores de domínios.
Transitiva bidirecional entre um Domínio pai e um Domínio filho: Quando
o Administrador cria um domínio filho, uma relação de confiança bidirecional e
transitiva é criada, automaticamente, pelo assistente de instalação do AD. Por
exemplo, um domínio root chamado abc.com e cria um domínio filho chamado
vendas.abc.com, o assistente de instalação do AD, automaticamente cria durante a
criação do domínio vendas.abc.com, uma relação de confiança bidirecional e
transitiva entre os domínios abc.com e vendas.abc.com.
Transitiva bidirecional entre uma árvore de domínios e o domínio root de
uma floresta: Pode-se juntar várias árvores de domínios para formar uma floresta.
Este tipo de relação de confiança é automaticamente criado, quando cria-se um
novo domínio em uma floresta já existente.
Externa, não transitiva, unidirecional ou bidirecional: Este tipo de
relacionamento é criado com um domínio externo localizado em outra floresta. Se o
domínio for baseado no NT Server 4.0 a relação será unidirecional, caso contrário
será bidirecional. Cabe ressaltar que para ser bidirecional a relação deve ser criada
e configurada nos dois domínios. Para criar uma relação externa, bidirecional entre o
domínio abc.com da árvore abc.com e o domínio vendas.xyz.com da árvore
xyz.com, a relação tem que ser criada no domínio abc.com pelo administrador deste
domínio e também no domínio vendas.xyz.com pelo respectivo administrador.
Somente após esse processo ela será bidirecional. Caso contrário, se for criada
somente em um dos domínios, ela será unidirecional.
A Figura 2.4 ilustra uma relação de confiança deste tipo.
35
Figura 2.4: Relações de confiança externas – unidirecional ou bidirecional
Fonte: Battisti; Santana, 2009, p. 308
Realm, transitiva ou não transitiva, unidirecional ou bidirecional: Este
tipo de relação é criado entre um domínio baseado no Windows Server e outros
domínios não Windows, também baseado no protocolo Kerberos, como por exemplo
o UNIX. O protocolo Kerberos é um padrão de fato que fornece, dentre outros,
serviços de autenticação em um domínio do Windows Server. Outros sistemas
operacionais também utilizam o Kerberos. Este tipo de relacionamento poderia ser
utilizado, por exemplo, para que as contas de um domínio baseado no UNIX,
pudessem receber permissões de acesso em recursos de um domínio baseado no
Windows Server.
Entre florestas, transitiva, unidirecional ou bidirecional: Este tipo de
relacionamento é criado entre os domínios root de duas florestas. Pode ser do tipo
unidirecional ou bidirecional. Se for do tipo bidirecional, os usuários de uma floresta
podem acessar recursos nos domínios da outra floresta e vice-versa. Um exemplo
prático de uso deste tipo de relação de confiança seria quando é feita a fusão de
duas empresas e seja necessário permitir que os usuários de uma empresa possam
acessar recursos nos servidores da rede da outra empresa.
Shortcut, transitiva, unidirecional ou bidirecional: Este tipo de relação de
confiança é utilizado para melhorar o tempo de logon entre dois domínios, em uma
36
floresta. O principal objetivo deste tipo de relação de confiança é otimizar os tempos
de logon. Quanto mais afastados (quanto maior o caminho e o número de relações
de confiança a ser percorrido), menor será o tempo de logon entre os domínios, se o
Administrador criar uma relação de confiança do tipo Shortcut. Importante: Só faz
sentido criar este tipo de relação de confiança, se for comum usuários de um
domínio acessarem recursos do outro domínio e se o tempo de logon apresentar
tempos muito elevados a 2.5 exemplifica uma relação desse tipo. A Figura 2.5 ilustra
uma relação de confiança desse tipo.
Figura 2.5: Relação de confiança do tipo Shortcut
Fonte: Battisti; Santana, 2009, p. 308
2.2.4 Contas de Usuário
Todo usuário que quer ter acesso aos recursos dos computadores do domínio
(pastas compartilhadas, impressoras compartilhadas, etc) deve ser cadastrado no
AD. Cadastrar o usuário, significa criar uma conta de usuário e uma senha. Ao
cadastrar um usuário, outras informações tais como: seção, nome completo,
endereço, telefone, etc, podem ser cadastradas. (BATTISTI; SANTANA, 2009)
As contas de usuário são os objetos mais frequentemente usados no AD.
Através desse tipo de objeto são criados os meios de autenticação e autorização
para acessar recursos disponíveis na rede. Em particular, o AD gerencia
informações sobre senhas de usuário, grupos, ativar/desativar ou expirar uma conta
de usuário. (HUNTER; ALLEN, 2009)
37
Segundo Battisti e Santana (2009), uma conta precisa ser criada somente
uma vez, em um dos Controladores de domínio. Após criada, a conta será replicada
para os demais DC do domínio. As contas de usuário também podem ser criadas
com o Windows 2000 Professional, Windows XP Professional ou Windows 7
Professional. As contas criadas nestes computadores são conhecidas como contas
locais, ou seja, existem somente no computador onde foram criadas, sendo
recomendado que:
Todo usuário que acessa a rede deve ter a sua própria conta: Não é
recomendado que dois ou mais usuários compartilhem a mesma conta. A conta é a
identidade do usuário para a rede;
Com base nas contas de usuários e grupos: O administrador pode habilitar
ou negar permissões de acesso aos recursos da rede, como por exemplo, restringir
o acesso às pastas e arquivos compartilhados, definindo quais usuários podem ter
acesso e qual o nível de acesso de cada usuário – leitura, leitura e alteração,
exclusão e assim por diante;
Utilização de um padrão para o nome das contas de usuários: Não
podem existir dois usuários com o mesmo nome de logon dentro do mesmo
Domínio. Para isso é importante que seja definido um padrão e no caso de nomes
iguais deve ser definido uma maneira de diferenciá-los;
Podem ter no máximo 20 caracteres e os seguintes caracteres não
podem ser utilizados: “ / \ : ; [ ] | = , + * ? < > e
Sempre que você for cadastrar um usuário também deve ser cadastrada
uma senha para o usuário: O administrador pode especificar um número mínimo
de caracteres aceito para a senha. O número máximo de caracteres da senha é 128.
Para as senhas, o Windows Server distingue letras maiúsculas de minúsculas.
2.2.5 Grupos de Usuários
Segundo Battisti e Santana (2009), um grupo de usuários é uma coleção de
38
contas de usuários. A principal função dos grupos de usuários é facilitar a
administração e a atribuição de permissões para acesso a recursos, tais como:
pastas compartilhadas, impressoras remotas, serviços diversos, etc, pois em vez de
conceder permissões individualmente para cada usuário que necessitar acessar um
determinado recurso, cria-se um grupo, inclui os usuários no grupo e atribui
permissões para o grupo. Para que um usuário tenha permissão ao recurso, basta
incluir o usuário no grupo, pois todos os usuários de um determinado grupo, herdam
as permissões dos grupos aos quais o usuário pertence. A Figura 2.6 exemplifica a
herança de permissões.
Figura 2.6: Usuário herda as permissões do grupo
Fonte: Battisti; Santana, 2009, p. 292
Segundo Desmond, et al. (2013), o AD suporta três escopos de grupo: Local,
Global e Universal. Grupos em cada um desses escopos comportam-se de forma
diferente baseado nos níveis de funcionalidade do domínio e da floresta. Cada grupo
acima relacionado pode ter dois tipos: distribuição e segurança. Se o tipo é
distribuição, o SID não é adicionado ao token durante o logon, não podendo ser
utilizado para propósitos de segurança. Grupos de distribuição são normalmente
utilizados para listas de distribuição de mensagens (grupos de e-mail, por exemplo)
porém também podem ser utilizados para propósitos de segurança em aplicativos
com suporte a grupos LDAP porém que não utilizem o modelo de segurança do
Windows.
Segundo Battisti e Santana (2009), o escopo de um grupo determina em que
partes do domínio ou de uma floresta o grupo será visível, podendo ser utilizado
para receber permissões de acesso aos recursos de rede. As principais
características e uso de cada tipo são:
Universal: Pode ser utilizado em qualquer parte do domínio; Pode conter
39
contas de usuários, outros grupos universais e grupos globais de qualquer domínio;
Pode ser membro de grupos locais do domínio ou grupos universais e grupos
globais de qualquer domínio; Pode receber permissões para recursos localizados
em qualquer domínio.
Global: Pode ser utilizado em qualquer domínio; Pode conter contas de
usuários e grupos globais do mesmo domínio; Pode ser membro de grupos
universais e grupos locais do domínio, de qualquer domínio e pode ser membro de
qualquer grupo global do mesmo domínio; Pode receber permissões para recursos
localizados em qualquer domínio.
Local: Utilizados para atribuir permissões de acesso aos recursos de rede.
Segundo Desmond, et al. (2013), pode haver necessidade de conversão entre
tipos, contudo existem algumas restrições e observações, abaixo listadas:
•
Grupos de segurança podem ser convertidos em grupos de distribuição;
•
Grupos de distribuição podem ser convertidos em grupos de segurança;
•
Um grupo Local pode ser convertido em um grupo universal desde que o
grupo local não seja membro de outro grupo local;
•
Um grupo global pode ser convertido em um grupo universal desde que o
grupo global não seja membro de outro grupo global;
•
Um grupo do domínio universal pode ser convertido em um grupo global
desde que o grupo local não seja membro de outro grupo local;
•
Um grupo universal pode ser convertido para um global desde que todos os
membros no grupo sejam usuários do grupo;
•
Um grupo universal pode ser convertido para local.
2.2.6 Contas de Computador
Segundo Battisti e Santana (2009), estações de trabalho que rodam o
Windows NT Workstation 4.0, Windows 2000 Professional, Windows XP Professional
ou Windows 7 e que fazem parte do domínio, devem ter uma conta de computador
no AD. Servidores, sejam membros ou DCs, rodando Windows NT Server 4.0 ou
Windows Server, também precisam possuir contas de computador no AD. A conta de
40
computador pode ser criada antes do computador ser adicionado ao domínio ou no
momento em que o computador é configurado para fazer parte do domínio. A conta
do computador deve ter o mesmo nome do computador na rede. Por exemplo, um
computador com o nome de microxp01, terá uma conta no AD, com o nome:
microxp01. Computadores rodando Windows 95/98/Me, mesmo tendo acesso à lista
de usuários e grupos do domínio, não terão contas de computador criadas no AD.
2.2.7 Unidades Organizacionais
Segundo Battisti e Santana (2009), uma unidade organizacional é uma
divisão lógica do domínio, a qual pode ser utilizada para organizar os objetos de
determinado domínio em um agrupamento lógico para efeito de administração.
Segundo Desmond, et al. (2013), quando se visualiza internamente um
domínio AD, se enxerga uma estrutura hierárquica dos objetos. Esta hierarquia é
feita de objetos que podem servir de contêiner e outros não. O primeiro tipo de
contêiner que será criado para acomodar os objetos é chamado de Unidade
Organizacional. Uma unidade organizacional também pode possuir políticas de
grupos específicas aplicadas a ela.
Segundo Battisti e Santana (2009), as Unidades Organizacionais devem ser
utilizadas quando:
For necessário representar a estrutura e organização da companhia em
um domínio. Sem a utilização de Unidades Organizacionais, todas as contas de
usuário serão mantidas e exibidas em uma única lista, independente da localização,
departamento ou função do usuário;
For necessário delegar tarefas administrativas sem para isso dar
poderes em todo o Domínio. Com o uso de Unidades Organizacionais, poderão
ser concedidas permissões para um usuário somente em nível de Unidade
Organizacional;
Facilitar e melhor acomodar alterações na estrutura da companhia. Por
exemplo, é mais fácil mover contas de usuário entre Unidades Organizacionais do
que entre domínios.
A Figura 2.7 ilustra a divisão de um domínio em Unidades Organizacionais.
41
Figura 2.7: Divisão de um domínio em Unidades Organizacionais
Fonte: Battisti; Santana, 2009, p. 304
2.2.8 Schema
Segundo Battisti e Santana (2009), a definição de todos os objetos do AD e
demais informações esta contida no que é conhecido como Schema do AD,
utilizando um modelo de banco de dados hierárquico, ou seja, a definição de cada
objeto e seus atributos está contida no Schema. Quando um novo objeto é criado, as
informações são validadas com base nas definições contidas no Schema antes que
o objeto seja salvo na base de dados do AD. O Schema é feito de objetos, classes e
atributos, sendo que o Schema definido por padrão com o AD contém um número de
classes e atributos que atende as necessidades da maioria das empresas, sendo
permitido ao administrador modificar as classes existentes ou adicionar novas
classes ou atributos, sendo que essas modificações devem ser cuidadosamente
planejadas, pois afetarão toda a árvore de domínios. Todos os domínios de uma
árvore têm que utilizar o mesmo Schema, ou seja, não podem ser utilizados
diferentes Schemas para os diferentes domínios de uma árvore de domínios.
Uma
característica
interessante
do
AD,
não
comum
em
outras
implementações do LDAP, é que o Schema é armazenado no AD como um conjunto
de Objetos. Isso significa que o Administrador pode utilizar ferramentas para
gerenciar o Schema, da mesma forma que faria em outros objetos sem a
necessidade de desligar ou reiniciar o AD. Todos os Schemas são armazenados no
42
contêiner Schema, como por exemplo, cn=schema,cn=configuration,<Floresta>. O
Schema é composto por duas classes de objetos: classSchema e attributeSchema.
O classSchema é responsável pela definição das classes e o attributeSchema é
responsável pela definição de atributos. O contêiner Schema possui um terceiro tipo
de objeto chamado subSchema, também conhecido como abstractSchema, o qual é
definido no LDAP versão 3 (RFC 2251). (HUNTER; ALLEN, 2009)
Cada floresta pode conter um único Schema, ou seja, o Schema tem que ser
único ao longo de todos os domínios da floresta. Uma cópia do Schema é replicada
em todos os controladores de domínio da floresta, sendo que um único DC controla
a estrutura do Schema, sendo conhecido como Schema Master. A cópia replicada
para os outros DC é uma cópia somente leitura. Para que um usuário possa realizar
alterações no Schema, ele deve ser membro do grupo Schema Admins. Caso um
usuário com as permissões adequadas tente realizar a alteração do Schema em um
DC que não seja o Schema Master, será emitida uma mensagem de erro. Após as
modificações no Schema, elas serão replicadas a partir do Schema Master para os
demais DCs da floresta ou árvore de domínios. Cada DC mantém uma cópia do
Schema na memória do servidor para melhorar a performance de operações
relacionadas ao Schema. A versão armazenada no Cache do servidor é
automaticamente atualizada (em intervalos de tempo definidos) cada vez que o
Schema é atualizado. (BATTISTI; SANTANA, 2009)
2.2.9 Sites
O AD possui um elemento conhecido como site que é utilizado para
representar a divisão física da rede e, é de extrema importância para a
implementação de um sistema de replicação otimizado das informações do AD,
entre os diversos DCs de um domínio. Um site no AD é utilizado para representar a
estrutura física da rede. As informações sobre topologia da rede, contidas nos
objetos site e link entre sites são utilizadas pelo AD para a criação de configurações
de replicação otimizadas, sempre procurando reduzir o máximo possível o tráfego
através de links de WAN. Um site normalmente é definido com uma ou mais redes
conectadas por um caminho de alta velocidade, ou seja, é definido por um ou mais
endereços IP e uma ou mais máscaras de sub-rede, ou seja, um conjunto de redes e
sub-redes conectadas por um caminho de alta velocidade. (Battisti; Santana, 2009)
43
Segundo Battisti e Santana (2009), a utilização de sites e links entre sites
facilita a implementação de várias atividades no AD, destacando-se:
Replicação: O AD procura equilibrar a necessidade de manter os dados
atualizados em todos DCs, com a necessidade de otimizar o volume de tráfego
gerado devido à replicação das informações entre os DCs do domínio, sendo que a
replicação entre os DCs de um mesmo site ocorre mais frequentemente do que
entre DCs de sites diferentes.
Autenticação: A informação sobre sites auxilia o AD a fazer a autenticação
dos usuários de uma maneira mais rápida e eficiente. Quando um usuário faz logon
no domínio, o AD primeiro tenta localizar um DC dentro do site definido para a rede
do usuário, evitando que tráfego de autenticação desnecessário seja gerado em
links mais lentos (WAN).
Serviços que possuem “conhecimento” sobre as configurações de sites
existentes na rede: Por exemplo, quando um usuário tenta acessar um serviço que
utiliza este recurso, o serviço tentará fazer com que o usuário acesse um servidor do
mesmo, evitando dessa forma que o usuário acesse um servidor remoto em outro
site gerando tráfego em links mais lentos (WAN). Um exemplo dessa utilização é a
do serviço DFS (permite a criação de réplicas de pastas compartilhadas em vários
servidores de rede). Por exemplo, quando um usuário em sua estação de trabalho
tenta acesso a uma pasta compartilhada no DFS, este é direcionado para uma
réplica em um servidor do mesmo site do usuário.
A Figura 2.8 ilustra a utilização de uma sub-rede para a definição de um site.
Figura 2.8: Definição de um site
Fonte: Battisti; Santana, 2009, p. 315
44
2.3 REPLICAÇÃO
Segundo Battisti e Santana (2009), a base de dados do AD com todas
informações completas sobre todos os objetos do AD é armazenada nos DCs do
domínio e as alterações podem ser efetuadas em qualquer DC. Essas alterações
devem ser replicadas para os demais DCs do domínio, de modo que todos os DCs
estejam sincronizados e com uma cópia idêntica da base de dados do AD. Este
processo ocorre o tempo todo, pois alterações no AD são feitas diariamente e a
replicação é um processo contínuo. O AD procura determinar automaticamente qual
a melhor configuração de replicação, procurando obter o menor tempo possível para
atualização dos DCs do domínio, mas balanceando com o volume de tráfego gerado
na rede, de tal maneira que o tráfego gerado pela replicação não venha a
sobrecarregar os links de WAN. As configurações de replicação do AD são feitas
automaticamente pelo processo conhecido como Knowledge Consistency Checker
(KCC), que é um processo que roda em todos os DCs. O KCC automaticamente
identifica as configurações de replicação mais eficientes com base nas
configurações de sites do AD. O KCC regularmente recalcula a topologia de
replicação para ajustar o processo para quaisquer alterações que tenham ocorrido
na estrutura física da rede, como a criação de novos sites ou a inserção de novas
sub-redes em um site existente.
Segundo Desmond et al. (2013), o KCC possui dois tipos de algorítimos
usados para determinar quais objetos de conexão são necessários: intrasite e
intersite.
Intrasite: Designado para criar o mínimo de latência em uma topologia de
anel para cada contexto de nome, de forma que não sejam realizados mais de dois
saltos entre dois DCs em um site. O KCC adiciona e remove as conexões entre os
DCs quando necessário, para manter uma topologia com o mínimo de saltos. A
visualização é simples quando lida-se com um único domínio e um número pequeno
de controladores de domínio, porém fica extremamente difícil de visualizar quando
são adicionados diversos DCs e domínios adicionais.
Intersite: Não é um algorítimo baseado em um número mínimo de saltos. Ele
tenta determinar quais sites são conectados entre si através de um algorítimo de
spanning-tree e cria métricas para realizar as conexões entre os servidores. Uma
45
topologia de site bem definida auxiliará o KCC a gerar uma coleção de objetos para
replicação de forma mais inteligente e eficiente. A Figura 2.9 exemplifica uma
topologia de replicação simples.
Figura 2.9:Topologia de replicação simples
Fonte: Desmond et al., 2013, p. 123
2.4 FUNCIONALIDADES DE UM DOMÍNIO
Segundo Battisti e Santana (2009), o nível de funcionalidade do domínio
determina quais características estão ou não disponíveis no domínio e quais versões
do Windows podem ou não estar presentes nos DCs do domínio. No Windows
Server 2008 existem quatro níveis de funcionalidade: Windows 2000 Misto; Windows
2000 Nativo; Windows Server 2003; Windows Server 2008.
O nível de funcionalidade Windows 2000 misto é o único que permite que
existam DCs com NT Server 4.0, porém não é possível instalar DCs com o Windows
Server em um domínio com o nível Windows 2000 Misto, pois muitos dos recursos
mais avançados, tais como grupos Universais somente estão disponíveis nos
demais níveis de funcionalidade. Este nível deve ser utilizado apenas na fase de
migração de DCs NT Server 4.0. Após a migração do último DC com NT Server 4.0 o
nível de funcionalidade do domínio pode ser alterado para os demais níveis.
(BATTISTI; SANTANA, 2009).
Segundo Battisti e Santana (2009), o nível de funcionalidade da floresta é
uma novidade que foi introduzida com o Windows Server 2003, existindo três níveis:
Windows 2000; Windows Server 2003; Windows Server 2008.
46
A tabela E.1 disponível no Anexo E descreve as funcionalidades disponíveis e
quais versões do Windows podem ser utilizadas nos DCs para cada um dos modos
de funcionalidade do domínio.
A tabela F.1 disponível no Anexo F descreve quais funcionalidades estão
disponíveis e quais versões do Windows podem ser utilizadas nos DCs para cada
um dos modos de funcionalidade de floresta.
2.5 GROUP POLICY OBJECT (GPO)
Segundo Desmond et al. (2013), as políticas de grupo são utilizadas por um
administrador para definir o ambiente para usuários e computadores. O escopo e
funcionalidades das GPO podem ser estendidos a uma grande diversidade de
objetos e ações.
Segundo Battisti e Santana (2009), com o uso de GPO é possível:
•
Gerenciar centralizadamente configurações definidas no registro do Windows,
com base em modelos de administração;
•
Atribuição de scripts a serem executados na inicialização, desligamento,
logon e logoff do Windows;
•
Redirecionamento de pastas, tais como Documentos, Imagens, Downloads
para que elas sejam automaticamente gravadas em um servidor, facilitando e
flexibilizando uma possível política de backup centralizada;
•
Gerenciamento de software, permitindo que um administrador possa fazer as
instalações de maneira centralizada, sendo possível associar uma aplicação a
um grupo de usuários;
•
Definir configurações de segurança para computadores executando o
Windows 2000, Windows XP, Windows Vista, Windows Server 2003, Windows
Server 2008 ou Windows 7.
É possível criar objetos do tipo GPO e associá-los a diferentes elementos do
AD, podendo ser um domínio, unidade organizacional ou um site. Também é
possível a criação de GPO localmente em cada computador, desde que eles estejam
executando o Windows 2000, Windows XP, Windows Vista, Windows Server 2003,
Windows Server 2008 ou Windows 7. A ordem de aplicação das GPOs é:
•
GPO local;
47
•
GPO definida para o site ao qual o computador pertence;
•
GPO do domínio;
•
GPO da unidade organizacional ou um filho (grupos, computadores, etc).
2.6 CONSOLE DE ADMINISTRAÇÃO E SNAP-IN
Segundo Battisti e Santana (2009), o Microsoft Management Console (MMC)
foi criado para servir como uma interface unificada para a administração e
gerenciamento dos mais variados recursos do Windows. Nas versões anteriores ao
Windows 2000, como por exemplo, o Windows NT Server 4.0 e 3.5.1 cada
ferramenta administrativa apresentava uma interface diferente, de modo que o
administrador era obrigado a aprender a utilizar uma série de interfaces e
ferramentas diferentes para as tarefas de administração necessárias.
Na prática o MMC por si só não oferece nenhuma funcionalidade, ele apenas
fornece uma maneira padronizada para a criação de ferramentas administrativas.
Toda a funcionalidade do MMC é fornecida por aplicações de gerenciamento e
administração chamadas Snap-ins. O conjunto MMC + Snap-in é conhecido como
console ou console de administração. Um console é composto por uma janela
dividida em três painéis: o painel da esquerda exibe a árvore do console; o painel
central contém o painel de detalhes e o painel de detalhes mostra as informações e
funções relativas ao item que está selecionado no painel da esquerda. Cada snap-in
possui seus próprios menus e sua própria barra de ferramentas, separados dos
menus e da barra de ferramentas da janela principal do MMC.
(BATTISTI;
SANTANA, 2009)
Segundo Battisti e Santana (2009), o MMC pode ser utilizado para uma série
de atividades, como por exemplo:
•
Administração de contas de usuários, grupos e computadores;
•
Gerenciamento de logs de segurança e monitoramento de desempenho;
•
Administração e gerenciamento de servidores remotos (com a devida
permissão);
•
Criação de consoles personalizados e definição de permissões para delegar
funções para um ou mais usuários.
A Figura 2.10 ilustra a janela principal do MMC sem snap-ins carregados.
48
Figura 2.10: MMC sem nenhum snap-in carregado
Fonte: Battisti; Santana, 2009, p. 373
Segundo Battisti e Santana (2009), é possível para o administrador realizar a
criação de consoles personalizados através da adição ou remoção de snap-ins,
conforme necessidade. A Figura 2.11 demonstra alguns snap-ins, acessíveis através
do menu Arquivo -> Adicionar ou Remover Snap-in do MMC.
Figura 2.11: Janela de adição de Snap-ins
Fonte: Battisti; Santana, 2009, p. 377
49
3 SAMBA
Este capítulo tem como objetivo apresentar o software livre Samba
mostrando suas principais características, um pouco de sua história, conceitos e
protocolos envolvidos de forma a exemplificar o funcionamento básico em todas as
suas versões
3.1 O QUE É O SAMBA
Segundo Barreiros (2015), Samba é um conjunto de aplicativos UNIX que se
comunicam através do protocolo Server Message Block (SMB). Suportando este
protocolo, o Samba permite que servidores UNIX like se comuniquem com produtos
para o Microsoft Windows. Uma máquina rodando um servidor Samba pode ficar
mascarado em uma rede Microsoft, oferecendo os seguintes serviços:
•
Compartilhamento de um ou mais sistemas de arquivos;
•
Compartilhamento de impressoras, tanto no servidor como no cliente;
•
Auxiliar clientes na navegação do ambiente de rede;
•
Autenticação de clientes em domínios Windows;
•
Prover ou auxiliar na resolução de servidores através do Windows Internet
Name Service (WINS).
3.2 HISTÓRIA
Segundo Morimoto (2004), a primeira versão do Samba, disponibilizada em
1992, foi escrita por Andrew Tridgell. Naquela época, a especificação do SMB
utilizada pela Microsoft ainda era fechada e Andrew desenvolveu um pequeno
programa – batizado de clockspy – para examinar os pacotes de dados enviados por
uma máquina Windows e assim implementar chamada por chamada de sistema
utilizada. O resultado foi um programa que era executado no Solaris e era capaz de
responder às chamadas do SMB como se fosse um servidor Windows. O objetivo
dessa primeira versão era resolver um problema doméstico: interligar um PC
executando Windows 3.1 ao servidor Solaris.
50
Algum tempo depois de começar a distribuir seu servidor sob o nome de SMB
server, descobriu-se que este nome já pertencia ao produto de outra empresa. Ao
pesquisar em seu sistema UNIX like por palavras contendo S, M e B (grep -i 's.*m.*b'
/usr/dict/words) o resultado apresentado sugeriu, dentre outras, a palavra samba
(salmonberry samba sawtimber scramble), por isso essa a escolhida. (BARREIROS,
2015)
Em 1994, a Microsoft liberou as especificações do SMB e do NetBIOS, o que
permitiu que o desenvolvimento do Samba desse um grande salto, tanto em termos
de recursos quando em compatibilidade, passando a acompanhar em tempo real a
adição dos novos recursos ao protocolo da Microsoft. (MORIMOTO, 2004)
3.3 BASE DE FUNCIONAMENTO
Segundo Carmona (2007), a compatibilidade com o Windows proporcionada
pelo Samba se dá, devido ele ser uma implementação do protocolo SMB, que por
sua vez, é uma implementação proposta pela Microsoft para o antigo protocolo
NetBEUI, oriundo do protocolo NetBIOS, criado pela IBM, no início da década de
1980.
3.3.1 NetBIOS
O NetBIOS é um protocolo de transporte e de sessão, para uso geral, mas
originalmente destinado a serviços de arquivo e impressão. O Samba trabalha com
NetBIOS encapsulado em TCP/IP, e repassando para a rede de clientes pelo
sistema de broadcasting, ou seja, os pacotes NetBIOS que saem do servidor são
enviados para toda a rede. (CARMONA, 2007)
Segundo Barreiros (2015), no protocolo NetBIOS, cada máquina quando se
conecta na rede, clama por um nome para si, o que é chamado de registro de nome
(name registration), não podendo haver mais de uma máquina reclamando o mesmo
nome em um ambiente de trabalho. Existem então duas diferentes abordagens para
evitar que isto ocorra: Usar o NetBIOS Name Server (NBNS) para manter um
controle sobre qual cliente registrou cada nome NetBIOS; Permitir que cada
máquina na rede reclame o seu nome, quando uma outra máquina tentar registrar o
51
nome já utilizado.
A Figura 3.1 demonstra a tentativa de registro de um nome com e sem um
servidor de nomes NetBIOS.
Figura 3.1: Registro de nome com e sem servidor de Nomes NetBIOS
Fonte: Barreiros, 2015
Segundo Barreiros (2015), além desta verificação do nome deve existir uma
maneira de se traduzir o nome NetBIOS para um endereço IP, este processo é
chamado de resolução de nome (name resolution). Na NBT esta resolução pode se
dar de duas maneiras: Fazer com que cada máquina responda seu endereço IP
quando “escuta” uma broadcast de requisição do seu nome NetBIOS e usar o NBNS
para ajudar na resolução dos nomes NetBIOS para endereços IP.
A Figura 3.2 demonstra a resolução de nomes com e sem servidor de nomes
NetBIOS.
52
Figura 3.2: Resolução de nomes com e sem servidor de nomes NetBIOS
Fonte: Barreiros, 2015
Segundo Barreiros (2015), cada máquina em uma rede NetBIOS recebe uma
das seguintes designações, dependendo de como processa o registro de nome e a
resolução: nó-b, nó-p, nó-m, nó-h. Os comportamentos destes nós são resumidos
conforme demonstra a tabela 3.1. Oos nomes NetBIOS devem seguir um rígido
conjunto de regras. A seguir são descritos as principais regras:
•
Um nome NetBIOS registrado pode se referir a uma única estação de
trabalho, ou a nós múltiplos que façam parte de um grupo de trabalho;
•
Nomes NetBIOS não possuem formato hierárquico. Ou seja, não
existem pontos como no DNS;
•
Nomes NetBIOS devem somente possuir caracteres de a..z, A..Z, 0..9
ou um dos seguintes caracteres: ! @ # $ % ^ & ( ) – ‘ { } . ~
•
Nomes NetBIOS podem ter no máximo 15 caracteres para descrever o
recurso, e um octeto hexadecimal para se referir ao tipo de recurso.
Este último octeto indica que propriedades o computador registrado
possui.
53
A tabela 3.2 exemplifica os tipos de recursos disponíveis:
Tabela 3.1 - Tipos de nós NetBIOS
Descrição
Comportamento
nó-b
Utiliza somente broadcast para o registro de nome e a resolução.
nó-p
Utiliza registro e resolução ponto a ponto somente.
nó-m
Utiliza broadcast para o registro. Se registrado com sucesso notifica
o NBNS do resultado. Utiliza broadcast para a resolução, se o este
não tiver sucesso utiliza o NBNS.
nó-h (híbrido) Utiliza o NBNS para registro e resolução. Utiliza o broadcast se o
NBNS não der resposta ou estiver inoperante.
Fonte: Barreiros, 2015
Tabela 3.2 - Tipos de recursos
Recurso
Valor (Hexa)
Serviço padrão de estação de trabalho
00
Serviço de mensagem – Messenger Service (WinPopup)
03
RAS Server Service
06
Domain Master Browser Service (associado com o controlador de
domínio primário)
1b
Nome do Master Browser
1d
Serviço de NetDDE
1f
Servidor de arquivos (incluindo servidor de impressora)
20
Serviço de cliente de RAS
21
Fonte: Barreiros, 2015
Segundo Barreiros (2015), redes SMB/CIFS também utilizam o conceito de
grupos onde cada máquina da rede pode se registrar. Em um universo Windows um
grupo de trabalho é equivalente a um grupo SMB. A tabela 3.3 exemplifica os tipos
de recursos de grupos.
Tabela 3.3 - Tipos de recursos de grupos NetBIOS
Recurso
Valor
Grupo padrão de estação de trabalho
00
Servidor de logon
1c
Nome de Master Browser
1d
Nome de grupo normal (utilizado em browser elections)
1e
Nome de grupo de internet (administrativo)
20
Fonte: Barreiros, 2015
54
3.3.2 SMB/CIFS
O Server Message Block (SMB) e o Common Internet File System (CIFS) são
protocolos de redes cujo uso mais comum é o compartilhamento de arquivos em
uma LAN. Estes protocolos permitem que o cliente manipule arquivos de rede como
se estes estivessem em sua máquina local, de modo a permitir operações como
leitura, gravação, criação, exclusão e renomeação. O protocolos SMB/CIFS
funcionam através do envio de pacotes do cliente para o servidor. Cada pacote é
tipicamente baseado em uma requisição de algum tipo, como a abertura ou leitura
de um arquivo. O servidor então recebe este pacote checa-o para ver se a
requisição é válida, ou seja, verifica se o cliente possui as permissões apropriadas
para efetuar a requisição e finalmente executa a requisição e retorna um pacote de
resposta ao cliente. O cliente então analisa o pacote de resposta para determinar se
a requisição inicial foi completada com sucesso. (BARREIROS, 2015)
Segundo Barreiros (2015), o conjunto de aplicativos Samba resume-se a um
par de daemons Unix que provêm recursos compartilhados para clientes SMB na
rede. Estes recursos são também usualmente chamados de serviços: smbd:
Permite o compartilhamento de arquivos e impressoras em uma rede SMB e
autenticação e autorização para clientes SMB; nmbd: Procura pelo Windows
Internet Name Service (WINS) e o assiste na navegação.
3.4 SAMBA 4
Segundo Leal (2014), após anos de trabalho, codificação e testes, a
comunidade open source apresentou no final de 2012 o Samba 4. Além de todos os
novos recursos que o servidor Samba 4 traz, destaca-se com unanimidade os
recursos do AD. O Microsoft AD é muito popular em diferentes empresas e
organizações de pequeno a grande porte. Com a nova versão do Samba 4, os
usuários e administradores de sistema são capazes de implementar serviços de
diretório, compartilhamento de arquivos e impressoras além de fornecer uma ampla
gama de serviços de rede, que utilizam tecnologia de código aberto. O Samba 4 tem
incluído de forma nativa todas as tecnologias necessárias do lado servidor para
operar os serviços do Active Directory, como por exemplo, servidor LDAP, o centro
de distribuição de chaves Kerberos, e um servidor de DNS simples.
55
3.4.1 Modos de Operação Suportados
Segundo SAMBA-WIKI (2015), os seguintes modos de operação são
suportados: Active Directory Domain Controller (AD-DC); Member Server em um AD
ou domínio NT4-style; NT4-style (classic) PDC ou BDC; Standalone Server e
Windows Print Server.
3.4.2 Limitações
Segundo SAMBA-WIKI (2015), as seguintes limitações são encontradas na
implementação atual: Não há suporte à tecnologia DFS-R, ou seja, não haverá
replicação no conteúdo do Sysvol (diretório compartilhado que armazena os
arquivos públicos de comum acesso e replicação entre os componentes do
domínio). Até esta implementação ser realizada, é necessário sincronismo manual
ou uso de ferramentas externas, como por exemplo, o rsync; Se o BIND foi utilizado
como servidor de DNS ele deverá ser executado na mesma máquina de instalação
do DC (pode ser utilizado servidor DNS forwarder – caso necessário); Distributed
File System (DFS) está disponível para funcionamento apenas no modo stand-alone;
Relações de confiança entre domínios e subdomínios não são suportadas; Suporte a
Read-only Domain Controller (RODC) não está implementado; Os DCs não podem
ser utilizados em sistemas de arquivos distribuídos, pois o DC samba não é
compatível com esta implementação; Winbind não é suportado nos DCs até a
versão 4.2.
3.4.3 Novos Recursos (versão 4.2)
Segundo SAMBA-WIKI (2015), alguns dos novos recursos implementados
com a versão 4.2 são:
Compressão de arquivos transparente: Adiciona suporte à manipulação de
arquivos e pastas compactadas no sistema de arquivos Btrfs;
Versões de arquivos com Snapper: O módulo de suporte ao VFS adiciona
suporte a versões anteriores de arquivos através do Windows Explorer, por meio da
janela de diálogo “Versões Anteriores”;
56
Melhorias na segurança do Winbindd/Netlogon: Os canais seguros entre
controladores de domínio foram reescritos para manter um estado global em
netlogon_creds_cli.tdb, corrigindo diversos bugs, porém é necessário que uma
senha de sessão “forte” seja definida, fazendo com que a antiga comunicação com
servidores e clientes possa ser rejeitada;
Uso do Winbindd no DC: O Winbindd é utilizado por padrão em um AD DC
Samba, facilitando o suporte a relações de confiança entre os domínios do DC;
Editor de Registro: Um aplicativo que permite a alteração do registro do
Samba, permitindo a navegação entre as chaves de registro e edição de diferentes
tipos de valores;
Bloqueio de contas: Quando múltiplas tentativas de acesso indevida são
detectadas, o sistema bloqueia automaticamente o acesso por 60 minutos (período
pode ser manipulado);
3.4.4 Requisitos de Software
Segundo
SAMBA-WIKI
(2015),
os
requisitos
abaixo
são
recomendados/necessários para um correto funcionamento do Samba 4:
Para os sistemas de arquivos que serão compartilhados pelo samba, o uso
das opções user_xattr e acl,barrier=1 no /etc/fstab.
Suporte
do
Kernel
Linux
às
flags
CONFIG_EXT4_FS_XATTR,
CONFIG_EXT4_FS_SECURITY e CONFIG_EXT4_FS_POSIX_ACL;
Phyton (obrigatório);
perl (obrigatório);
acl (opcional);
xattr (opcional);
blkid (opcional);
gnutls (opcional);
readline (opcional);
cups (opcional – suporte a impressão);
bsd ou setproctitle (opcional);
xsltproc (opcional – suporte a criação de páginas de manuais);
docbook (opcional – suporte a criação de páginas de manuais);
57
openldap (opcional – suporte a migração de servidores DC da versão 3 do
samba para a versão 4).
58
4 ESTUDO DE CASO
A implementação do projeto foi realizada em ambiente virtual, com a
utilização do software VirtualBox. A topologia de rede utilizada nos servidores que
foram virtualizados é representada pela Figura 4.1.
Figura 4.1: Topologia da rede de testes
Fonte: Elaborado pelo autor, 2015
Para o endereçamento de IP (versão 4) foi utilizada a classe 172.16.0.0/22. A
tabela 4.1 exemplifica a distribuição de endereços IP na topologia anteriormente
descrita.
Tabela 4.1 - Distribuição de endereços IP
EQUIPAMENTO FUNÇÃO
IP
SRV-FW001
FIREWALL/GATEWAY, SERVIDOR
SERVIDOR DNS SECUNDÁRIO
SRV-AD001
SERVIDOR AD, SERVIDOR DNS PRIMÁRIO
172.22.0.2/22
-
RESERVADO INFRAESTRUTURA
172.22.0.3/22 a
172.22.0.255/22
CLIENTES
DIVERSOS
COMPUTADORES DE USUÁRIOS
DINÂMICO,
ATRIBUÍDO POR
DHCP
Fonte: Elaborado pelo autor, 2015
DHCP,
172.22.0.1/22
59
Foram utilizados o domínio EMPRESA.LOCAL e nome NetBIOS EMPRESA
para a implementação. As configurações referentes às máquinas virtuais utilizadas
na implementação são descritas na tabela 4.2.
Tabela 4.2 - Configurações das máquinas virtuais
Máquina
Memória (RAM)
HD
Rede
SRV-FW001
512MB
1x 10GB
1x rede bridge
1x rede host-only
SRV-AD001
512MB
1x 10GB
1x 250GB
1x rede host-only
CLIENTE 1
512MB
1x 10GB
1x rede host-only
CLIENTE 2
512MB
1x 10GB
1x rede host-only
Fonte: Elaborado pelo autor, 2015
Após as definições e configurações das máquinas virtuais no VirtualBox foi
realizada a instalação dos respectivos sistemas operacionais em cada máquina, o
processo de instalação está disponível no Anexo A.
4.1 CONFIGURAÇÃO SRV-FW001
O primeiro passo para a instalação do firewall é definir as configurações de
interface WAN. Na topologia atual, a interface de rede eth0 foi utilizada para a rede
WAN e o método de atribuição de IP é DHCP. Para realizar as configurações
necessárias deve-se alterar o arquivo /etc/network/interfaces e reiniciar o serviço de
rede, conforme comandos:
# echo allow-hotplug eth0 >> /etc/network/interfaces
# echo iface eth0 inet dhcp >> /etc/network/interfaces
# service networking restart
A seguir procedimento realizado para instalação dos pacotes, conforme
comando:
# apt-get install openssh-server squid3 bind9 isc-dhcp-server
60
4.1.1 Configuração do Servidor DHCP
A configuração do servidor DHCP foi realizada com alterações no arquivo
/etc/dhcp/dhcpd.conf. O conteúdo do arquivo de configuração é ilustrado a seguir:
ddns-update-style none;
default-lease-time 64800;
max-lease-time 6480;
authoritative;
log-facility local7;
ddns-domainname "empresa.local";
option domain-name "empresa.local";
subnet 172.16.0.0 netmask 255.255.252.0
{
range 172.16.1.0 172.16.3.254;
option routers 172.16.0.1;
option domain-name-servers 172.16.0.1, 172.16.0.2;
}
Na sequência deve-se reiniciar o serviço DHCP, conforme comando:
# service isc-dhcp-server restart
4.1.2 Configuração do Servidor DNS Secundário
O servidor SRV-FW01 é responsável pelo servidor DNS secundário, isto é,
replica a zona empresa.local. Para a configuração do servidor como “slave” deve ser
adicionadas as seguintes configurações no arquivo “/etc/bind/named.conf.local”:
zone "empresa.local" {
type slave;
file "db.empresa.local";
masters { 172.16.0.2; };
allow-notify { 172.16.0.2; };
};
61
Na sequência deve-se reiniciar o serviço bind, conforme comando:
# service bind9 restart
4.1.3 Configuração do Firewall
O primeiro passo para a configuração do firewall é a criação do arquivo
/etc/init.d/firewall com o conteúdo definido no Anexo B.
Após a criação do arquivo /etc/init.d/firewall, é necessário definir as
permissões de execução do script e adicioná-lo à inicialização do sistema, conforme
comandos:
# chmod +x /etc/init.d/firewall
# update-rc.d firewall defaults
4.1.4 Configuração do Proxy SQUID
O arquivo de configuração squid.conf deve ser configurado conforme
conteúdo definido no anexo C. Após a configuração do arquivo, deve-se reiniciar o
serviço de PROXY, conforme comando:
# service squid3 restart
4.2 CONFIGURAÇÃO SRV-AD001
O primeiro passo necessário é a instalação dos pacotes do BIND e bibliotecas
de desenvolvimento utilizadas para a compilação do Samba 4, conforme comando:
# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls28-dev
libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2dev dnsutils libbsd-dev attr krb5-user docbook-xsl openssh-server bind9
Em seguida é alterado o arquivo /etc/fstab para permitir que a partição onde
62
serão gravados os dados compartilhados pelo servidor Samba 4 possa manusear
corretamente as permissões de pasta necessárias pelo AD. Para isso, deve-se
adicionar às opções de montagem os parâmetros user_xattr,acl,barrier=1 e
sequencialmente aplicar as configurações, conforme abaixo ilustrado:
# UUID=6ffe3049-b88b-4e20-bbff-4300c566ca33 /srv ext4 user_xattr,acl,barrier=1
As opções user_xattr e acl habilitam a lista de controle de acesso em
sistemas POSIX enquanto a opção barrier=1 garante que as transações no banco de
dados tdb estejam seguras mesmo que ocorra desligamento incorreto do sistema.
4.2.1 Instalação do SAMBA 4
Após a instalação dos pacotes necessários e configuração do sistema de
arquivos, o passo seguinte é obter o código fonte da versão atual do samba,
acessível através do site https://www.samba.org/samba/download/. A versão
utilizada na elaboração deste estudo de caso é a 4.2.2. Por tratar-se de um arquivo
com códigos-fonte que foram compilados, por convenção foi utilizado o diretório
/usr/src para trabalho. A sequência de comandos utilizados para obter, compilar e
instalar o código fonte do Samba 4 foram:
# cd /usr/src
# wget -c https://www.samba.org/samba/ftp/stable/samba-4.2.2.tar.gz
# tar -zxvf samba-4.2.2.tar.gz
# cd samba-4.2.2/
# ./configure
# make
# make install
Após a criação do arquivo /etc/init.d/samba-ad-dc, é necessário definir as
permissões de execução do script e adicioná-lo à inicialização do sistema, conforme
comandos:
# chmod +x /etc/init.d/samba-ad-dc
# update-rc.d samba-ad-dc defaults
63
4.2.2 Provisionamento do Domínio
O próximo passo é o provisionamento do domínio. Para isso é utilizado o
utilitário samba-tool com os parâmetros de configuração, conforme:
# /usr/local/samba/bin/samba-tool domain provision --domain=EMPRESA
--realm=EMPRESA.LOCAL --dns-backend=BIND9_DLZ --server-role=dc
--adminpass=p@ssw0rd
A tabela 4.3 explica a funcionalidade de cada opção utilizada.
Tabela 4.3 - Opções utilizadas no provisionamento do domínio
OPÇÃO
FUNÇÃO
domain provision
Instrui o samba-tool que será
provisionamento de um novo domínio
--domain=EMPRESA
Define o grupo NetBIOS do domínio que será utilizado
--realm=EMPRESA.LOCAL
Define o nome do sufixo do domínio que será utilizado
pelo AD
--dns_backend=BIND9_DLZ
Define que o programa de DNS utilizado será o
BIND9
--server-role=dc
Define que o servidor será um DC
--adminpass=p@ssw0rd
Define
a
senha
do
(administrador do domínio)
usuário
realizado
o
administrator
Fonte: Elaborado pelo autor, 2015
Finalizado o provisionamento do domínio, é exibido um resumo com os locais
dos arquivos de configuração do servidor DNS BIND9 e do Kerberos, abaixo
ilustrado:
See /usr/local/samba/private/named.conf for an example configuration for BIND
and /usr/local/samba/private/named.txt for required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
A Kerberos configuration suitable for Samba 4 has been generated at
/usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role:
active directory domain controller
Hostname:
SRV-AD001
NetBIOS Domain:
EMPRESA
DNS Domain:
empresa.local
DOMAIN SID:
S-1-5-21-662070037-2242896996-10792671
64
4.2.3 Configuração do BIND9
O próximo passo é a configuração do BIND9 para permitir que o DNS seja
atualizado de forma dinâmica pelo AD.
Para isso, é necessário configurar o arquivo “/etc/bind/named.conf.local” e
incluir
a
linha
include
"/usr/local/samba/private/named.conf",
conforme
comandos:
# echo include "/usr/local/samba/private/named.conf"; >> /etc/bind/named.conf
# service bind9 restart
Na sequência é necessário iniciar o serviço do Samba 4 através do comando
“service samba-ad-dc start”.
4.2.3 Configuração do Kerberos
A configuração do cliente Kerberos é realizada com a cópia do arquivo
krb5.conf (criado pelo samba-tool no provisionamento do domínio) para o diretório
/etc através do comando “cp /usr/local/samba/private/krb5.conf /etc”. Finalizado
este processo, o Kerberos já está funcional e pode ser testado através do utilitário
kinit. A seguir é exibido uma demonstração de uso e saída do comando kinit:
# kinit [email protected]
Password for [email protected]:
Warning: Your password will expire in 19 days on Seg 13 Jul 2015 20:42:54 BRT
O teste realizado pelo utilitário kinit não mostra muitos detalhes. Para uma
saída mais detalhada o utilitário klist deverá ser utilizado, conforme:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting
Expires
24-06-2015
13:47:51
Service principal
24-06-2015 23:47:51
krbtgt/[email protected] renew until 25-06-2015 13:47:48
65
Finalizados os procedimentos anteriormente descritos, o AD já esta funcional
e pode ser utilizado nas máquinas Windows.
4.2.3 Criação das Pastas Compartilhadas
A criação das pastas compartilhadas pelo servidor Samba 4 é realizada no
console
do
servidor
Linux
e
posteriormente
deve-se
mapeá-las
para
compartilhamento no servidor Samba 4. Como diretório base, foi utilizado o
diretório /srv e criadas as pastas ADM (Administração), CONT (Contabilidade), FIN
(Financeiro) e TI (Tecnologia da Informação). Os comandos para criação das pastas
são demonstrados abaixo:
# mkdir /srv/ADM
# mkdir /srv/CONT
# mkdir /srv/FIN
# mkdir /srv/TI
Criadas as pastas, é necessário o mapeá-las para uso do Samba 4 realizando
a adição de entradas de compartilhamento correspondentes no arquivo de
configuração do Samba 4, localizado em /usr/local/samba/etc/smb.conf. Abaixo são
exemplificados os compartilhamentos para as pastas anteriormente criadas:
[ADM]
path = /srv/ADM
read only = No
[CONT]
path = /srv/CONT
read only = No
[FIN]
path = /srv/FIN
read only = No
[TI]
path = /srv/TI
read only = No
66
Não é necessário o reinício do servidor Samba 4 após a criação dos
compartilhamentos pois eles já estão disponíveis para uso, assim que o arquivo
smb.conf for salvo. A única ressalva sobre a criação de compartilhamentos é que,
por padrão, qualquer usuário tem acesso completo às pastas, é necessário a
atribuição de permissões pelo administrador para evitar uso indevido.
4.3 GERENCIAMENTO DO DOMÍNIO
O gerenciamento do domínio pode ser realizado via console do servidor Linux
através do software utilitário samba-tool ou pelas ferramentas disponíveis para
gerenciamento de servidores AD do próprio Windows. A última é recomendada pela
equipe de desenvolvimento do Samba pela facilidade de uso e. não ser necessário
acesso ao console do servidor Linux. As ferramentas para gerenciamento do
servidor AD através do Windows XP estão disponíveis para download no site da
Microsoft,
acessível
por
meio
do
endereço
https://www.microsoft.com/en-
us/download/details.aspx?id=6315.
Após download e instalação do adminpack os snap-ins de gerenciamento
estão disponíveis através do MMC, conforme ilustra a Figura 4.2.
Figura 4.2: Snap-ins
Fonte: Elaborado pelo autor, 2015
Para fins de teste, as seguintes ações foram realizadas pelo console de
gerenciamento: Criação de 4 grupos; Criação de 4 usuários; Atribuição dos usuários
a seus respectivos grupos; Definição de proxy via GPO global e Atribuição de
permissão por grupo às pastas compartilhadas;
67
4.3.1 Criação de Grupos
A criação de grupos no AD é realizada pelo console de gerenciamento,
através do snap-in “Usuários e computadores do Active Directory”. Após adicionado
o snap-in, clica-se com o botão direito em área vaga do quadro da direita e em Novo
→ Grupo, conforme ilustra a Figura 4.3.
Figura 4.3: Criação de novo grupo
Fonte: Elaborado pelo autor, 2015
Na sequência é exibida uma janela, que informa a criação de um novo objeto
do tipo grupo. Define-se o nome do grupo, escopo e tipo, conforme ilustra a Figura
4.4.
Figura 4.4: Parâmetros para criação do grupo
Fonte: Elaborado pelo autor, 2015
68
A Figura 4.5 ilustra os grupos criados neste estudo de caso, separados em
uma unidade organizacional “Matriz”.
Figura 4.5: Grupos criados separados em unidades organizacionais
Fonte: Elaborado pelo autor, 2015
4.3.2 Criação de Usuários
O processo de criação de usuários é semelhante ao processo de criação de
grupos, basta selecionar a opção Novo → Usuário. Sequencialmente será exibida a
janela para a criação de um novo objeto do tipo Usuário, conforme ilustra a Figura
4.6.
Figura 4.6: Parâmetros para criação de um novo usuário
Fonte: Elaborado pelo autor, 2015
69
Depois são solicitadas informações referentes à segurança da conta.
Nenhuma opção é selecionada conforme exemplifica a Figura 4.7.
Figura 4.7: Parâmetros de segurança
Fonte: Elaborado pelo autor, 2015
A Figura 4.8 ilustra os usuários criados neste estudo de caso, separados em
uma unidade organizacional “Matriz”.
Figura 4.8: Usuários criados separados em unidades organizacionais
Fonte: Elaborado pelo autor, 2015
4.3.3 Atribuição de Usuários a Grupos
A atribuição de grupos a usuários pode ser realizada de várias formas. Optouse neste estudo de caso a atribuição através da alteração dos parâmetros
70
diretamente na conta do usuário, por meio do menu suspenso “Propriedades”, aba
“Membro de”, conforme ilustra a Figura 4.9.
Figura 4.9: Grupos do usuário
Fonte: Elaborado pelo autor, 2015
Após clicar em adicionar, é exibida a janela para seleção de grupo (mais de
um pode ser selecionado – separados por ponto e vírgula), conforme ilustra a Figura
4.10.
Figura 4.10: Seleção de grupos do usuário
Fonte: Elaborado pelo autor, 2015
71
Os grupos foram atribuídos aos usuários, conforme descrito na tabela 4.4.
Tabela 4.4 - Relacionamento entre usuários e grupos
USUÁRIO
GRUPO
Alexandre Ponce de Oliveira
Administração
Amabili Sierra Fernandes
Financeiro
Eduardo Sierra Fernandes
Tecnologia da Informação
Eloisa Suzuki Maia
Contabilidade
Fonte: Elaborado pelo autor, 2015
4.3.4 Definição de Proxy via GPO
O uso de GPO permite ao administrador definir comportamentos do
computador utilizado pelo usuário, grupo de usuários ou unidades organizacionais.
No presente estudo de caso é utilizado o recurso de GPO para definir
automaticamente o endereço proxy do sistema após o login do usuário.
Primeiramente deve-se adicionar o snap-in “Editor de objeto de diretiva de
grupo”, conforme Figura 4.11.
Figura 4.11: Adição de snap-in para controle de GPO
Fonte: Elaborado pelo autor, 2015
72
Adicionado o snap-in, o caminho para acesso à opção de configuração do
proxy é: “Configurações do usuário” → “Configurações do Windows” → “Manutenção
do Internet Explorer” → “Conexão” → “Configurações de proxy”. Ao clicar duas
vezes sobre a opção, abre-se a janela para definição das configurações de proxy do
sistema. Foi utilizado o endereço de IP 172.16.0.1 e porta 3128 para todos os
endereços, conforme ilustrado pela Figura 4.12.
Figura 4.12: Configurações de proxy via GPO
Fonte: Elaborado pelo autor, 2015
4.3.5 Permissão de Pastas Compartilhadas
As permissões das pastas compartilhadas são definidas através do snap-in
“Pastas Compartilhadas”, conforme ilustrado pela Figura 4.13.
Figura 4.13: snap-in para permissões de pastas
Fonte: Elaborado pelo autor, 2015
73
Após adicionar o snap-in, é solicitado definir o computador que possui
compartilhamentos gerenciados pelo snap-in, conforme ilustra a Figura 4.14.
Figura 4.14: Seleção do computador a ser gerenciado
Fonte: Elaborado pelo autor, 2015
Após aberto, o snap-in mostrará no quadro da direita os compartilhamentos.
Seleciona-se a opção propriedades do menu suspenso em cima do item desejado
seguido de clique na aba “Permissões de compartilhamento”. Por padrão, o Samba
4 permite que todos os usuários acessem o compartilhamento após sua criação. No
estudo de caso atual, foi atribuído a cada compartilhamento seu respectivo grupo
com permissão de acesso, conforme ilustra a Figura 4.15.
Figura 4.15: Permissões da pasta ADM
Fonte: Elaborado pelo autor, 2015
74
4.4 INGRESSAR ESTAÇÕES DE TRABALHO NO DOMÍNIO
O ingresso de estações de trabalho ao domínio Samba 4 é idêntico ao
realizado em um domínio AD com um Windows. Para fins de compatibilidade, devido
aos recursos limitados das máquinas virtuais, foi utilizado o Windows XP como
estação de trabalho. Em testes, não documentados neste estudo de caso, foi
possível a adição de estações de trabalho Windows 7 e Windows 8 sem qualquer
restrição.
O processo para adição das máquinas virtuais de teste com Windows XP foi
realizado na seguinte sequência:
A. Dentro das Propriedades de Meu Computador, na aba “Nome do
Computador” seleciona-se a opção Alterar. O acesso às Propriedades do Meu
Computador pode ser realizado de várias formas, como por exemplo, clicar
com o Botão direito do mouse no ícone Meu Computador e posteriormente
em Propriedades ou através do Painel de Controle → Sistema;
B. Na janela “Alterações de nome do computador”, alterar a opção “Membro de”
para “Domínio” e digitar o nome do domínio EMPRESA.LOCAL. Clicar em
OK;
C. É exibida uma janela solicitando usuário e senha. Deve-se utilizar o usuário
administrator (ou algum usuário com privilégio de administrador) seguido da
senha. Clicar em OK;
D. Após um curto período de tempo é exibida a mensagem que o computador foi
adicionado ao domínio. Clicar em OK;
E. É solicitado o reinício do sistema para aplicar as alterações. Clicar em OK;
F. A janela “Alterações de nome do computador” fica acessível. Clicar em OK;
G. É exibida uma janela que solicita o reinício do sistema. Clicar em Sim;
Neste ponto ocorrerá o reinício do sistema;
Após o sistema ser reiniciado, o domínio EMPRESA aparece na caixa de
seleção “Fazer logon em”, conforme ilustra a Figura 4.16.
Após o usuário realizar o acesso ao sistema, utilizando seu usuário e senha,
os recursos anteriormente configurados no servidor já podem ser acessados. A
75
Figura 4.17 ilustra o acesso às pastas compartilhadas pelo servidor.
Figura 4.16: Domínio disponível para logon
Fonte: Elaborado pelo autor, 2015
Figura 4.17: Acesso às pastas compartilhadas pelo servidor
Fonte: Elaborado pelo autor, 2015
Finalizadas as configurações realizadas no decorrer do capítulo, o domínio
EMPRESA.LOCAL está disponível para uso das estações de trabalho e usuários da
rede, disponibilizando os serviços de: Definição automática de endereço IP; Logon
centralizado; Compartilhamento de arquivos; Acesso à internet mediante solicitação
de login e senha dentre outros.
76
CONCLUSÃO
Este trabalho mostrou que é possível realizar a interoperabilidade de
ambientes Linux e Windows através da nova versão do software servidor Samba, no
qual fornece praticamente todos os recursos mais utilizados em servidores Windows
com Active Directory. A solução apresentada pode ser utilizada por empresas que
queiram economizar em licenciamento de software do lado servidor sem gerar
transtorno no processo de administração dos recursos de rede pois a curva de
aprendizado necessária à administração do servidor Samba 4 é mínima e nos
clientes Windows é inexistente.
A complexidade que existia em versões anteriores do Samba para fornecer os
recursos de um servidor Active Directory é inexistente nesta nova versão. Todos os
serviços necessários ao funcionamento do servidor estão integrados e em
funcionamento quando o servidor é iniciado. Adicionalmente, não há necessidade de
configuração de softwares adicionais, alteração de chaves de registro no Windows
das estações de trabalho e instalação de programas de terceiros para a gerência do
domínio, como por exemplo, clientes LDAP. Toda a administração é realizada
através das ferramentas de gerenciamento disponíveis para gerenciamento dos
servidores Windows.
O fácil acesso à base de dados LDAP e ao Kerberos permitem que softwares
com suporte a estes protocolos possam de forma simples utilizar os recursos
providos pela autenticação centralizada, assim facilita a administração. No estudo de
caso foi realizada a configuração do servidor proxy Squid que utiliza a base de
dados LDAP para autenticar os usuários antes de prover o acesso à internet, assim
melhora a segurança da rede.
Entretanto ocorreram alguns problemas durante a realização do estudo de
caso. O servidor DNS interno do Samba 4 parava de resolver nomes em intervalos
de tempo aleatórios. Para resolver é necessária de atuação do administrador por um
processo conhecido como flush DNS, através do snap-in DNS, o servidor DNS
voltava a funcionar adequadamente. Após reconfiguração do Samba 4 para que
fosse utilizado o BIND em detrimento ao servidor DNS interno, o problema parou de
ocorrer. Outro problema encontrado foi a falta de suporte à sincronização de
conteúdo da pasta SYSVOL, consequentemente, as GPO e outros objetos públicos
77
compartilhados por esta pasta deixassem de ser replicados. A solução paliativa para
este problema é o uso do utilitário rsync através do agendador de tarefas do Linux
(cron) para que de tempo em tempo o conteúdo fosse replicado entre os servidores.
O presente trabalho pode ser melhorado com implementação de mais
serviços para suprir determinadas necessidades, como por exemplo, a configuração
de um servidor Network Time Protocol (NTP) para manter o sincronismo de data e
hora entre os servidores e estações de trabalho pois caso não exista este
sincronismo o Kerberos não funcionará.
Uma proposta de trabalho futuro é utilizar o recurso de autenticação
centralizada para autenticar estações de trabalho Linux no domínio Active Directory.
78
REFERÊNCIAS BIBLIOGRÁFICAS
BATTISTI, J; SANTANA, F. Windows server 2008 – guia de estudos completo:
implementação, administração e certificações. Rio de Janeiro: Nova Terra, 2009.
BARREIROS,
C.
Samba.
2015.
Disponível
em:
<http://www.gta.ufrj.br/grad/01_2/samba/samba.htm>. Acesso em: 20 mai. 2015.
BLACKMAN,
P.
Samba
FAQ.
1997.
Disponível
em:
<http://wdocs.kmu.edu.tw/samba_faq/sambafaq.html>. Acesso em: 04 nov. 2013.
CARMONA, T. Universidade Linux. 2. ed. São Paulo: Digerati Books, 2007.
CARTER, G. LDAP system administration. Sebastopol: O’Reilly, 2003.
DEBIAN-RELEASES.
Debian
releases.
2013.
<http://www.debian.org/releases/>. Acesso em: 30 nov. 2013.
Disponível
em:
DESMOND, B.; RICHARDS, J.; ALLEN, R.; LOWE-NORRIS, A., Active directory.
Sebastopol: O’Reilly, 2013.
GARMAN, J., Kerberos: the definitive guide. Sebastopol: O’Reilly, 2003.
HUNTER, L. E.; ALLEN, R., Active directory cookbookTM. 3. ed. Sebastopol:
O'Reilly, 2009.
ISC-BIND. INTERNET SUSTEMS CONSORTIUM – BIND. 2013. Disponível em:
<https://www.isc.org/downloads/bind/>. Acesso em: 10 nov. 2013.
KERBEROS.
What´s
kerberos.
2013.
<http://web.mit.edu/kerberos/>. Acesso em: 19 nov. 2013.
Disponível
em:
KUROSE, J. F.; ROSS, K. W. Computer networking: A Top-Down Approach. 6. ed.
São Paulo: Pearson Prentice Hall, 2013.
LEAL, M. Implementing samba 4. Birmingham: Packt Publishing, 2014.
MINASI, M.;ANDERSON, C.; BEVERIDGE, M.; CALLAHAN, C.; JUSTICE, L.,
Dominando o Windows Server 2003: A Bíblia. São Paulo: Pearson Prentice Hall,
2003.
MORIMOTO, C. E.; Entendendo e Dominando o Linux. 3. ed. São Paulo: Digerati
Books, 2004.
NEMETH, E.; SNYDER, G.; HEIN, T. R.; MCGINLEY, L.; WHALEY, B.; BOGGS, A.;
HAEMER, J. S.; OETIKER, T.; ZAUCKER, F.; SEIDEL, S. BUSS, B.; MCCLAIN, N.;
SCHEWEIKERT, D., Manual completo do linux. 2. ed. São Paulo: Pearson Prentice
Hall, 2007.
79
POLICELLI, J., Active directory domain services 2008. São Paulo: Pearson
Prentice Hall, 2009.
ROOT-SERVER. List of DNS root-servers. 2013. Disponível em: <http://www.rootservers.org/map/>. Acesso em: 10 nov. 2013.
SAMBA-HISTORY. Samba release notes archive. 2012. Disponível em:
<http://www.samba.org/samba/history/samba-4.0.0.html>. Acesso em: 04 nov. 2013.
SAMBA-WIKI.
SambaWiki.
2015.
Disponível
<https://wiki.samba.org/index.php/Main_Page>. Acesso em: 29 mai. 2015.
em:
SILVA, G. M., Guia foca linux iniciante. 2010. Disponível
<http://www.guiafoca.org/?page_id=238>. Acesso em: 25 nov. 2013.
em:
SIQUEIRA, L. A., Coleção linux pro ubuntu. São Paulo: Linux New Media do Brasil,
2009.
TANENBAUM, A. S., Redes de computadores. 4. ed. Rio de Janeiro: Elsevier,
2003.
TEIXEIRA JR., J. H.; SUAVÉ, J. P.; MOURA, J. A. B.; TEIXEIRA, S. Q. R., Redes de
computadores: Serviços Administração e Segurança. São Paulo: Makron Books,
1998.
80
ANEXO A – INSTALAÇÃO DEBIAN GNU/LINUX
O primeiro passo antes de iniciar a instalação é obter o arquivo ISO de
instalação do Debian GNU/LINUX disponível em https://www.debian.org/CD/http-ftp/.
A versão utilizada foi a 8.0 (jessie) na arquitetura amd64.
Após a inicialização do sistema é apresentada uma tela que solicita a
operação desejada. Selecione a opção “Install” conforme ilustra a Figura A1.
Figura A.1: Tela de boot do CD de Instalação Debian 8.0 (Jessie)
Fonte: Elaborado pelo autor, 2015
Iniciado o processo de instalação, os primeiros passos são definir as opções
de localização (linguagem, localidade, região e tipo de teclado). Para linguagem foi
selecionado Português do Brasil. Para localidade, Brasil e para o tipo de teclado,
Português Brasileiro (teclado com ç padrão ABNT2).
Posterior às configurações referentes a localização, é iniciado o processo de
configuração automática das placas de rede. Esse processo falha, conforme Figura
A.2 pois não há configurações automáticas disponíveis. Selecione a opção para
configurar a rede manualmente conforme Figura A.6. As configurações serão
81
realizadas de forma independente, conforme regras estabelecidas na tabela 4.1. As
figuras A.4 e A.5 mostram as individualidades nas configurações entre SRV-FW001 e
SRV-AD001.
Figura A.2: Falha na configuração automática de rede
Fonte: Elaborado pelo autor, 2015
Figura A.3: Seleção de configuração manual de rede
Fonte: Elaborado pelo autor, 2015
Figura A.4: Configurações de rede - SRV-FW001
Fonte: Elaborado pelo autor, 2015
82
Figura A.5: Configurações de rede - SRV-AD001
Fonte: Elaborado pelo autor, 2015
Finalizado o processo de configuração de rede, são solicitadas as
configurações de gateway, servidores DNS e domínio.
O servidor SRV-AD001 tem como gateway o IP 172.16.0.1 (SRV-FW001) e
servidores de DNS 127.0.0.1 (LOOPBACK) e 172.16.0.1 (SRV-FW001). O servidor
SRV-FW001 não tem gateway nesta interface e os servidores de DNS são 127.0.0.1
(LOOPBACK) e 172.16.0.2 (SRV-AD001).
Ambos os servidores são atribuídos ao domínio EMPRESA.LOCAL. As figuras
A.6 e A.7 exibem as configurações de gateway e DNS selecionadas para o servidor
SRV-AD001 enquanto a Figura A.8 exibe a configuração de domínio para ambos os
servidores.
Figura A.6: Configuração de gateway em SRV-AD001
Fonte: Elaborado pelo autor, 2015
83
Figura A.7: Configuração de servidores DNS em SRV-AD001
Fonte: Elaborado pelo autor, 2015
Figura A.8: Configuração de domínio em SRV-AD001 e SRV-FW001
Fonte: Elaborado pelo autor, 2015
Realizadas as definições de rede, é solicitado a senha do usuário root
(superusuário). Para fins de estudo, a senha utilizada é empresa.local.123. Posterior
à definição da senha de root, é necessário a criação de um usuário “restrito” para
uso do sistema. O nome de usuário utilizado é suporte com a senha
suporte.local.123 A Figura A.9 mostra a tela de definição de senha do usuário root
enquanto as figuras A.10 e A.11 exibem as telas de definição do nome de usuário
“restrito” e sua senha, respectivamente.
Figura A.9: Definição da senha de root
Fonte: Elaborado pelo autor, 2015
84
Figura A.10: Definição de nome de usuário “restrito”
Fonte: Elaborado pelo autor, 2015
Figura A.11: Definição de senha de usuário “restrito”
Fonte: Elaborado pelo autor, 2015
Na sequência é necessário definir o fuso horário dos servidores, a opção
escolhida é “São Paulo” e depois é iniciado o processo de particionamento de disco.
Foi selecionado a opção “Manual” conforme ilustra a Figura A.12.
Figura A.12: Seleção do método de particionamento de disco
Fonte: Elaborado pelo autor, 2015
As definições de particionamento de disco foram realizadas conforme ilustra a
tabela A.1
85
Tabela A.1 - Particionamento de disco
SERVIDOR
PARTIÇÃO
DISPOSITIVO
TAMANHO
SRV-FW001
/boot
/dev/sda1
200mb
SRV-FW001
Swap
/dev/sda5
1gb
SRV-FW001
/
/dev/sda6
SRV-AD001
/boot
/dev/sda1
200mb
SRV-AD001
Swap
/dev/sda5
1gb
SRV-AD001
/
/dev/sda6
SRV-AD001
/srv
/dev/sdb1
Espaço restante.
Em torno de 9gbps
Espaço restante.
Em torno de 9gbps
250gb
Fonte: Elaborado pelo autor, 2015
As figuras A.13 e A.14 ilustram o particionamento realizado nos servidores
SRV-FW001 e SRV-AD001, respectivamente.
Figura A.13: Particionamento de disco – SRV-FW001
Fonte: Elaborado pelo autor, 2015
Figura A.14: Particionamento de disco – SRV-AD001
Fonte: Elaborado pelo autor, 2015
Finalizado o particionamento de disco, o instalador realiza a instalação dos
86
pacotes básicos do sistema. Em seguida é solicitado a configuração de mirror
(espelho) do gerenciador de pacotes do Debian (apt-get). A Figura A.15 ilustra a
escolha do servidor utilizado pelo gerenciador de pacotes.
Figura A.15: Seleção de mirror do gerenciador de pacotes
Fonte: Elaborado pelo autor, 2015
Finalizado a configuração do gerenciador de pacotes o instalador solicita o
software a ser instalado. É utilizado apenas a opção “Utilitários standard de sistema”.
A Figura A.19 ilustra a tela de seleção de software.
Figura A.16: Seleção de software
Fonte: Elaborado pelo autor, 2015
Após a instalação dos programas selecionados, o sistema solicita a instalação
do gerenciador de inicialização “GRUB”. Deve-se selecionar o primeiro disco rígido
(sda) conforme ilustra a Figura A17.
87
Figura A.17: Instalação do gerenciador GRUB
Fonte: Elaborado pelo autor, 2015
Na sequência o sistema informa que a instalação foi concluída, conforme
ilustra a Figura A.18 e reinicia já no prompt de login e senha conforme ilustram as
figuras A.19 e A.20.
Figura A.18: Instalação do sistema finalizada
Fonte: Elaborado pelo autor, 2015
Figura A.19: Tela de login – SRV-FW001
Fonte: Elaborado pelo autor, 2015
Figura A.20: Tela de login – SRV-AD001
Fonte: Elaborado pelo autor, 2015
88
ANEXO B – SCRIPT DE FIREWALL
#!bin/bash
# DEFINICAO DE VARIAVEIS PARA USO NO SCRIPT
IPTABLES="/sbin/iptables"
LAN="eth1"
WAN="eth0"
REDEINTERNA="172.16.0.0/22"
PIDFILE="/var/lock/nat"
defaultpolice(){
echo "*** Definindo politica/regras padrao"
$IPTABLES -P INPUT DROP
#Liberando interface lo e LAN
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i $LAN -j ACCEPT
#Bloqueia ICMP (PING) da rede interna para Internet
$IPTABLES -A FORWARD -i $LAN -p icmp -j DROP
#MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE
#MICROS QUE NAO PASSAM PELO SQUID (SEM BLOQUEIO NA PORTA 80)
$IPTABLES -A FORWARD -i $LAN -p tcp --dport 80 -s 172.16.0.2/32 -j ACCEPT
#BLOQUEIA ACESSO DIRETO A PORTA 80
$IPTABLES -A FORWARD -i $LAN -p tcp --dport 80 -j DROP
#CONEXOES RELACIONADAS
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
}
ativanat(){
89
echo "*** Ativando NAT"
#Caregando Modulos
modprobe iptable_nat
modprobe nf_conntrack_ftp
modprobe nf_nat_ftp
modprobe nf_conntrack_netlink
modprobe nfnetlink
echo 1 > /proc/sys/net/ipv4/ip_forward
}
reloadsquid(){
SQUIDPID=/var/run/squid3.pid
if [ -e $SQUIDPID ]; then
echo "*** Fazendo reload do squid"
service squid3 reload
else
echo "*** Fazendo start do squid"
service squid3 start
fi
}
case "$1" in
start)
if [ -e $PIDFILE ]; then
echo " * $0 ja iniciado. Tente $0 (stop|restart|firewall-rules|
reloadsquid)"
exit 1
fi
#Ativando NAT
ativanat
#Aplicando politica padrao
defaultpolice
#Reload do squid
reloadsquid
90
echo "*** Concluido"
touch $PIDFILE
exit 0
;;
stop)
if [ -e $PIDFILE ]; then
echo "*** Restaurando politica padrao "
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
echo "*** Limpando Regras do iptables"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
echo "*** Removendo Modulos"
echo 0 > /proc/sys/net/ipv4/ip_forward
rmmod nf_nat_ftp
rmmod nf_conntrack_ftp
rmmod iptable_nat
rmmod nf_conntrack_netlink
rmmod nfnetlink_queue
rmmod nfnetlink
rm $PIDFILE
exit 0
else
echo " * $0 nao iniciado. Tente $0 (start)"
fi
;;
restart)
echo ""
echo "*** Parando serviços ***"
$0 stop
91
echo ""
sleep 1
echo "*** Iniciando serviços ***"
$0 start
;;
firewall-rules)
if [ -e $PIDFILE ]; then
echo ""
echo "**********************************************"
echo "*** Tabela Filter ***"
echo "**********************************************"
echo ""
$IPTABLES -L -n
echo ""
echo "**********************************************"
echo "*** Tabela nat ***"
echo "**********************************************"
echo ""
$IPTABLES -t nat -L -n
echo ""
echo "**********************************************"
echo "*** Tabela mangle ***"
echo "**********************************************"
echo ""
$IPTABLES -t mangle -L -n
else
echo " * $0 nao iniciado. Tente $0 (start)"
fi
;;
*)
echo " * Uso: $0 (start|stop|restart|firewall-rules)"
exit 1
;;
esac
92
ANEXO C – ARQUIVO SQUID.CONF
http_port 172.16.0.1:3128
visible_hostname SRV-FW001
cache_mgr [email protected]
error_directory /usr/share/squid-langpack/pt-br/
cache_mem 8 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 8 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 1024 8 128
cache_access_log /var/log/squid3/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
#Windows update
refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reloadinto-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200
reload-into-ims
refresh_pattern www.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200
reloadinto-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100%
43200 reload-into-ims
refresh_pattern download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100%
43200 reload-into-ims
refresh_pattern update.microsoft.com/.*\.(cab|exe|dll|msi) 4320 100% 43200
reloadinto-ims
#Lista de ACL
93
acl safe_ports port 80 # http
acl safe_ports port 81 # http
acl safe_ports port 21 # ftp
acl safe_ports port 443 # https
acl safe_ports port 563 # snews
acl safe_ports port 70 # gopher
acl safe_ports port 210 # wais
acl safe_ports port 1025-65535 # unregistered ports
acl safe_ports port 280 # http-mgmt
acl safe_ports port 488 # gss-http
acl safe_ports port 591 # filemaker
acl safe_ports port 777 # multiling http
acl safe_ports port 901 # SWAT
acl purge method PURGE
acl connect method CONNECT
acl localhost src 127.0.0.1
#Autenticacao por LDAP
auth_param basic program /usr/lib/squid3/basic_ldap_auth -R -b
"dc=empresa,dc=local" -D "cn=ldap,cn=Users,dc=empresa,dc=local" -w "P@ssw0rd"
-f sAMAccountName=%s -h 172.16.0.2
auth_param basic children 15
auth_param basic realm Digite seu Login/Senha
#Windows Update
acl windowsupdate dstdomain windowsupdate.microsoft.com
acl windowsupdate dstdomain .update.microsoft.com
acl windowsupdate dstdomain download.windowsupdate.com
acl windowsupdate dstdomain redir.metaservices.microsoft.com
acl windowsupdate dstdomain images.metaservices.microsoft.com
acl windowsupdate dstdomain c.microsoft.com
acl windowsupdate dstdomain www.download.windowsupdate.com
acl windowsupdate dstdomain wustat.windows.com
acl windowsupdate dstdomain crl.microsoft.com
94
acl windowsupdate dstdomain sls.microsoft.com
acl windowsupdate dstdomain productactivation.one.microsoft.com
acl windowsupdate dstdomain ntservicepack.microsoft.com
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny CONNECT !safe_ports
http_access deny !safe_ports
http_access allow windowsupdate
acl autenticados proxy_auth REQUIRED
http_access allow autenticados
http_access deny all
95
ANEXO D – ARQUIVO DE INICIALIZAÇÃO DO SAMBA 4
#! /bin/sh
### BEGIN INIT INFO
# Provides:
samba-ad-dc
# Required-Start:
$network $local_fs $remote_fs
# Required-Stop:
$network $local_fs $remote_fs
# Default-Start:
2345
# Default-Stop:
016
# Short-Description: start Samba daemons for the AD DC
### END INIT INFO
#
# Start/stops the Samba daemon (samba).
# Adapted from the Samba 3 packages.
#
PIDDIR=/usr/local/samba/var/run
SAMBAPID=$PIDDIR/samba.pid
# clear conflicting settings from the environment
unset TMPDIR
# See if the daemon and the config file are there
test -x /usr/local/samba/sbin/samba -a -r /usr/local/samba/etc/smb.conf || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
SERVER_ROLE=`/usr/local/samba/bin/samba-tool testparm --parametername="server role" 2>/dev/null | tail -1`
96
if [ "$SERVER_ROLE" != "active directory domain controller" ]; then
exit 0
fi
if init_is_upstart; then
exit 1
fi
# CVE-2013-4475
KEYFILE=/var/lib/samba/private/tls/key.pem
if [ -e $KEYFILE ]
then
KEYPERMS=`stat -c %a $KEYFILE`
if [ "$KEYPERMS" != "600" ]
then
echo "wrong permission on $KEYFILE, must be 600"
echo "samba will not start (CVE-2013-4475)"
echo "Removing all tls .pem files will cause an autoregeneration with the correct permissions."
exit 1
fi
fi
log_daemon_msg "Starting Samba AD DC daemon" "samba"
# Make sure we have our PIDDIR, even if it's on a tmpfs
install -o root -g root -m 755 -d $PIDDIR
if ! start-stop-daemon --start --quiet --oknodo --exec
/usr/local/samba/sbin/samba -- -D; then
log_end_msg 1
exit 1
fi
log_end_msg 0
97
;;
stop)
if init_is_upstart; then
exit 0
fi
log_daemon_msg "Stopping Samba AD DC daemon" "samba"
start-stop-daemon --stop --quiet --pidfile $SAMBAPID
# Wait a little and remove stale PID file
sleep 1
if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
then
# Stale PID file (samba was succesfully stopped),
# remove it (should be removed by samba itself IMHO.)
rm -f $SAMBAPID
fi
log_end_msg 0
;;
restart|force-reload)
if init_is_upstart; then
exit 1
fi
$0 stop
sleep 1
$0 start
;;
status)
status_of_proc -p $SAMBAPID /usr/local/samba/sbin/samba samba
exit $?
;;
*)
echo "Usage: /etc/init.d/samba-ad-dc {start|stop|restart|force-reload|
98
status}"
exit 1
;;
esac
exit 0
99
ANEXO E – FUNCIONALIDADES DE MODOS DE DOMÍNIOS
Tabela E.1 - Funcionalidades disponíveis em cada um dos modos de domínios
Nível do domínio
Funcionalidades Disponíveis
Pode ter DCs com:
Windows 2000 misto
– Somente as básicas, comuns a todas as – NT Server 4.0
versões do Windows
– Windows 2000 Server
– Windows Server 2003
Windows 2000 Nativo
– Todas as funcionalidades básicas do AD – Windows 2000 Server
– Grupos Universais
– Windows Server 2003
– Grupos dentro de grupos
– Windows Server 2008
– Conversão de tipo de grupo
– Histórico de SID
Windows Server 2003
– Todas as funcionalidades básicas do AD – Windows Server 2003
– Todas as funcionalidades do modo – Windows Server 2008
Windows 2000 nativo
– Renomeação de domínios
– Atualização de horário do último logon
–
Redirecionamento
dos
contêineres
Usuários e Computadores
–
Armazenamento
de
políticas
de
gerenciamento de autorização no AD
– Autenticação seletiva de usuários de
florestas confiáveis
– Recursos avançados de segurança para
o desenvolvimento de aplicações
Windows Server 2008
– Todas as funcionalidades básicas do AD – Windows Server 2008
– Todas as funcionalidades do modo
Windows 2000 nativo
Todas
as
funcionalidades
do
modo
Windows Server 2003
– Replicação distribuída do SYSVOL
– Serviço avançado de criptografia (AES
128
e
256)
para
o
protocolo
de
autenticação Kerberos
– Informações sobre o último logon
interativo bem-sucedido
– Opções mais refinadas e avançadas
para a definição de políticas e senhas
Fonte: Battisti; Santana, 2009, p. 322
100
ANEXO F – FUNCIONALIDADES DE MODOS DE FLORESTAS
Tabela F.1 - Funcionalidades disponíveis em cada um dos modos de florestas
Nível da floresta
Funcionalidades Disponíveis
Pode ter DCs com:
Windows 2000
– Todas as funcionalidades básicas do AD – Windows 2000 Server
– Grupos Universais
– Windows Server 2003
– Grupos dentro de grupos
– Windows Server 2008
– Conversão de tipo de grupo
– Histórico de SID
Windows Server 2003
– Todas as funcionalidades básicas do AD – Windows Server 2003
– Relação de confiança entre florestas
– Windows Server 2008
– Renomeação de domínios
– Replicação diferencial de grupos, onde
somente as alterações feitas no grupo são
replicadas entre os DCs
– Instalação de DCs somente leitura
(RODC)
– Melhorias no KCC, as quais implicam
em melhorias na replicação entre DCs
Criação
de
instâncias
de
classes
dinâmicas auxiliares
Conversão de uma instância de objeto da
classe INETORGPERSON em um objeto
da classe User
– Desativação e redefinição de atributos
de classes e no Schema
Windows Server 2008
– Todas as funcionalidades básicas do AD – Windows Server 2008
– Todas as funcionalidades do modo
Windows Server 2003
– Todos os novos domínios que forem
adicionados a uma árvore com esta
funcionalidade já serão automaticamente
configurados
para
funcionalidade
de
Server 2008
Fonte: Battisti; Santana, 2009, p. 323
o
domínio
nível
de
Windows