PG
PG
PG
Parte manuscrita do Projeto de Graduacao do aluno Carlos Henrique dos Santos Silva Patrocnio, apre sentado ao Colegiado de Engenharia de Computacao do Centro Tecnol gico da Universidade Federal do o Esprito Santo, como requisito parcial para obtencao do Grau de Engenheiro de Computacao. Orientador: Hans J rg Andreas Schneebeli. o
Prof. Dr. Hans J rg Andreas Schneebeli Orientador o Universidade Federal do Esprito Santo
Albert Einstein
Agradecimentos
` A minha famlia, pelo apoio incondicional durante todos esses anos. A Renan Teixeira de Souza, por conar no meu trabalho e me permitir aprender e crescer prossionalmente. Aos amigos, que tornaram a jornada um pouco menos dolorosa. A Deus, por estar comigo em todos os momentos, especialmente os mais difceis.
Sum rio a
Lista de Tabelas
Lista de Figuras
Resumo
12
Abstract
13
Introducao 1.1 1.2 1.3 1.4 1.5 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descricao da Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Denicao do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14 14 14 15 16 16
17
23
25 25 26
28 31 35 37 37 38 38
Conguracao nas M quinas Clientes . . . . . . . . . . . . . . . . . . . . . a 4.2.1 4.2.2 Clientes Windows . . . . . . . . . . . . . . . . . . . . . . . . . . Clientes Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3
Seguranca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Resultados
40
47
48
49
50
59
62
Ap ndice E -- addMachine.pl e
64
66
69
70
73
76
Anexo A -- 61samba.ldif
79
Lista de Tabelas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Exemplo de Entrada no Formato LDIF . . . . . . . . . . . . . . . . . . . . Terminologia do Texto e Exemplos . . . . . . . . . . . . . . . . . . . . . . Descricao dos Campos do Arquivo smb.conf . . . . . . . . . . . . . . . . 19 25 29 30 31 32 33 34 34 35 37 41 42 69
Possveis Valores para o Par metro ldap passwd sync . . . . . . . . . . . . a Informacoes do Domnio Registradas no LDAP . . . . . . . . . . . . . . . Atributos dos Nomes de Usu rios . . . . . . . . . . . . . . . . . . . . . . a Atributos dos Nomes de M quina. . . . . . . . . . . . . . . . . . . . . . . a Relacao de Nomes de Grupo e RIDs . . . . . . . . . . . . . . . . . . . . . Atributos dos Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conguracao do Arquivo nsswitch.conf . . . . . . . . . . . . . . . . . . . Equival ncia entre ldap.conf e smb.conf . . . . . . . . . . . . . . . . . . . e Fragmentos de Log de uma Consulta ao Diret rio LDAP . . . . . . . . . . o Registros de Log do Samba . . . . . . . . . . . . . . . . . . . . . . . . . . Privil gios Associados ao Comando net . . . . . . . . . . . . . . . . . . e
Lista de Figuras
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Arvore de Informacoes do Diret rio LDAP . . . . . . . . . . . . . . . . . o IDMAP: Traducao de SID em UID com Winbind . . . . . . . . . . . . . . IDMAP: Traducao de UID em SID com Winbind . . . . . . . . . . . . . . IDMAP: Traducao de SID em UID pelo LDAP . . . . . . . . . . . . . . . IDMAP: Traducao de UID em SID pelo LDAP . . . . . . . . . . . . . . . Diagrama da Estrutura do Diret rio . . . . . . . . . . . . . . . . . . . . . o Conguracao das M quinas do Ambiente de Desenvolvimento . . . . . . . a Registro do domnio no LDAP. . . . . . . . . . . . . . . . . . . . . . . . . Composicao do Atributo sambaSID para um Usu rio . . . . . . . . . . . . a Visualizacao da Arvore do Diret rio LDAP pelo 389 Management Console o Visualizacao de Atributos de um Usu rio pelo 389 Management Console . . a Exibicao do Nome do Usu rio no Menu Iniciar do Windows . . . . . . . a Grupo Domain Admins Integra o Grupo Local Administradores . . . . Grupo Domain Users Integra o Grupo Local Usu rios . . . . . . . . . a Compartilhamentos de Rede do Servidor Samba . . . . . . . . . . . . . . . Visualizacao dos Computadores Disponveis na Rede . . . . . . . . . . . . Integracao do Ambiente Linux com o Diret rio LDAP . . . . . . . . . . . o Aba Nome do computador em Propriedades do sistema . . . . . . . . . Janela Alteracoes de nome do computador . . . . . . . . . . . . . . . . . 20 21 21 22 22 23 24 30 31 40 41 43 44 44 45 45 46 73 74
20 21
74 75
12
Resumo
Este texto trata a implementacao de um controlador de domnio para autenticacao de usu rios, desenvolvido como projeto para a Universidade Federal do Esprito Santo. O oba jetivo e que professores, alunos e servidores p blicos utilizem uma credencial unica para u acessar servicos e recursos da Universidade, como rede sem o, correio eletr nico e estacoes o de trabalho. Um domnio dene usu rios, grupos e computadores de uma rede, os quais s o ad a a ministrados por meio de um controlador de domnio. A este, est associado um servico a de diret rio, que desempenha funcionalidades essenciais, como autenticacao, autorizacao e o contabilidade. Servicos de diret rio comumente implementam o LDAP (Lightweight Direc o tory Access Protocol). Um diret rio LDAP consiste em entradas dispostas hierarquicamente o compostas por um conjunto de atributos e valores. A sute de programas Samba permite a interoperabilidade de computadores com dife rentes sistemas operacionais em uma mesma rede. O Samba oferece recursos de compartilhamento de arquivos e impressoras, e pode exercer a funcao de controlador de domnio, associado a uma base de dados. Palavras-chave: Controlador de domnio, LDAP, diret rio, Samba. o
13
Abstract
This paper discusses the implementation of a domain controller for user authentication, developed as a project for Universidade Federal do Esprito Santo. The objective is that professors, students and public employees use a unique credential to access services and resources of the University, like wireless network, mailbox e workstations. A domain denes users, groups and computers of a network, which are managed by a domain controller. To this one, it is associated a directory service, that performs essential functionalities, like authentication, authorization and accounting. Directory services commonly implement LDAP (Lightweight Directory Access Protocol). An LDAP directory consists in entries arranged hierarchically which are composed by a collection of attributes and values. The Samba suite of programs allows the interoperability of computers with different operating systems in a same network. The Samba offers le sharing and printing resources, and can operate as a domain controller, associated with a database. Keywords: Domain controller, LDAP, directory, Samba.
14
Introducao
1.1
Motivacao
Para atender as necessidades de seus usu rios, instituicoes de grande porte disponia ` bilizam v rios servicos relacionados a Tecnologia da Informacao como telefonia, correio a eletr nico e conex o a Internet. O acesso a estes recursos est normalmente associado a o a ` a v rios n meros de identicacao e senhas de seguranca, que precisam ser gravados ou anotaa u dos pelos usu rios, o que pode ser um empecilho. a Este projeto prop e uma solucao de converg ncia de acesso de baixo custo, de modo a o e garantir que a experi ncia dos usu rios na utilizacao das tecnologias seja simplicada. Al m e a e de sua execucao pr tica, este projeto visa ter como produto nal um documento completo e a analtico sobre o que se prop e a ser implantado que poder servir de refer ncia para futuras o a e conguracoes.
1.2
Descricao da Area
O armazenamento e gerenciamento ecaz de dados tornou-se parte fundamental dos processos de empresas e instituicoes, devido ao grande volume de informacao disponvel. Numa rede de computadores, dados de usu rios precisam trafegar de maneira segura sem afetar a negativamente a operabilidade e eci ncia dos servicos. Essas funcionalidades est o associe a adas a exist ncia de um domnio, que dene usu rios, grupos e computadores de uma rede, e a cuja administracao e centralizada em um controlador de domnio. Essa estrutura permite di ferenciar computadores fornecedores de servicos (servidores) de computadores utilizadores de servico (clientes), assim como usu rios administradores de usu rios comuns. a a Um servico de diret rio deve atender funcionalidades b sicas, referenciadas pela si o a gla AAA (Authentication, Authorization and Accounting). A autenticacao (Authentication)
1. Introducao
15
refere-se ao processo no qual a identidade de uma entidade e autenticada por meio de evid ncias que comprovem suas credenciais digitais, como senhas, tokens e certicados die gitais. A funcao de autorizacao (Authorization) determina se uma entidade e autorizada a executar determinada atividade, baseada numa s rie de restricoes, como permiss o de leitura e a e escrita a um arquivo. Contabilidade (Accounting) refere-se ao processo de registrar a atividade dos usu rios da rede a m de determinar os recursos utilizados, de modo a permitir a a an lise da capacidade, custos e eventuais falhas dos servicos, al m de uma possvel auditoria. a e
1.3
Denicao do Problema
O projeto consiste na implantacao de um controlador de domnio associado a um diret rio de usu rios que servir como base de autenticacao para os diversos servicos da o a a Universidade Federal do Esprito Santo (UFES). A proposta e que os usu rios (servidores a p blicos, professores e alunos) utilizem uma credencial unica (login e senha) para acesso u aos recursos da Universidade, como rede sem o, correio eletr nico, portais web, telefonia o VoIP e estacoes de trabalho. A interoperabilidade de servicos imp e requisitos, tais como: o O diret rio deve conter dados pessoais dos usu rios, como nome, documentacao, teleo a fone e endereco; Deve ser possvel diferenciar os tipos de usu rios quanto a associacao com a instituicao a (Professor, aluno, servidor p blico ou uma combinacao destes); u Informacoes associadas a operacao de servicos, como correio eletr nico, devem ser o obtidas diretamente do diret rio; o Permiss es ou restricoes de acesso a recursos devem ser gerenciadas atrav s do dio e ret rio; o Os usu rios devem poder autenticar em estacoes de trabalho com sistema operacional a Windows ou Linux. Os dados devem trafegar na rede de maneira segura, por meio de mecanismos de encriptacao e tunelamento.
1. Introducao
16
1.4
Metodologia
Inicialmente ser feita uma avaliacao das possveis solucoes tecnol gicas em relacao aos a o benefcios e viabilidade. Denidas as tecnologias a serem empregadas, estas ser o imple a mentadas em m quinas virtuais em um ambiente isolado que reproduza as caractersticas do a ambiente de producao. Testes ser o realizados para garantir que as funcionalidades preten a didas sejam atendidas.
1.5
Estrutura do Texto
O Captulo 2 apresenta a descricao das tecnologias envolvidas neste projeto, de maneira a justicar a escolha das solucoes implementadas. Conceitos importantes para a compreens o a do texto s o fornecidos neste captulo. a Um resumo da solucao proposta para o problema e descrito no Captulo 3. O Captulo 4 descreve a parte conceitual dos processos de conguracao do servidor e clientes. Inicialmente s o apresentados os procedimentos para obter um Controlador de a Domnio baseado nas tecnologias escolhidas, abordando a criacao do domnio e as conguracoes no diret rio relacionadas a usu rios, grupos e computadores. Em seguida, descrevem-se os o a passos necess rios para adicionar as m quinas clientes ao domnio criado. a a Os resultados obtidos ap s a implementacao da solucao proposta s o apresentados no o a Captulo 5. O Captulo 6 cont m a an lise dos resultados e conclus es nais. e a o
17
A necessidade de compartilhar arquivos, impressoras e at mesmo a conex o com a e a Internet entre computadores levou a criacao de diversas tecnologias, as quais evoluram ao longo do tempo para suprir as crescentes necessidades de eci ncia e seguranca das redes de e computadores. No ambiente Linux/UNIX, a Sun Microsystems desenvolveu o Network Information Service (NIS), inicialmente denominado Yellow Pages (YP), para centralizar a administracao de informacoes numa rede, como usu rios e senhas, grupos e nomes de computadores. A a base de dados NIS e formada por tabelas, armazenadas em arquivos de texto plano, como /etc/passwd, /etc/shadow, /etc/group e /etc/hosts. Devido a simplicidade da base de dados, o NIS e indicado para pequenas redes, formadas por at dezenas de computadores. A aus ncia e e de um mecanismo de encriptacao para troca de informacoes torna o NIS inseguro para os padr es atuais. o Uma das iniciativas da Microsoft foi a denicao de grupos de trabalho, ou Workgroups, nos quais computadores compartilham recursos por meio de uma rede ponto a ponto local. Em um Workgroup, n o h divis o entre servidores e clientes, nem credenciais ou mecanisa a a mos de autenticacao formais que identiquem usu rios e computadores na rede. Com a ex a pans o das organizacoes, surgiu a demanda por uma solucao mais robusta, na qual usu rios, a a ` m quinas e arquivos pudessem ser gerenciados de maneira centralizada, o que levou a criacao a do Domnio Windows. Em um domnio, um diret rio central de banco de dados armazena o ` as credencias dos usu rios e informacoes relacionadas a seguranca dos recursos da rede. O a Windows NT Directory Services (NTDS), parte integrante do Windows NT Server, foi o primeiro servico de diret rio centralizado para um domnio Windows. Em um domnio NT, a o ger ncia da rede e atribuida a um Controlador de Domnio Prim rio (PDC1 ), que cont m o e a e NTDS. Um ou mais servidores atuam como Backup do Controlador de Domnio (BDC2 ), ar
1 Primary 2 Backup
18
mazenando uma c pia do diret rio, a m de aliviar a carga de trabalho do servidor prim rio. o o a Neste modelo, alteracoes no diret rio s o executadas somente atrav s do PDC e replicadas o a e automaticamente para os BDCs. O NTDS tornou-se obsoleto com o advento do Active Directory3 , que possibilita a operacao de v rios Controladores de Domnio numa mesma rede. a Os pontos fortes do Active Directory s o os recursos de gerenciamento e seguranca, que a permitem escalabilidade para redes de grande porte. Por m, os tipos de dados vinculados e no diret rio s o imut veis, n o sendo possvel, portanto, associar informacoes especcas o a a a relacionadas a operacao de outros servicos. A sute de programas Samba foi desenvolvida para permitir a interoperabilidade em uma rede mista, composta por sistemas operacionais Windows e/ou Linux/UNIX. O Samba possibilita, por exemplo, a exist ncia de um servidor de arquivos Linux em uma rede Wine dows, gerenciada atrav s do Active Directory. O Samba tamb m pode exercer a funcao de e e controlador de domnio, associado a diferentes bases de dados. Neste modo de operacao, o Samba atua como um PDC, oferecendo as funcionalidades de um domnio Windows a cli entes Linux e Windows. Isso e possvel porque o Samba emula o protocolo SMB (Server Message Block), tamb m conhecido como CIFS (Common Internet File System), que prov e e mecanismos de comunicacao entre os diversos dispositivos da rede. O Samba utiliza uma implementacao do Microsoft RPC (Request Procedure Call), uma tecnologia que permite a criacao de programas cliente/servidor em sistemas distribudos. O Lightweight Directory Access Protocol (LDAP) e um protocolo de aplicacao que per mite o acesso a um servico de diret rio atrav s de uma rede IP (Internet Protocol). Atrav s o e e do LDAP, aplicacoes em diferentes tipos de plataforma podem se comunicar com a base de dados LDAP. Um diret rio LDAP consiste de uma estrutura hier rquica de dados no foro a mato nome:valor e por padr o e otimizado para operacoes de leitura. Implementacoes de a diret rio LDAP s o o Active Directory, OpenLDAP, 389 Directory Server e eDirectory. o a Um diret rio LDAP segue o modelo X.500, que dene: o
Uma entrada consiste em um conjunto de atributos; Um atributo tem um nome e um ou mais valores. Os atributos s o denidos em um a schema;
Active Directory foi lancado em 1999 com o Windows 2000 Server e aprimorado no Windows Ser ver 2003. A partir da vers o Windows Server 2008, o Active Directory incorpora novas funcionalidades e e a renomeado para Active Directory Domain Services.
3O
19
Cada entrada tem um identicador unico, referido como Distinguished Name (DN).
Um schema dene um conjunto de regras que determina o tipo de informacao que e ar mazenada no diret rio. Um schema inclui a sintaxe, o tipo dos atributos e classes. Uma o classe representa um conjunto de atributos classicados como necess rios ou opcionais. a Toda entrada possui uma ou mais classes, que determina quais atributos podem ser associados a ela. A Tabela 1 ilustra um exemplo de uma entrada representada em LDAP Data Interchange Format (LDIF)4 . As classes de uma entrada s o denidas no atributo objecta Class. dn: uid=carlos.patrocinio,ou=people,dc=ufes2,dc=br cn: Carlos Herique dos S. S. Patrocinio givenName: Carlos sn: Patrocinio telephoneNumber: 99999999 mail: [email protected] objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: top Tabela 1: Exemplo de Entrada no Formato LDIF Os dados s o representados no diret rio como uma hierarquia de objetos (entradas). A a o arvore estrutural resultante e denominada Data Information Tree (DIT). O topo da arvore e referido como raiz, base ou suxo. A Figura 1 ilustra uma arvore LDAP e suas relacoes. Uma funcionalidade desej vel em uma rede de computadores e que o usu rio, uma vez a a autenticado, tenha acesso a todos os recursos permitidos a ele, sem a necessidade de se autenticar novamente. Essa propriedade de controle de acesso e referida como Single SignOn (SSO). O Samba permite aplicar o SSO no acesso aos compartilhamentos de rede com a associacao de alguns m dulos ou programas, como: o
Name Service Switch (NSS): Servico respons vel por realizar pesquisas nas bases de a dados em ambientes UNIX. Ele permite denir as fontes (bancos de dados) utilizadas por outros servicos para autenticacao e resolucao de nomes na rede.
Data Interchange Format (LDIF) e um arquivo em formato ASCII utilizado para a troca de dados entre o servidor e cliente ou entre servidores. Tamb m pode ser utilizado para fazer alteracoes no servidor e LDAP por meio de aplicacoes de linha de comando.
4 LDAP
20
Figura 1: Arvore de Informacoes do Diret rio LDAP o Pluggable Authentication Modules (PAM): Servico respons vel por realizar a autenticacao a de usu rios nos ambientes Linux/UNIX. Atrav s do PAM e de suas bibliotecas, e a e possvel congurar um esquema de autenticacao segura para qualquer aplicacao de forma transparente. Winbind: Componente da suite de programas do Samba que soluciona o problema de logon unicado. O winbind utiliza uma implementacao do Microsoft RPC, PAM e NSS para permitir que usu rios de um domnio Windows NT aparecam e operem a como usu rios UNIX em um sistema UNIX (Jelmer R. Vernooij, 2010). a Sistemas Linux/UNIX utilizam uma identicacao num rica para representar usu rios e e a grupos: UID (User IDentication) e GID (Group IDentication), respectivamente. Sistemas Windows utilizam SID (Security IDentier), uma chave unica de identicacao para cada usu rio, grupo ou computador do domnio. A m de garantir a interoperabilidade entre as a diferentes plataformas, e preciso que haja a convers o de UID/GID em SID e vice-versa. a A funcao do winbind e exatamente fazer esta convers o. Um intervalo num rico e denido a e nos par metros idmap uid e idmap gid no arquivo smb.conf. O winbind utiliza um n mero a u do intervalo para compor o SID do usu rio/grupo, conforme representado na Figura 2 e Fia gura 3. Os SIDs gerados s o mapeados no banco de dados do winbind, winbindd idmap.tdb. a Segundo (Jelmer R. Vernooij, 2010), esta conguracao n o e adequada em ambientes com a mais de um servidor Samba, visto que as bases de dados do winbind precisam ser sincronizadas entre as estacoes; caso um desses arquivos seja corrompido, podem ocorrer atribuicoes de SID para usu rios previamente mapeados, o que pode resultar em erros de autorizacao de a acesso a pastas e arquivos.
21
Figura 3: IDMAP: Traducao de UID em SID com Winbind Outra solucao e armazenar UIDs/GIDs e SIDs como um atributo das entradas de um diret rio LDAP, de modo que para cada usu rio/grupo, exista um SID associado a ele; dessa o a forma, tem-se uma conguracao simplicada, independente do winbind, como mostra a Fi ` gura 4 e Figura 5. Nesta conguracao, os servicos de logon s o providos as estacoes Li a ` nux/UNIX atrav s do PAM e NSS, enquanto o Samba fornece suporte as estacoes Windows. e Embora a solucao baseada em winbind seja a mais comumente utilizada, a conguracao dependente diretamente do LDAP e mais atual, visto que e suportada apenas pelas vers es o mais novas do Samba, e consome menos recursos do sistema, pois necessita da operacao de um menor n mero de servicos. A associacao do Samba a um diret rio LDAP resulta em u o um controlador de domnio robusto e con vel, que implementa diversas funcionalidades a necess rias em uma rede de computadores. a
22
23
A an lise das tecnologias disponveis e requisitos do projeto resulta na escolha do Samba a associado a um diret rio LDAP como melhor solucao para a composicao do controlador de o domnio. O 389 Directory Server e adotado como servico de diret rio por se tratar de um o projeto bem documentado, pela facilidade de gerenciamento e compatibilidade com todos os schemas necess rios. a O domnio UFES2.BR e adotado para o ambiente de testes. A arvore da estrutura do diret rio e formada pela raiz, que representa o nome do domnio, e por unidades organizacio onais (OUs) que armazenam usu rios, grupos e computadores, conforme ilustra a Figura 6. a
Figura 6: Diagrama da Estrutura do Diret rio o O servidor atua como PDC e Domain Master Browser da rede, oferecendo assim servicos de autenticacao (integrados ao diret rio LDAP por meio dos m dulos NSS e PAM) e listagem o o dos computadores e recursos disponveis no domnio. O ambiente de testes e composto por uma m quina fsica (Host) e tr s m quinas virtuais a e a VMware (dominio1, winxp e vm-ubuntu), gerenciadas e operadas com auxlio dos softwares
24
VMware Server1 , PuTTY2 , WinSCP3 e 389 Management Console4 a partir do Host. A Figura 7 ilustra a conguracao das estacoes.
Figura 7: Conguracao das M quinas do Ambiente de Desenvolvimento a Os arquivos de conguracao de rede de todas as estacoes s o modicados para per a mitir que estas se identiquem e se comuniquem. As conguracoes s o apresentadas no a Ap ndice A. e
de virtualizacao de m quinas da WMware. a de terminal que implementa Telnet e SSH para Windows e UNIX. 3 Cliente SFTP, SCP, FTPS e FTP integrados em um software para transfer ncia de arquivos para servidores e FTP ou SFTP. 4 Console gr co do 389 Directory Server para administracao do diret rio. a o
2 Emulador
1 Software
25
Implementacao
Este captulo apresenta as conguracoes necess rias para que o servidor opere como a controlador de domnio prim rio da rede utilizando as tecnologias anteriormente citadas, as a sim como as modicacoes nas m quinas clientes para que estas possam ingressar no domnio a criado. a Os termos DOMINIO, SERVIDOR, IP SERVIDOR e SENHA s o utilizados para representar o nome do domnio, nome do servidor, IP do servidor e campos de senha, respec tivamente, e devem ser substitudos pelos valores adequados, de acordo com a conguracao pretendida. Os arquivos de exemplo cont m os valores utilizados no ambiente de testes da e execucao deste projeto, conforme ilustra a Tabela 2. Termo DOMINIO SERVIDOR IP SERVIDOR SENHA Descricao Nome do domnio Nome do servidor IP do servidor Campo de senha Exemplo ufes2.br dominio1 192.168.93.133 palavra-passe
Tabela 2: Terminologia do Texto e Exemplos A instalacao dos softwares necess rios ao ambiente Linux e realizada com auxlio de a ferramentas de gerenciamento de pacotes (Yum ou apt-get, de acordo com a distribuicao Linux). Este m todo e recomend vel uma vez que facilita uma possvel atualizacao dos e a softwares.
4.1
Conguracoes no Servidor
As conguracoes no servidor envolvem os seguintes passos: Instalacao e conguracao do 389 Directory Server;
4. Implementacao
26
Conguracao do domnio atrav s do Samba; e Adicao de usu rios, grupos e computadores ao diret rio LDAP; a o Habilitacao da autenticacao via LDAP por meio de NSS e PAM.
4.1.1
O processo de instalacao do 389 Directory Server compreende a conguracao de dois servidores: um de diret rio e outro administrativo. Esta estrutura permite que haja v rios o a servidores de diret rios enquanto a administracao pode ser centralizada em um unico servio dor. ` As informacoes e denicoes associadas a instalacao s o: a
FQDN1 do servidor: Nome do servidor seguido do domnio, na forma SERVIDOR.DO MINIO. O servidor deve ser capaz de resolver este nome, por meio de DNS ou entrada no arquivo /etc/hosts. Usu rio e grupo UNIX na qual o servico e executado: O servico e executado por a um usu rio especco de um grupo especco. O usu rio n o pode ter privil gios a a a e administrativos. Por padr o, e utilizado o usu rio nobody do grupo nobody. a a Usu rio administrador do diret rio: Usu rio com privil gios administrativos normala o a e mente utilizado para se logar no console de gerenciamento. O padr o e admin. a Domnio Administrativo: V rios domnios ou subdomnios podem ser associados a a um unico domnio administrativo, ou domnio raiz. No caso de apenas um domnio este assume tamb m a funcao de Domnio Administrativo. e Porta de rede do Servidor de diret rio: N mero da porta de rede na qual o servico o u de diret rio opera. O padr o e 389 para conex es sem encriptacao e 636 para o a o conex es com encriptacao (SSL/TLS). o Identicador da inst ncia do diret rio: Cada instalacao do diret rio e denominada a o o inst ncia, e deve ser identicada por um nome unico na rede. Para apenas uma instalacao a no servidor, e utilizado o pr prio nome do servidor por padr o. o a
1 Fully
4. Implementacao
27
Suxo da arvore do diret rio: raiz da arvore do diret rio. E recomend vel que o o o a suxo seja formado por componentes do nome do domnio. Ex.: Para um domnio dominio.com, o suxo e dc=dominio,dc=com. Credenciais de um Usu rio Administrativo: Certas operacoes no diret rio requerem a o um usu rio administrativo para serem executadas. O identicador padr o deste usu rio a a a ou Distinguished Name (DN) e cn=Directory Manager. Durante a instalacao, cadastra se uma senha para este usu rio que deve conter no mnimo 8 caracteres, sem espacos. a
O Ap ndice B apresenta detalhadamente o processo de conguracao do 389 DS. e ` As principais pastas do servidor associadas a operacao do 389 DS s o: a
/etc/dirsrv/slapd-ldap/schema: Diret rio no qual os schemas comuns a todas as inst ncias o a s o armazenados. Toda inst ncia criada cont m uma c pia dos arquivos desta pasta. a a e o /etc/dirsrv/slapd-<inst ncia ldap>/schema: Diret rio no qual os schemas especcos a o de inst ncia do diret rio s o armazenados. a o a /var/log/dirsrv: Diret rio dos arquivos de log. o
Os schemas do 389 DS t m extens o LDIF e obrigatoriamente iniciam por um n mero. e a u Os arquivos s o carregados na mem ria sequencialmente, do menor para o maior n mero. a o u Deve-se certicar portanto, que uma classe pai que e herdada por uma classe lho seja carre ` gada primeiramente. O arquivo 99user.ldif e reservado a criacao de novas classes e atributos, caso sejam necess rios dados customizados que n o pertencam a outro schema. a a Os schemas eduPerson e eduOrg denem atributos relacionados aos usu rios e informacoes a da instituicao de ensino. O schema brEduPerson e uma extens o desses, com atributos es a peccos as necessidades do Brasil, como brcpf e brpassport. A integracao com o Samba requer a adicao de um schema especco, com classes e atributos utilizados pelo Samba para operar com o diret rio LDAP. O pacote de instalacao o do Samba possui um schema para o OpenLDAP, o samba.schema, o qual pode ser convertido para o 389 DS. O arquivo apropriado, 61samba.ldif, encontra-se no Anexo A.
4. Implementacao
28
4.1.2
Samba
O principal arquivo de conguracao do Samba e smb.conf, no qual s o registradas as a informacoes sobre o domnio e compartilhamentos. Um arquivo exemplo e apresentado no Ap ndice C. O arquivo e dividido em secoes, especicadas entre colchetes. A secao [global] e e relativa as conguracoes do domnio e integracao com o diret rio LDAP. As demais, [net o ` logon], [proles] e [homes] s o compartilhamentos de rede auxiliares a operacao dos pers a dos usu rios. A Tabela 3 apresenta a descricao de cada um dos campos de conguracao. a Para que o servidor atue como PDC da rede, e necess ria a conguracao domain logons a = yes. O mecanismo de autenticacao e associado a um usu rio e senha congurando-se o a modo de seguranca em nvel de usu rio (security = user). A encriptacao de senhas deve ser a habilitada (encrypt passwords = yes), valor padr o no Samba 3 (Morimoto, 2006). a O servidor precisa ser congurado como master browser da rede, para que as m quinas a pertencentes ao domnio possam visualizar os computadores da rede e recursos compartilha dos, como arquivos e impressoras. Caso existam v rios servidores capazes de exercer esta a funcao, o master browser e denido por meio de uma eleicao. As linhas preferred master = yes, local master = yes e os level = 100 garantem que o servidor PDC seja o escolhido para atuar como master browser da rede. O LDAP e denido como banco de dados por meio da opcao passdb backend = ldapsam. O campo ldap sufx dene o n base de busca de usu rios, grupos e computadores no LDAP o a e recomenda-se que seja igual ao nome do domnio. O nvel de log 3 (debug level = 3 ) permite visualizar a troca de mensagens entre cliente e servidor e os protocolos utilizados, o que facilita a identicacao de possveis erros. O campo ldap passwd sync permite que o usu rio troque a senha atrav s do computador a e cliente. Caso o valor seja denido como yes, ser necess rio que a comunicacao entre a a o cliente e servidor LDAP utilize um protocolo de seguranca, como SSL/TLS. Os possveis valores para este campo, assim como uma breve descricao, s o listados na Tabela 4, conforme a visto em (Jelmer R. Vernooij, 2010). O compartilhamento de rede netlogon e destinado a scripts de logon, arquivos de polticas de grupo (NTCong.POL) e outras ferramentas associadas ao logon, como descrito em (Jel mer R. Vernooij, 2010). O nome do arquivo de logon e especicado no par metro logon a script na secao [global].
4. Implementacao
29 Nome do domnio. Descricao de identicacao do servidor. Nome do servidor. Diret rio onde os logs s o salvos. o a Tamanho m ximo do log, em bytes. a Nvel de debug dos logs [1,2,3,10]. Opcoes relacionadas ao desempenho do servidor. Dene o servidor como controlador de domnio prim rio. a Forca uma eleicao para denir o LMB (Local Master Browser) da rede. Permite ao servidor atuar como LMB. Permite ao servidor atuar como servidor de login. Script de logon. Diret rio onde ser o armazenados os pers dos usu rios (Wino a a dows 9x). Diret rio onde ser o armazenados os pers dos usu rios (Wino a a dows NT/XP e superiores). Mapeamento de rede para a pasta do usu rio. a Dene o nvel de operacao do servidor [domain, member, user, ads]. Habilita/desabilita encryptacao de senhas [yes, no]. Dene a prioridade do servidor numa disputa por browser da rede [32-100]. Banco de dados onde ser o armazenados usu rios e senhas [smba a passwd, tdbsam, ldapsam, guest]. Usu rio administrador do diret rio LDAP. a o N base do domnio LDAP. o N onde se localizam os usu rios no LDAP. o a N onde se localizam os computadores no LDAP. o N onde se localizam os grupos no LDAP. o Habilita/desabilita sincronismo de senhas [no, yes, only]. Script a ser executado ao adicionar uma m quina ao domnio. a Permite denir um coment rio no compartilhamento. a Dene o diret rio do compartilhamento. o Atribui somente permiss o de leitura ao compartilhamento [yes, a no]. Atribui permiss o de escrita ao compartilhamento [yes, no]. a Mostra/oculta o diret rio na rede [yes, no]. o Dene as permiss es de seguranca quando um diret rio e criado o o dentro do compatilhamento. Dene as permiss es de compartilhamento de rede. o
workgroup server string netbios name log le max log size debug level socket options domain master preferred master local master domain logons logon script logon home logon path logon drive security encripty passwords os level passdb backend ldap admin dn ldap sufx ldap user sufx ldap machine sufx ldap group sufx ldap passwd sync add machine script comment path read only writable browseable create mask directory mask
4. Implementacao
30
yes no only
Atualiza os campos SambaNTPassword, SambaLMPassword, e password. Atualiza somente os campos SambaNTPassword e SambaLMPassword. Atualiza somente o campo password e deixa os outros campos a crit rio do e LDAP. Esta opcao est disponvel apenas em alguns servidores LDAP e somente a caso este suporte LDAP EXOP X MODIFY PASSWD. Tabela 4: Possveis Valores para o Par metro ldap passwd sync a
O compartilhamento de rede proles habilita pers m veis (roaming proles). Em outras o ` palavras, nesse diret rio s o armazenados os dados dos usu rios referentes as conguracoes o a a dos clientes, como pers de Desktop, programas e navegacao, de modo que o usu rio veja a sempre o mesmo ambiente em qualquer cliente que zer logon. Deve-se criar uma pasta para cada usu rio dentro do diret rio raiz deste compartilhamento. a o O compartilhamento homes cont m os diret rios de documentos para cada usu rio. E e o a possvel mape -lo em uma letra de unidade de rede no campo logon drive na secao [global]. a Deve-se criar uma pasta para cada usu rio no diret rio /home do servidor. a o ` O Ap ndice D ilustra os passos necess rios a conguracao dos compartilhamentos de e a rede e um script de logon que implementa funcionalidades para os compartilhamentos criados. O Samba registra o domnio em uma entrada na raiz do diret rio LDAP, como mostra a o Figura 8.
Figura 8: Registro do domnio no LDAP. A Tabela 5 exibe as informacoes do n criado para o domnio UFES2.BR. o
4. Implementacao
31
dn: sambaDomainName=UFES2.BR,dc=ufes2,dc=br objectclass: sambaDomain objectclass: top sambaDomainName: UFES2.BR sambaSID: S-1-5-21-1753017206-2808592884-3819274438 Tabela 5: Informacoes do Domnio Registradas no LDAP O Ap ndice C apresenta em detalhes o processo de instalacao e conguracao do Samba. e
4.1.3
A instalacao padr o do 389 Directory Server cria as Unidades Organizacionais ou=People a e ou=Groups, que armazenam usu rios e grupos, respectivamente. A ou=Computers e criada a manualmente para armazenar os nomes das m quinas pertencentes ao domnio. a A Tabela 6 descreve os principais atributos que identicam um usu rio na arvore do a diret rio. As classes que denem os atributos listados s o top, person, organizationalPerson, o a inetOrgPerson, eduPerson, posixAccount, mailRecipient, mailGroup, brPerson, e sambaSamAccount. O campo sambaSID representa um papel importante na identicacao do usu rio no a domnio. Ele armazena o SID equivalente em um domnio Windows e e formado pela concatenacao entre o SID que representa o domnio (domainSID ) e o identicador unico do usu rio (uidNumber), na forma domainSID-uidNumber. Essa e uma forma de garantir a que n o haver o SIDs duplicados no diret rio. a a o
Figura 9: Composicao do Atributo sambaSID para um Usu rio a O domainSID pode ser obtido nos atributo sambaSID do n que dene o domnio no o diret rio LDAP ou atrav s do comando net getlocalsid. o e # net getlocalsid SID for domain DOMINIO1 is: S-1-5-21-1753017206-2808592884-3819274438 Os computadores s o representados no LDAP de forma semelhante aos usu rios, com a a modicacoes em alguns atributos. Diferentemente de um domnio Windows, os nomes das
4. Implementacao
32 Descricao Identicacao do n na arvore do diret rio. o o Nome unico de identicacao do usu rio (login). a Nome de exibicao do usu rio. a N mero de identicacao do usu rio. u a N mero do grupo prim rio ao qual o usu rio pertence. u a a Nome da famlia ou sobrenome. N mero de telefone. u N mero de telefone residencial. u N mero de telefone celular. u Diret rio de documentos. o Shell de login. Organizacao ao qual pertence o usu rio. a o do usu rio com a instituicao. Aliaca a Campo de senha padr o. a Senha NT de 16-byte hash. Senha LanMan de 16-byte hash. Identicador de seguranca no domnio. Armazena informacoes sobre a troca de senha. Tempo em segundos desde 1970 at a ultima vez em que os valoe res de sambaNTPassword e sambaLMPassword foram alterados. Habilita ou desabilita o usu rio [false/true]. a CPF do usu rio. a Endereco de correio eletr nico. o Endereco principal de correio eletr nico. o Alias de endereco de correio eletr nico. o Diret rio onde as mensagens ser o salvas no servidor pelo servico o a de e-mail. Unidade Federada do endereco do usu rio. a Cidade do endereco do usu rio. a
Atributo distinguishedName/dn uid displayName uidNumber gidNumber surname/sn telephoneNumber homePhone mobile homeDirectory loginShell organization/o eduPersonAfliation userPassword sambaNTPassword sambaLMPassword sambaSID sambaPasswordHistory sambaPwdLastSet nsaccountlock brPersonCPF mail mailRoutingAddress mailAlternateAddress mailMessageStore state/st locality/l
Tabela 6: Atributos dos Nomes de Usu rios a m quinas clientes e demais servidores precisam ser cadastrados no LDAP antes que uma a m quina seja adicionada ao domnio. Esta tarefa pode ser automatizada com um script a devido a um recurso do Samba. O Ap ndice E e um exemplo de script em PERL que e adiciona as m quinas ao n ou=computers,dc=ufes2,dc=br e ao grupo cn=domain compua o ters,ou=groups,dc=ufes2,dc=br do LDAP. O diret rio e nome do script deve ser especicado o no par metro add machine script na secao [global] do arquivo smb.conf. a Observa-se que, utilizando-se o script para cadastrar as m quinas no diret rio LDAP, a o s o necess rias duas tentativas para inserir a m quina no domnio. Isso acontece porque a a a a busca pelo nome da m quina no diret rio ocorre antes da execucao do script. Na primeira a o
4. Implementacao
33
tentativa, a busca pelo nome da m quina no diret rio falha, e logo ap s o script e executado. a o o Na segunda tentativa, a busca e bem-sucedida, uma vez que o script foi executado na tentativa anterior. A Tabela 7 apresenta a descricao dos atributos necess rios para que um login de m quina a a opere de maneira correta. Atributo entrydn commonName/cn displayName givenName surname/sn uid uidNumber gidNumber sambaSID homedirectory loginShell Descricao DN da m quina. a Nome da m quina. a Nome de exibicao da m quina. a Nome da m quina. a Nome da m quina. a Nome da m quina seguido do caracter $. a N mero de identicacao da m quina. u a N mero do grupo prim rio ao qual a m quina pertence. u a a Identicador de seguranca no domnio. Diret rio de documentos. o Shell de login.
Tabela 7: Atributos dos Nomes de M quina. a Observa-se que os logins de m quina (uid) s o formados pelo nome da m quina seguido a a a do caracter $. Essa forma de representacao e a mesma utilizada no banco de usu rios local a em sistemas UNIX (arquivo /etc/passwd ). Por se tratar de uma conta de m quina, n o h a a a necessidade de um diret rio home e de um shell v lido, o que e explicitado pelos campos o a homedirectory:/dev/null e loginshell:/bin/false, respectivamente. Os grupos s o parte importante da conguracao do diret rio visto que permitem gaa o rantir ou restringir o nvel de acesso dos usu rios a determinadas funcionalidades dentro a do domnio. Como exemplo, o grupo Domain Admins dene quais usu rios t m poderes a e administrativos no domnio. O Samba associa os grupos do LDAP com grupos do tipo Windows/NT. Essa funcionalidade permite que as m quinas clientes Windows reconhecam os grupos do domnio Samba a da mesma forma que fazem em um domnio Windows/NT. O mapeamento e feito automatica mente para os grupos essenciais de um domnio Windows (Domain Admins, Domain Users e Domain Guests). E necess rio, por m, que o valor do atributo gidNumber corresponda ao a e RID (Relative Identier) do grupo desejado. De forma similar a conguracao dos usu rios, a o atributo sambaSID deve ser da forma domainSID-gidNumber. A Tabela 8 apresenta os
4. Implementacao
34
RIDs correspondentes aos principais grupos de um domnio Windows/NT, conforme listado em (Jelmer R. Vernooij, 2010). Nome do Grupo Domain Admins Domain Users Domain Guests Domain Computers RID 512 513 514 515
Tabela 8: Relacao de Nomes de Grupo e RIDs O mapeamento dos grupos e vericado atrav s do comando net groupmap list. e # net groupmap list Domain Admins (S-1-5-21-1753017206-2808592884-3819274438-512) -> Domain Admins Domain Users (S-1-5-21-1753017206-2808592884-3819274438-513) -> Domain Users Domain Guests (S-1-5-21-1753017206-2808592884-3819274438-514) -> Domain Guests Domain Computers (S-1-5-21-1753017206-2808592884-3819274438-515) -> Domain Computers A Tabela 9 apresenta a descricao dos atributos relativos a denicao de um grupo no diret rio. o Atributo commonName/cn entrydn gidNumber sambaSID sambaGroupType uniqueMember Descricao Nome do grupo DN do grupo N mero de identicacao do grupo u Identicador de seguranca no domnio Tipo do grupo DNs dos usu rios membros do grupo a
Tabela 9: Atributos dos Grupos O atributo sambaGroupType deve ser denido com valor 4 para que os grupos sejam mapeados pelo Samba. Os DNs dos usu rios pertencentes ao grupo s o valores do atributo a a multivaloado uniqueMember. O Ap ndice F apresenta exemplos de dados em formato LDIF para usu rios, grupos e e a computadores.
4. Implementacao
35
Adicionar m quinas ao domnio e uma tarefa comumente restrita a Administradores do a Domnio. E preciso, portanto, atribuir esse privil gio ao grupo Domain Admins atrav s do e e comando net. Essa e outras opcoes de permiss o s o abordadas no Ap ndice G. a a e
4.1.4
Os servicos de NSS e PAM s o necess rios para habilitar a autenticacao de usu rios e a a a grupos do diret rio LDAP. A instalacao e conguracao dos m dulos nss ldap e pam ldap e o o descrita no Ap ndice H. e O NSS precisa ser congurado de forma que a busca por usu rios e grupos seja feita a no diret rio LDAP, o que e obtido editando-se o arquivo /etc/nsswitch.conf. E necess rio o a indicar, em ordem, as bases de dados que ser o consultadas numa busca por nomes de a usu rios e grupos. A opcao les dene o arquivo de usu rios e senhas local do servidor a a (/etc/passwd), necess rio para que usu rios locais, como root, tenham acesso ao servidor. Se a a um usu rio/grupo n o for encontrado neste arquivo, a opcao ldap dene que um diret rio a a o LDAP deve ser consultado em seguida. A Tabela 10 aponta os itens que necessitam de alteracao. passwd: les ldap shadow: les ldap group: les ldap netgroup: les ldap automount: les ldap Tabela 10: Conguracao do Arquivo nsswitch.conf ` PAM e um conjunto de bibliotecas que permite as aplicacoes se comunicarem com o diret rio LDAP. A conguracao se faz selecionando-se os m dulos adequados que far o o o a ` ` com que o LDAP responda as solicitacoes do servidor Samba e resume-se a edicao de dois arquivos: /etc/ldap.conf e /etc/pam.d/system-auth. O arquivo system-auth especica os m dulos que ser o executados, em ordem, para o a cada gerenciador de servico, assim como a atitute a ser tomada (controle) em caso de falha ou sucesso de algum m dulo. Observando-se a primeira linha do arquivo exemplo o auth required /lib/security/$ISA/pam env.so auth e o servico, required o controle e /lib/security/$ISA/pam env.so o diret rio e nome do o m dulo. Os possveis tipos de controle s o, conforme (Fed, a): o a
4. Implementacao
36
required - Faz com que a operacao falhe caso o m dulo retorne um status que seja o diferente de sucesso, por m apenas ap s os m dulos seguintes serem executados. Essa e o o e uma medida de seguranca que visa impedir determinar qual m dulo causou a falha. o requisite - Faz com que a operacao falhe imediatamente caso um m dulo falhe, sem o invocar os demais m dulos. o sufcient - Se um m dulo listado como sufcient retornar sucesso, os m dulos sufo o cient subsequentes n o s o invocados. Em caso de falha, a operacao falha a n o ser a a a que um m dulo invocado posteriormente retorne sucesso. o optional - Far com que a operacao falhe caso o m dulo retorne falha apenas se for o a o unico m dulo listado. o
O Linux considera que UIDs e GIDs iniciam em 500. Caso exista algum usu rio no a LDAP com uid inferior a 500, e preciso alterar a linha auth requisite pam succeed if.so uid >= 500 quiet para auth requisite pam succeed if.so uid >= 100 quiet success sendo que 100 representa o menor uid de usu rio no diret rio LDAP. a o A linha account sufcient pam succeed if.so uid < 500 quiet deve ser alterada para account sufcient pam succeed if.so uid >= 100 quiet success A diretiva quiet success faz com que apenas os erros sejam registrados no arquivo de log /var/log/secure e os sucessos sejam ignorados. E uma opcao otimizada uma vez que debug n o seja mais necess rio. a a Algumas literaturas como (Morimoto, 2006) e (Fed, b) sugerem campos adicionais para o arquivo ldap.conf. Atrav s de testes, vericou-se que tais campos s o desnecess rios e sue a a gerem duplicidade de informacao, uma vez que o Samba oferece par metros de conguracao a que realizam a mesma funcao. A tabela 11 mostra a os campos de conguracao omitidos no arquivo ldap.conf equivalentes no arquivo smb.conf.
4. Implementacao
37 ldap.conf bind dn nss base passwd nss base shadow nss base group nss base host smb.conf ldap admin dn ldap user sufx ldap user sufx ldap group sufx ldap machine sufx
4.2
Esta secao apresenta um passo a passo para a insercao das m quinas clientes no domnio. a Considera-se aqui a utilizacao de um script para cadastro autom tico do nome da m quina a a no LDAP, disponvel no Anexo E. Dois tipos de usu rios s o necess rios no processo: a a a Administrador Local: Usu rio cadastrado na m quina cliente com privil gios admia a e nistrativos. Administrador do Domnio: Usu rio cadastrado no LDAP pertencente ao grupo Do a main Admins.
4.2.1
Clientes Windows
e O cadastro de uma m quina Windows em um domnio Samba e id ntico para um domnio a Windows/NT. O processo resume-se em: 1. Loga-se como administrador local da m quina; a 2. Altera-se o nome da m quina, caso seja necess rio; a a 3. Insere-se o nome do domnio no campo apropriado; 4. Valida-se as modicacoes com as credenciais de um administrador do domnio; 5. Reinicia-se a m quina para aplicar as conguracoes. a O passo a passo detalhado e descrito no Ap ndice I. e
4. Implementacao
38
4.2.2
Clientes Linux
Nos clientes Linux, a integracao com o domnio e feita atrav s do Samba, NSS e PAM. O e Samba registra as informacoes como nome do domnio, nome da m quina cliente e nome/IP a do servidor. As conguracoes de NSS no cliente seguem o mesmo prop sito das realizadas o no servidor: fazer com que o diret rio LDAP seja a base da busca por nomes de usu rios. o a O PAM e necess rio para que o sistema de autenticacao do cliente (tela de login) permita o a acesso dos usu rios do LDAP. a O processo consiste em: 1. Instalar os pacotes do Samba, NSS e PAM; 2. Congurar o arquivo /etc/samba/smb.conf ; 3. Modicar o arquivo /etc/nsswitch.conf ; 4. Congurar os arquivos do PAM, /etc/pam.d/common-account, /etc/pam.d/commonauth e /etc/pam.d/common-password ; 5. Congurar o arquivo /etc/ldap/ldap.conf 6. Inserir a m quina no domnio atrav s de linha de comando; a e O Ap ndice J apresenta detalhes do procedimento. e
4.3
Seguranca
E essencial garantir que os dados trafeguem na rede de maneira segura. Al m de mecae nismos de encriptacao de senhas, outras solucoes se fazem necess rias para reduzir falhas de a seguranca na rede. O 389 Directory Server pode operar sob protocolos de seguranca SSL/TLS. Isso per mite que a comunicacao entre o servidor LDAP e outra m quina, como o servidor de correio a eletr nico, ocorra de forma encriptada, atrav s de chaves de seguranca. Esse recurso, conheo e cido como tunelamento, impossibilita a interceptacao de dados por um usu rio da rede. a O processo para habilitar uma conex o segura entre o servidor LDAP e servicos que a acessam o diret rio compreende as seguintes etapas, conforme descrito em (Red, 2011): o
4. Implementacao
39
1. Gerar uma solicitacao de certicado e encaminh -lo a Autoridade Certicadora (CA2 ) a ` 2. Instalar o certicado assinado pela CA 3. Habilitar SSL/TLS no Directory Server, Administration Server e Console Management 4. Criar um arquivo PIN (Password File)
A criptograa utilizada nos campos sambaNTPassword e sambaLMPassword permite a descriptograa das senhas. Em outras palavras, a senha original pode ser obtida a partir da senha encriptada, o que torna necess rio restringir o acesso desses campos a usu rios esa a peccos. Isso e possvel por meio de ACIs3 , aplicadas ao diret rio. Esse e outros exemplos o de controle de acesso s o documentados em (Red, 2011). a
2 Certicate 3 Access
40
Resultados
A Figura 10 ilustra a arvore do diret rio LDAP vista pela interface do 389 Management o Console, na qual e possvel observar as Unidades Organizacionais People, Groups e Compu ters, al m da entrada que dene o domnio UFES2.BR. As entradas Directory Administrators e e Special Users s o criadas automaticamente durante a instalacao do diret rio. a o
Figura 10: Visualizacao da Arvore do Diret rio LDAP pelo 389 Management Console o A ger ncia do diret rio pode ser realizada remotamente por meio do 389 Management e o Console, atrav s do qual e possvel editar diretamente os valores dos atributos, como mostra e a Figura 11. Quando um usu rio efetua login em uma m quina cliente, o Samba realiza diversas a a consultas no diret rio LDAP. Toda consulta e composta por tr s par metros: o e a Base de busca: Dene a partir de qual n da arvore a busca ser realizada. o a Escopo: Indica se a busca estende-se ao n da base, aos lhos do n , ou ao n e lhos. o o o
5. Resultados
41
Figura 11: Visualizacao de Atributos de um Usu rio pelo 389 Management Console a Filtro: Quesitos que devem ser atendidos pelas entradas retornadas pela busca.
A Tabela 12 apresenta fragmentos de log que registram a busca por um usu rio do a domnio. Conex o do usu rio administrador ao diret rio: a a o BIND dn=cn=Directory Manager method=128 version=3 Busca pelo usu rio carlos.patrocinio: a SRCH base=dc=ufes2,dc=br scope=2 lter=(&(uid=carlos.patrocinio)(objectClass=sambaSamAccount)) Busca pelo domnio UFES2.BR: SRCH base=sambaDomainName=UFES2.BR,dc=ufes2,dc=br scope=0 lter=(objectClass=*) Tabela 12: Fragmentos de Log de uma Consulta ao Diret rio LDAP o O cliente e servidor Samba trocam pacotes de dados que incluem informacoes como nome e sistema operacional da m quina, usu rios e grupos, arquivos e nveis de permiss o a a a associados a estes, como e possvel vericar na Tabela 13. Ap s a insercao do cliente Windows no domnio, este se comporta como em uma rede o Windows, com total integracao com as informacoes do LDAP. O nome completo do usu rio, a por exemplo, e obtido do atributo displayName do usu rio, como pode ser visto na Figura 12. a M quinas Windows diferem usu rios comuns de usu rios administradores atrav s de a a a e
5. Resultados
42
Informacoes do sistema operacional do cliente: smbd/sesssetup.c:reply sesssetup and X spnego(1069) NativeOS=[Windows 2002 Service Pack 3 2600] NativeLanMan=[Windows 2002 5.1] PrimaryDomain=[] Processo de autenticacao do usu rio: a auth/auth.c:check ntlm password(224) check ntlm password: mapped user is: [UFES2.BR]\[carlos.patrocinio]@[WINXP] Informacoes do usu rio: a smbd/password.c:register vuid(304) User name: carlos.patrocinio Real name: Carlos Henrique dos S Silva Patrocinio Vericacao dos privil gios de grupo de domnio: e lib/privileges.c:get privileges(261) get privileges: No privileges assigned to SID [S-1-5-21-1753017206-2808592884-3819274438-513] Permiss es de um usu rio associadas a um arquivo: o a smbd/open.c:open le(391) carlos.patrocinio opened le carlos.patrocinio/prf1D.tmp read=Yes write=No (numopen=1) Compartilhamentos de rede: param/loadparm.c:lp add home(2691) adding homes share [carlos.patrocinio] for user carlos.patrocinio at /home/carlos.patrocinio Associacao entre gid e sambaSID: passdb/lookup sid.c:store gid sid cache(1151) store gid sid cache: gid 513 in cache -> S-1-5-21-1753017206-2808592884-3819274438-513 Tabela 13: Registros de Log do Samba grupos locais. Um usu rio com privil gios administrativos e cadastrado no grupo local Ada e ministradores. Visto que em um domnio usu rios administradores s o integrantes do grupo a a Domain Admins, o cliente associa este grupo como administrador local da m quina, isto a e, inclui o grupo Domain Admins como membro do grupo local Administradores. Da mesma forma, o grupo Domain Users e adicionado ao grupo local Usu rios. a Os diret rios de compartilhamento de rede do servidor s o acessados sem que o cliente o a necessite autenticar-se novamente, seguindo o princpio de Single Sign-On. Os clientes po dem visualizar os computadores e recursos que estes disponibilizam na rede uma vez que o servidor Samba atua como Domain Master Browser. No cliente Linux, o mesmo nvel de integracao e observado. A Figura 17 exibe o nome
5. Resultados
43
Figura 12: Exibicao do Nome do Usu rio no Menu Iniciar do Windows a completo do usu rio e o shell criado, ambas informacoes obtidas da base de dados LDAP. a
5. Resultados
44
Figura 14: Grupo Domain Users Integra o Grupo Local Usu rios a
5. Resultados
45
5. Resultados
46
47
Um diret rio LDAP se mostra ecaz como uma base de dados para autenticacao de o usu rios, al m de ser congur vel para diferentes exig ncias de implementacao. A aplicacao a e a e do modelo atributo:valor permite f cil administracao e integracao com diferentes servicos a e plataformas. A sute de programas Samba associada ao diret rio LDAP resulta em um Controlador o de Domnio robusto, de simples gerenciamento e baixo custo operacional. A integracao das m quinas clientes com o diret rio vai al m do mecanismo de autenticacao, oferecendo a o e dados complementares dos usu rios e recursos como troca de senha. Um servidor baseado a nessa solucao e, portanto, uma opcao adequada para uma rede de computadores composta por m quinas com diferentes sistemas operacionais. a Como trabalho futuro, uma funcionalidade de seguranca importante para a rede e a restricao de acesso a determinadas m quinas a apenas um conjunto de usu rios. Uma solucao a a seria associar as permiss es de acesso aos grupos do diret rio, o que pode ser feito congurano o a do-se os m dulos de acesso do PAM (pam access) nas m quinas clientes. Outra possvel o solucao seria utilizar o atributo sambaUserWorkstations do schema do Samba, que permite denir em quais m quinas o usu rio est autorizado a fazer login. Para uma lista grande de a a a m quinas, por m, este recurso torna-se inadequado. a e
48
49
A m de permitir que as m quinas virtuais se comuniquem, e necess rio mapear enderecos a a IP para nomes de host em cada estacao. As conguracoes s o apresentadas abaixo: a # M quina Servidor dominio1 a # Arquivo /etc/hosts 127.0.0.1 dominio1.ufes2.br dominio1 localhost.localdomain localhost 192.168.93.133 dominio1.ufes2.br dominio1
# M quina Cliente winxp a # Arquivo C:\WINDOWS\system32\drivers\etc\hosts 127.0.0.1 localhost 192.168.93.133 dominio1.ufes2.br # M quina Cliente vm-ubuntu a # Arquivo /etc/hosts 127.0.0.1 localhost 127.0.0.1 vm-ubuntu 192.168.93.133 dominio1 dominio1.ufes2.br Realizadas as alteracoes, pode-se testar a comunicacao entre as m quina atrav s do co a e mando ping.
50
Antes do incio da instalacao, e preciso adicionar a lista de reposit rios EPEL (Extra o Packages for Enterprise Linux). Os links do pacote de reposit rios e chave do desenvolveo dor podem variar conforme atualizacoes do pacote sejam lancadas. No promt de comando, executa-se: # rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86 64/epel-release-54.noarch.rpm S o criados dois arquivos de conguracao de reposit rios no diret rio /etc/yum.repos.d/ : a o o epel.repo epel-testing.repo Atualiza-se a lista de reposit rios: o # yum install foo Importa-se a chave do desenvolvedor: # rpm import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL Inicia-se a instalacao: # yum install 389-ds O processo de instalacao padr o cria o diret rio /etc/dirsrv, na qual s o armazenados os a o a arquivos de conguracao e schemas padr o, necess rios ao funcionamento do diret rio. a a o Ap s a instalacao dos pacotes, executa-se o m dulo de conguracao: o o
51
# /usr/sbin/setup-ds-admin.pl Ap s as informacoes iniciais e contrato de licenca, seleciona-se a opcao de instalacao o tpica (opcao 2): Selecionar modo de instalacao tpico (opcao 2): Choose a setup type:
1. Express Allows you to quickly set up the servers using the most common options and pre-dened defaults. Useful for quick evaluation of the products.
3. Custom Allows you to specify more advanced options. This is recommended for experienced server administrators only.
52
Enter the fully qualied domain name of the computer on which youre setting up server software. Using the form <hostname>.<domainname> Example: eros.example.com.
Dene-se o usu rio e grupo sob o qual o servico ser executado; padr o = nobody: a a a The servers must run as a specic user in a specic group. It is strongly recommended that this user should have no privileges on the computer (i.e. a non-root user). The setup procedure will give this user/group some permissions in specic paths/les to perform server-specic operations.
If you have not yet created a user and group for the servers, create this user and group using your native operating system utilities.
Uma vez que n o existe um servidor de conguracao de diret rios na rede, responde-se a o n o a pergunta seguinte para cri -lo: a a
53
Server information is stored in the conguration directory server. This information is used by the console and administration server to congure and manage your servers. If you have already set up a conguration directory server, you should register any servers you set up or create with the conguration server. To do so, the following information about the conguration server is required: the fully qualied host name of the form <hostname>.<domainname>(e.g. hostname.example.com), the port number (default 389), the sufx, the DN and password of a user having permission to write the conguration information, usually the conguration directory administrator, and if you are using security (TLS/SSL). If you are using TLS/SSL, specify the TLS/SSL (LDAPS) port number (default 636) instead of the regular LDAP port number, and provide the CA certicate (in PEM/ASCII format).
If you do not yet have a conguration directory server, enter No to be prompted to set up one.
Do you want to register this software with an existing conguration directory server? [no]:
54
Please enter the administrator ID for the conguration directory server. This is the ID typically used to log in to the console. You will also be prompted for the password.
Dene-se o domnio administrativo; neste exemplo, ufes2.br: The information stored in the conguration directory server can be separated into different Administration Domains. If you are managing multiple software releases at the same time, or managing information about multiple domains, you may use the Administration Domain to keep them separate.
If you are not using administrative domains, press Enter to select the default. Otherwise, enter some descriptive, unique name for the administration domain, such as the name of the organization responsible for managing the domain.
55
The standard directory server network port number is 389. However, if you are not logged as the superuser, or port 389 is in use, the default value will be a random unused port number greater than 1024. If you want to use port 389, make sure that you are logged in as the superuser, that port 389 is not in use.
Dene-se o nome da inst ncia do servico; neste exemplo, dominio1: a Each instance of a directory server requires a unique identier. This identier is used to name the various instance specic les and directories in the le system, as well as for other uses as a server instance identier.
Dene-se o suxo da arvore LDAP; neste exemplo, ufes2.br: The sufx is the root of your directory tree. The sufx must be a valid DN. It is recommended that you use the dc=domaincomponent sufx convention. For example, if your domain is example.com, you should use dc=example,dc=com for your sufx. Setup will create this initial sufx for you, but you may have more than one sufx. Use the directory server utilities to create additional sufxes.
56
Certain directory server operations require an administrative user. This user is referred to as the Directory Manager and typically has a bind Distinguished Name (DN) of cn=Directory Manager. You will also be prompted for the password for this user. The password must be at least 8 characters long, and contain no spaces. Press Control-B or type the word back, then Enter to back up and start over.
Dene-se a porta para o servidor administrativo; padr o = 9830: a The Administration Server is separate from any of your web or application servers since it listens to a different port and access to it is restricted.
Pick a port number between 1024 and 65535 to run your Administration Server on. You should NOT use a port number which you plan to run a web or application server on, rather, select a number which you will remember and which will not be used for anything else.
57
The interactive phase is complete. The script will now set up your servers. Enter No or go Back if you want to change something.
Are you ready to set up your servers? [yes]: Creating directory server . . . Your new DS instance ldap1 was successfully created. Creating the conguration directory server . . . Beginning Admin Server creation . . . Creating Admin Server les and directories . . . Updating adm.conf . . . Updating admpw . . . Registering admin server with the conguration directory server . . . Updating adm.conf with information from conguration directory server . . . Updating the conguration for the httpd engine . . . Starting admin server . . . output: httpd.worker: Could not reliably determine the servers fully qualied domain name, using 127.0.0.1 for ServerName The admin server was successfully started. Admin server was successfully created, congured, and started. Exiting . . . Log le is /tmp/setup4HVwgM.log
Ap s a instalacao, e necess rio adicionar o schema 61samba.ldif. o a O schema deve ser copiado para a pasta /etc/dirsrv/slapd-<inst ncia ldap>/schema. Para a validar o schema, reinicia-se o servico do diret rio: o # service dirsrv restart Por padr o, o diret rio permite buscas sem autenticacao (bind an nimo), por m, limita a a o o e pesquisa a 2000 entradas, exceto para o cn=Directory Manager; Em uma base de dados com mais de 2000 entradas, s o necess rias as seguintes alteracoes: a a
58
Entrada: cn=cong Atributo: nsslapd-sizelimit Modica-se o valor para -1 para retirar o limite
Entrada: cn=cong,cn=ldbm database,cn=plugins,cn=cong Atributo: nsslapd-lookthroughlimit Modica-se para um valor acima do n mero de entradas no diret rio u o
59
A instalacao do Samba depende de um unico pacote: yum install samba O processo de instalacao cria o diret rio /etc/samba onde s o armazenados os arquivos o a de conguracao e /var/log/samba, no qual s o salvos os logs. a Congura-se o arquivo /etc/samba/smb.conf conforme o exemplo.
[global]
log file = /var/log/samba/%m.log max log size = 1000 debug level = 3 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
domain master = Yes preferred master = Yes local master = Yes domain logons = Yes logon script = netlogon.bat
60
security = user encrypt passwords = Yes os level = 100 passdb backend = ldapsam:ldap://127.0.0.1 ldap admin dn = "cn=Directory Manager" ldap suffix = dc=ufes2,dc=br ldap user suffix = ou=People ldap machine suffix = ou=Computers ldap group suffix = ou=Groups ldap idmap suffix = ou=Idmap ldap passwd sync = Yes #Requer SSL/TLS entre servidor e cliente add machine script = /etc/samba/scripts/addMachine.pl %u
[netlogon]
[profiles]
path = /var/lib/samba/profiles read only = no create mask = 0600 directory mask = 0700
[homes]
61
Alterado o arquivo smb.conf, testa-se a conguracao atrav s do comando testparm. A e mensagem Server role:ROLE DOMAIN PDC conrma a conguracao do servidor como controlador prim rio de domnio. a $ testparm Load smb cong les from /etc/samba/smb.conf Processing section [netlogon] Processing section [proles] Processing section [homes] Loaded services le OK. Server role: ROLE DOMAIN PDC
A senha do administrador do diret rio, especicado no campo ldap admin dn na secao o global, deve ser inserida no banco de dados do Samba com o comando smbpasswd -w palavra-passe. # smbpasswd -w SENHA Setting stored password for cn=Directory Manager in secrets.tdb Para reiniciar o Samba e aplicar as conguracoes, executa-se: # service smbd restart
62
Os compartilhamentos s o opcionais, dependendo da conguracao desejada. Este Ap ndice a e apresenta os passos de conguracao dos diret rios relacionados aos compartilhamentos ne o tlogon, proles e homes. Os diret rios especicados no campo path dos compartilhamentos netlogon e proles o devem ser criados sicamente no servidor: # mkdir /var/lib/samba/netlogon # mkdir /var/lib/samba/proles Criados os diret rios, as permiss es de seguranca das pastas devem ser modicadas para o o garantir o acesso dos usu rios: a # chmod 0755 /var/lib/samba/netlogon # chmod 1755 /var/lib/samba/proles Para o compartilhamento homes, deve-se criar uma pasta para cada usu rio no diret rio a o /home do servidor. O mesmo deve ser feito no diret rio especicado no campo path do o compartilhamento proles. Deve-se garantir permiss o de leitura e escrita para o usu rio a a propriet rio da pasta e restringir o acesso para os demais usu rios. Este processo pode ser a a automatizado por meio de um script. O exemplo abaixo apresenta um shell script que cria uma pasta com o nome do usu rio dentro dos compartilhamentos de rede proles e homes, a especicados no arquivo smb.conf, e modica adequadamente as permiss es de acesso. O o arquivo deve ser salvo dentro do diret rio denido no campo path do compartilhamento o netlogon. O nome do arquivo e especicado no par metro logon script, na secao [global]. a
63
#!/bin/sh #Logon script #Cria as pastas do usuario: mkdir /home/$1 mkdir /var/lib/samba/proles/$1 #Altera o proprietario das pastas chown $1:root /home/$1 chown $1:root /var/lib/samba/proles/$1 #Modica o nivel de permissao das pastas chmod 700 /home/$1 chmod 700 /var/lib/samba/proles/$1
64
APENDICE E -- addMachine.pl
Exemplo de script em PERL que adiciona as m quinas ao n ou=computers,dc=ufes2,dc=br a o e ao grupo cn=domain computers,ou=groups,dc=ufes2,dc=br do LDAP. O diret rio e nome o do script deve ser especicado no par metro add machine script na secao [global] do arquivo a smb.conf.
# Conexao com o LDAP $ldap = Net::LDAP->new ("dominio1.ufes2.br") or die "$@"; #abre a sessao com ldap $mesg = $ldap->bind(cn=Directory Manager, password => swordfish);
filter => (uidnumber=*),# Requisitos dos objetos a serem retornados attrs => [1.1] # Atributos a serem retornados (1.1 retorna somente dn) );
Apendice E -- addMachine.pl.
65
$entry = Net::LDAP::Entry->new; $entry->dn($dn); $entry->add( "objectclass" => [ qw(top person organizationalPerson inetorgperson posixAccount sambaSamAccount)], "givenname" => $machineName, "sn" => $machineName, "cn" => $machineName, "uidnumber" => $uidNumber, "gidnumber" => $gidNumber, "sambasid" => "$domainSid\-$uidNumber", "homeDirectory" => "\/dev\/null", "loginShell" => "\/bin/false" );
$entry->update($ldap);
$mesg = $ldap->unbind;
66
dn: uid=carlos.patrocinio,ou=people,dc=ufes2,dc=br eduPersonOrgDN: dc=ufes2,dc=br eduPersonPrincipalName: [email protected] mailMessageStore: ufes2.br/carlos.patrocinio/ mail: [email protected] uid: carlos.patrocinio eduPersonNickName: Carlos objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: eduPerson objectClass: posixAccount objectClass: top objectClass: mailRecipient objectClass: mailGroup objectClass: brPerson objectClass: sambaSamAccount objectClass: ufesAccount uidNumber: 10003 sn: Patrocinio employeeNumber: 2005100953 gidNumber: 513 gecos: Carlos Henrique dos S Silva Patrocinio telephoneNumber: 00000000
67
mailRoutingAddress: [email protected] mailAlternateAddress: [email protected] mailAlternateAddress: [email protected] postalCode: 29090700 eduPersonOrgUnitDN: ou=people,dc=ufes2,dc=br mailHost: email1.ufes.br cn: Carlos Herique dos S. S. Patrocinio ou: people homePhone: 33333333 mobile: 99999999 homeDirectory: /home/carlos.patrocinio givenName: Carlos displayName: Carlos Henrique dos S Silva Patrocinio o: Universidade Federal do Esprito Santo eduPersonScopedAffiliation: [email protected] eduPersonPrimaryOrgUnitDN: ou=people,dc=ufes2,dc=br eduPersonAffiliation: 4 loginShell: /bin/bash userPassword: {SSHA}LSEFUjqOFjwbvLbg643DrntVJ4uBITck7t80sQ== nsaccountlock: false passwordgraceusertime: 0 brPersonCPF: 01260560625 mailForwardingAddress: [email protected] sambaSID: S-1-5-21-1753017206-2808592884-3819274438-10003 sambaNTPassword: 2862D7FDDF606D1B7FB8848D3EC2F35D postalAddress: Endereco do usurio a st: ES l: Vitoria
dn: cn=Domain Admins,ou=Groups,dc=ufes2,dc=br sambaSID: S-1-5-21-1753017206-2808592884-3819274438-512 gidNumber: 512 sambaGroupType: 4 description: Administradores do dominio objectClass: top
68
objectClass: groupofuniquenames objectClass: posixgroup objectClass: sambagroupmapping cn: Domain Admins uniqueMember: uid=carlos.patrocinio,ou=People,dc=ufes2,dc=br
dn: uid=winxp$,ou=Computers,dc=ufes2,dc=br objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetorgperson objectClass: posixAccount objectClass: sambaSamAccount givenName: winxp sn: winxp cn: winxp uidNumber: 9001 gidNumber: 515 sambaSID: S-1-5-21-1753017206-2808592884-3819274438-9001 homeDirectory: /home/winxp$ uid: winxp$ sambaAcctFlags: [UW ]
69
O comando net oferece a possibilidade de atribuir ou revogar privil gios a usu rios e grupos. As e a opcoes s o descritas na Tabela 14: a
Privil gio e SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege
Descricao Adicionar m quinas ao domnio a Tornar-se dono de arquivos ou outros objetos Back up de arquivos e diret rios o Restaurar arquivos e diret rios o Forcar desligamento remotamente Gerenciar impressoras Adicionar usu rios e grupos ao domnio a Gerenciar compartilhamentos de disco
70
Primeiramente e necess ria a instalacao dos pacotes nss ldap e pam ldap: a # yum install nss ldap # yum install pam ldap O CentOS disp e de uma ferramenta para a conguracao do NSS e PAM: authcong. O coo mando a seguir realiza as modicacoes necess rias nos arquivos /etc/ldap.conf, /etc/nsswitch.conf e a /etc/pam.d/system-auth, por m podem ser necess rios ajustes manuais, conforme descrito em (Zim, ) e a e (Fed, a). $authcong enableldap enableldapauth disablenis enablecache \ ldapserver=dominio1.ufes2.br ldapbasedn=dc=ufes2,dc=br \ updateall Os arquivos abaixo apresentam o resultado nal das alteracoes. #Arquivo /etc/nsswitch.conf passwd: les ldap shadow: les ldap group: les ldap netgroup: les ldap automount: les ldap
71
#Arquivo /etc/pam.d/system-auth auth required pam env.so auth sufcient pam unix.so nullok try rst pass auth requisite pam succeed if.so uid >= 500 quiet auth sufcient pam ldap.so use rst pass auth required pam deny.so account required pam unix.so broken shadow account sufcient pam succeed if.so uid <500 quiet account [default=bad success=ok user unknown=ignore] pam ldap.so account required pam permit.so password requisite pam cracklib.so try rst pass retry=3 password sufcient pam unix.so md5 shadow nullok try rst pass use auth$ password sufcient pam ldap.so use authtok password required pam deny.so #Arquivo /etc/ldap.conf ssl no pam password md5 uri ldap://dominio1.ufes2.br base dc=ufes2,dc=br Para habilitar a conex o segura via SSL/TLS entre o servidor e demais m quinas, e preciso a a ajustar o arquivo /etc/ldap.conf com as seguintes opcoes: # /etc/ldap.conf ssl on ssl start tls tls cacertdir /etc/ssl/certs Os certicados digitais devem ser salvos no diret rio especicado no campo tls cacertdir. o Realizadas as conguracoes de NSS e PAM, o resultado pode ser vericado atrav s do comando e getent. O comando
72
getent passwd deve exibir a lista de usu rios do diret rio LDAP. a o O comando getent group deve exibir a lista de grupos.
73
Os procedimentos descritos nesta secao referem-se ao Windows XP Professional. Considera-se o Painel de Controle no modo de exibicao cl ssico. a Primeiramente, loga-se com uma conta de administrador local da m quina. Em seguida, acessaa se Painel de Controle >Sistema >Aba Nome do Computador. Seleciona-se a opcao Alterar. Na janela que se abre, dene-se o nome da m quina e o nome do domnio. a
74
75
76
Os procedimentos descritos nesta secao referem-se a distribuicao Linux Ubuntu com interface Gnome. Primeiramente e necess rio instalar o m dulo libnss-ldap para que o NSS opere com o diret rio a o o LDAP do servidor. # apt-get install libnss-ldap Ap s a instalacao, inicia-se o utilit rio de conguracao do m dulo: o a o # dpkg-recongure libnss-ldap O processo de conguracao envolve informacoes relacionadas ao servidor LDAP, como:
Nome ou IP (dominio1.ufes2.br/192.168.93.133) Base de busca de usu rios e computadores (ufes2.br) a Vers o do protocolo LDAP (3) a Usu rio que realiza a busca no diret rio (cn=Directory Manager) a o
O arquivo /etc/nsswitch.conf deve ser alterado da mesma forma que no servidor (Deb, a): #Arquivo /etc/nsswitch.conf passwd: les ldap shadow: les ldap group: les ldap netgroup: les ldap
77
Ap s a conguracao do NSS, segue-se a instalacao do PAM: o # apt-get install libpam-ldap A conguracao do PAM atrav s do utilit rio de conguracao e an loga a do NSS, inserindo-se e a a as informacoes do servidor LDAP: # dpkg-recongure libpam-ldap A m de habilitar o login dos usu rios na interface gr ca do sistema, e necess rio alterar a a a os arquivos /etc/pam.d/common-account, /etc/pam.d/common-auth, /etc/pam.d/common-password e /etc/pam.d/common-session conforme os exemplos abaixo (Deb, b): # /etc/pam.d/common-account account required pam unix.so account sufcient pam succeed if.so uid <500 quiet account [default=bad success=ok user unknown=ignore] pam ldap.so account required pam permit.so # /etc/pam.d/common-auth auth sufcient pam unix.so nullok secure auth requisite pam succeed if.so uid >= 500 quiet auth sufcient pam ldap.so use rst pass auth required pam deny.so # /etc/pam.d/common-password password sufcient pam unix.so md5 try rst pass password sufcient pam ldap.so password required pam deny.so # /etc/pam.d/common-session session required pam limits.so session required pam unix.so session required pam ldap.so session required pam mkhomedir.so skel=/etc/skel umask=0022 Para habilitar a conex o segura via SSL/TLS entre cliente e servidor, e preciso ajustar o arquivo a /etc/ldap.conf : # /etc/ldap.conf ssl on ssl start tls tls cacertdir /etc/ssl/certs
78
O certicado da CA deve ser salvo no diret rio especicado no campo tls cacertdir. o O m dulo cliente do samba e utilizado para integrar o cliente ao domnio: o # apt-get install samba-client A conguracao resume-se a edicao do arquivo etc/samba/smb.conf, conforme abaixo:
#Arquivo smb.conf
[global]
netbios name = vm-ubuntu workgroup = ufes2.br security = domain encrypt passwords = true wins server = 192.168.93.133
Realizadas as conguracoes, a m quina e adicionada ao domnio utilizando-se o comando net: a # net rpc join member -U carlos.patrocinio%palavra-passe A mensagem Joined domain DOMINIO indica o sucesso da operacao.
79
ANEXO A -- 61samba.ldif
# ########################################################################## # dn: cn=schema # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.24 NAME sambaLMPassword DESC LanManager Password EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.25 NAME sambaNTPassword DESC MD4 hash of the unicode password EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE ) # ##########################################################################
Anexo A -- 61samba.ldif.
80
# attributeTypes: ( 1.3.6.1.4.1.7165.2.1.26 NAME sambaAcctFlags DESC Account Flags EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.27 NAME sambaPwdLastSet DESC Timestamp of the last password update EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.28 NAME sambaPwdCanChange DESC Timestamp of when the user is allowed to update the password EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.29 NAME sambaPwdMustChange
Anexo A -- 61samba.ldif.
81
DESC Timestamp of when the password will expire EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.30 NAME sambaLogonTime DESC Timestamp of last logon EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.31 NAME sambaLogoffTime DESC Timestamp of last logoff EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.32 NAME sambaKickoffTime DESC Timestamp of when the user will be logged off automatically EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE
Anexo A -- 61samba.ldif.
82
) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.48 NAME sambaBadPasswordCount DESC Bad password attempt count EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.49 NAME sambaBadPasswordTime DESC Time of the last bad password attempt EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.55 NAME sambaLogonHours DESC Logon Hours EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{42} SINGLE-VALUE ) # ########################################################################## #
Anexo A -- 61samba.ldif.
83
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.33 NAME sambaHomeDrive DESC Driver letter of home directory mapping EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{4} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.34 NAME sambaLogonScript DESC Logon script path EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.35 NAME sambaProfilePath DESC Roaming profile path EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.36 NAME sambaUserWorkstations DESC List of user workstations the user is allowed to logon to
Anexo A -- 61samba.ldif.
84
EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.37 NAME sambaHomePath DESC Home directory UNC path EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.38 NAME sambaDomainName DESC Windows NT domain to which the user belongs EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.47 NAME sambaMungedDial DESC Base64 encoded user parameter string EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{1050} ) # ########################################################################## #
Anexo A -- 61samba.ldif.
85
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.54 NAME sambaPasswordHistory DESC Concatenated MD5 hashes of the salted NT passwords used on this account EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.20 NAME sambaSID DESC Security ID EQUALITY caseIgnoreIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.23 NAME sambaPrimaryGroupSID DESC Primary Group Security ID EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.51 NAME sambaSIDList
Anexo A -- 61samba.ldif.
86
DESC Security ID List EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{64} ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.19 NAME sambaGroupType DESC NT Group Type EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.21 NAME sambaNextUserRid DESC Next NT rid to give our for users EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.22 NAME sambaNextGroupRid DESC Next NT rid to give out for groups EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
Anexo A -- 61samba.ldif.
87
# ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.39 NAME sambaNextRid DESC Next NT rid to give out for anything EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.40 NAME sambaAlgorithmicRidBase DESC Base at which the samba RID generation algorithm should operate EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.41 NAME sambaShareName DESC Share Name EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) # ########################################################################## # attributeTypes: (
Anexo A -- 61samba.ldif.
88
1.3.6.1.4.1.7165.2.1.42 NAME sambaOptionName DESC Option Name EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.43 NAME sambaBoolOption DESC A boolean option EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.44 NAME sambaIntegerOption DESC An integer option EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.45 NAME sambaStringOption DESC A string option EQUALITY caseExactIA5Match
Anexo A -- 61samba.ldif.
89
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.46 NAME sambaStringListOption DESC A string list option EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.53 NAME sambaTrustFlags DESC Trust Password Flags EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.58 NAME sambaMinPwdLength DESC Minimal password length (default: 5) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## #
Anexo A -- 61samba.ldif.
90
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.59 NAME sambaPwdHistoryLength DESC Length of Password History Entries (default: 0 => off) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.60 NAME sambaLogonToChgPwd DESC Force Users to logon for password change (default: 0 => off, 2 => on) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.61 NAME sambaMaxPwdAge DESC Maximum password age, in seconds (default: -1 => never expire passwords) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.62
Anexo A -- 61samba.ldif.
91
NAME sambaMinPwdAge DESC Minimum password age, in seconds (default: 0 => allow immediate password change) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.63 NAME sambaLockoutDuration DESC Lockout duration in minutes (default: 30, -1 => forever) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.64 NAME sambaLockoutObservationWindow DESC Reset time after lockout in minutes (default: 30) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.65 NAME sambaLockoutThreshold DESC Lockout users after bad logon attempts (default: 0 => off) EQUALITY integerMatch
Anexo A -- 61samba.ldif.
92
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.66 NAME sambaForceLogoff DESC Disconnect Users outside logon hours (default: -1 => off, 0 => on) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # attributeTypes: ( 1.3.6.1.4.1.7165.2.1.67 NAME sambaRefuseMachinePwdChange DESC Allow Machine Password changes (default: 0 => off) EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # ########################################################################## # objectClasses: ( 1.3.6.1.4.1.7165.2.2.6 NAME sambaSamAccount DESC Samba 3.0 Auxilary SAM Account SUP top AUXILIARY MUST ( uid $ sambaSID ) MAY ( cn $ sambaLMPassword $ sambaNTPassword $ sambaPwdLastSet $ sambaLogonTime $ sambaLogoffTime $ sambaKickoffTime $ sambaPwdCanChange
Anexo A -- 61samba.ldif.
93
$ sambaPwdMustChange $ sambaAcctFlags $ displayName $ sambaHomePath $ sambaHomeDrive $ sambaLogonScript $ sambaProfilePath $ description $ sambaUserWorkstations $ sambaPrimaryGroupSID $ sambaDomainName $ sambaMungedDial $ sambaBadPasswordCount $ sambaBadPasswordTime $ sambaPasswordHistory $ sambaLogonHours ) ) # ########################################################################## # objectClasses: ( 1.3.6.1.4.1.7165.2.2.4 NAME sambaGroupMapping DESC Samba Group Mapping SUP top AUXILIARY MUST ( gidNumber $ sambaSID $ sambaGroupType ) MAY ( displayName $ description $ sambaSIDList ) ) # ########################################################################## # objectClasses: ( 1.3.6.1.4.1.7165.2.2.14 NAME sambaTrustPassword DESC Samba Trust Password SUP top STRUCTURAL MUST ( sambaDomainName $ sambaNTPassword $ sambaTrustFlags ) MAY ( sambaSID $ sambaPwdLastSet ) ) # ########################################################################## # objectClasses: ( 1.3.6.1.4.1.7165.2.2.5 NAME sambaDomain DESC Samba Domain Information
Anexo A -- 61samba.ldif.
94
SUP top STRUCTURAL MUST ( sambaDomainName $ sambaSID ) MAY ( sambaNextRid $ sambaNextGroupRid $ sambaNextUserRid $ sambaAlgorithmicRidBase $ sambaMinPwdLength $ sambaPwdHistoryLength $ sambaLogonToChgPwd $ sambaMaxPwdAge $ sambaMinPwdAge $ sambaLockoutDuration $ sambaLockoutObservationWindow $ sambaLockoutThreshold $ sambaForceLogoff $ sambaRefuseMachinePwdChange ) ) # ######################################################################### # objectClasses: ( 1.3.6.1.4.1.7165.2.2.7 NAME sambaUnixIdPool DESC Pool for allocating UNIX uids/gids SUP top AUXILIARY MUST ( uidNumber $ gidNumber ) ) # ######################################################################### # objectClasses: ( 1.3.6.1.4.1.7165.2.2.8 NAME sambaIdmapEntry DESC Mapping from a SID to an ID SUP top AUXILIARY MUST ( sambaSID ) MAY ( uidNumber $ gidNumber ) ) # ######################################################################### # objectClasses: ( 1.3.6.1.4.1.7165.2.2.9
Anexo A -- 61samba.ldif.
95
NAME sambaSidEntry DESC Structural Class for a SID SUP top STRUCTURAL MUST ( sambaSID ) ) # ######################################################################### # objectClasses: ( 1.3.6.1.4.1.7165.2.2.10 NAME sambaConfig DESC Samba Configuration Section SUP top AUXILIARY MAY ( description ) ) # ######################################################################### # objectClasses: ( 1.3.6.1.4.1.7165.2.2.11 NAME sambaShare DESC Samba Share Section SUP top STRUCTURAL MUST ( sambaShareName ) MAY ( description ) ) # ######################################################################### # objectClasses: ( 1.3.6.1.4.1.7165.2.2.12 NAME sambaConfigOption DESC Samba Configuration Option SUP top
Anexo A -- 61samba.ldif.
96
STRUCTURAL MUST ( sambaOptionName ) MAY ( sambaBoolOption $ sambaIntegerOption $ sambaStringOption $ sambaStringListoption $ description ) ) # ########################################################################## #