|
O objetivo deste artigo não é ser um tutorial. Apenas estou tornando disponível os arquivos utilizados durante o treinamento e um roteiro rápido do que é abordado no curso. Aproveite.
Instalando os pacotes necessários
A primeira etapa de nosso treinamento é instalar o servdor OpenLDAP e os pacotes complementares para o funcionamento do Diretório. A seguir você verá os passos necessários para a distribuição Debian, utilizada durante o treinamento, e para o Fedora/RedHat.
O servidor OpenLDAP é capaz de funcionar corretamente instalando apenas os pacotes do servidor e do client, contudo, para podermos administrá-lo corretamente devemos instalar alguns pacotes complementares.
Instalação em Debian
# apt-get install slapd ldap-utils db4.2-util
No Fedora/RedHat utilizamos o yum como comando de instalação:
# yum -y install openldap-servers openldap-clients db4-utils
Configuração do servidor slapd
Aqui você vê a configuração inicial do servidor OpenLDAP que, no Debian, fica armazenada em /etc/ldap/slapd.conf. No Fedora/RedHat você encontrará este arquivo na pasta/etc/openldap.
# Versão de Protocolo para consultas ao LDAP allow bind_v2
# Schemas include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema
# Arquivos de controle dos processos pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args
# Módulos # No Fedora/RedHat você deve comentar # as duas linhas abaixo modulepath /usr/lib/ldap moduleload back_hdb
# Controle de acesso # acesso à estrutura básica do Diretório access to dn.exact="" by * read # Apenas o próprio usuário pode ver/alterar a senha access to attrs=userPassword by self write by anonymous auth by * none # Libera consulta a todos os outros dados de nossa base access to * by * read
# Definição do nível de log loglevel stats
# Base de dados database hdb
# Estrutura do diretório e administrador suffix "dc=empresa,dc=com,dc=br" rootdn "cn=Manager,dc=empresa,dc=com,dc=br" # A senha a seguir é tux e foi criada com o slappasswd rootpw {SSHA}hAJl1PZmY41M94c7TgqQF6ocIGziKsYH # Local de armazenamento dos dados directory /var/lib/ldap # índices de pesquisa index objectClass eq index cn,sn,mail eq,sub,approx index uid eq,sub
Criando os arquivos ldif iniciais
O exemplo de estrutura apresentada a seguir que será usada em nosso Diretório segue o modelo DNS utilizando a identificação DC (domain component).
dc=empresa,dc=com,dc=br |- ou=grupos | |- cn=grupo1 | `- cn=grupo2 `- ou=usuarios |- uid=claudia `- uid=marcos
Para implementarmos este modelo, vamos criar o arquivo ldif apresentadoa seguir com toda nossa estrutura.
# arquivo empresa.ldif # inicio da estrutura (DIT) dn: dc=empresa,dc=com,dc=br objectClass: top objectClass: dcObject objectClass: organization o: Empresa Ltda dc: empresa
#unidades dn: ou=usuarios,dc=empresa,dc=com,dc=br objectClass: top objectClass: organizationalUnit ou: usuarios
dn: ou=grupos,dc=empresa,dc=com,dc=br objectClass: top objectClass: organizationalUnit ou: grupos
# usuarios dn: uid=claudia,ou=usuarios,dc=empresa,dc=com,dc=br objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: claudia cn: Claudia Tomie sn: Tomie mail:
Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
userPassword: {SSHA}hAJl1PZmY41M94c7TgqQF6ocIGziKsYH
dn: uid=marcos,ou=usuarios,dc=empresa,dc=com,dc=br objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: marcos cn: Marcos Sungaila sn: Sungaila mail:
Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
userPassword: {SSHA}hAJl1PZmY41M94c7TgqQF6ocIGziKsYH
Agora os dados devem ser inseridos no Diretório. Vamos utilizar o comando ldapadd para isto:
# ldapadd -x -D cn=manager,dc=empresa,dc=com,dc=br -W -f empresa.ldif
O arquivo utilzado para inserir novos usuários para pesquisa pode ser baixado aqui.
Alterando dados de usuários
Para modificar os dados de usuários podemos criar os arquivos ldif somente com as informações a serem alteradas ou um arquivo completo com todos os dados existentes mais os dados novos. Os exercícios para modificar os dados da usuária Adriana e do usuário Glauco podem ser realizados com o ldif a seguir, sendo que vou marcar em negrito os dados que estão sendo moficados ou inseridos:
dn: uid=Adriana,ou=Usuarios,dc=empresa,dc=com,dc=br uid: Adriana cn: Adriana Ramos sn: Ramos objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson description: Secretaria
dn: uid=Glauco,ou=Usuarios,dc=empresa,dc=com,dc=br uid: Glauco cn: Glauco Bernini sn: Bernini objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson telephoneNumber: 2345-6789 mobile: 9876-5432
Aplique as mudanças com o comando ldapmodify como segue:
# ldapmodify -x -D cn=manager,dc=empresa,dc=com,dc=br -W -f mudancas.ldif
Alterando a quantidade de cache utilizado pelo OpenLDAP
O servidor OpenLDAP utiliza memória RAM como cache para acelerar o acesso às informações do Diretório. A quantidade de memória alocada como cache e alguns outros parâmetros poderm ser definidos em um arquivo chamado DB_CONFIG que fica na pasta /var/lib/ldap. Você pode criar este arquivo com o conteúdo a seguir:
# área de dados em memória (2Mb) set_cachesize 0 2097152 0
# Cache para nomes de arquivos set_lg_regionmax 1048576
# Define o tamanho máximo do log de transações set_lg_max 10485760
# Cache do log de transações em memória set_lg_bsize 2097152
Arquivos criados durante o treinamento
A apresentação utilizada durante o treinamento pode ser baixada aqui .
Durante o Mão na Massa criamos vários arquivos do tipo ldif e alteramos várias configurações. A seguir você tem todos os arquivos listados e pode baixá-los se quiser.
claudia.ldif - arquivo com os dados para a criação da usuária Cláudia no Diretório
common-account - arquivo de configuração do pam
common-auth - arquivo de configuração do pam
common-password - arquivo de configuração do pam
common-session - arquivo de configuração do pam
empresa.ldif - arquivo com os dados para a criação da estrutura inicial do Diretório (DIT)
ldap.conf.pag13 - configuração das ferramentas client do OpenLDAP
ldap.conf.pag36 - configuração das ferramentas client do OpenLDAP
marcos.ldif - arquivo com os dados para a criação do usuário Marcos no Diretório
modifica-adriana-glauco.ldif - ldif para alteração dos dados destes usuários
msungaila.ldif - dados para a criação de um usuário padrão posix no Diretório
nsswitch.conf - arquivo de configuração para pesquisa de informações pelo Linux
pesquisa.ldif - arquivo com usuários adicionais utilizados para os exercícios com o ldapsearch
rebuild.ldif - arquivo com toda a estrutura do Diretório para reconstrução da árvore
slapd.conf.pag6 - configuração do servidor
slapd.conf.pag7 - configuração do servidor
slapd.conf.pag21 - configuração do servidor
slapd.conf.pag24 - configuração do servidor
slapd.conf.pag35 - configuração do servidor
unidades.ldif - arquivos com os dados para a criação das OUs no Diretório
usuarios.ldif - arquivo com os dados para a criação de usuários no Diretório
Conclusão
Além destes tópicos, durante o treinamento Mão na Massa da Tempo Real Eventos abordamos ainda a autenticação dos usuários do Diretório diretamente no Linux e o uso de criptografia no servidor.
Até mais
Marcos Sungaila
|