| Introdução ao OpenLDAP |
|
|
|
| Escrito por cristhianbini |
| Sáb, 15 de Janeiro de 2011 01:43 |
|
Introdução ao OpenLDAP access to attrs=userPassword,shadowLastChange Cuidado com as ACL's de escrita no OpenLDAP. No caso acima, tanto o usuário sysadmin quanto o usuário admin tem acesso de escrita na base. Como testar a sintaxe do arquivo? Faça o teste de sintaxe do arquivo com o comando slaptest: # slaptest Uma dúvida muito comum de quem está iniciando em OpenLDAP é: Como migrar uma base local para uma base LDAP? Para isso, existe a ferramenta migrationtools, uma série de scripts em perl que podem auxiliar neste processo. Para instalar estes scripts, execute: # aptitude install migrationtools Este script possui algumas configurações padrão que precisam ser ajustadas, caso contrário, a migração pode ir por agua abaixo. Abra o arquivo /usr/share/migrate_common.ph e edite as linhas abaixo: $DEFAULT_MAIL_DOMAIN="seunome.com.br"; Após realizar esta configuração, precisamos gerar três arquivos, um contendo a raiz da arvore, outro contendo os grupos e o ultimo contendo os usuários: # cd /usr/share/migrationtools Após realizar este processo, abra o arquivo /etc/ldap/users.ldif. O mesmo deve apresentar várias entradas semelhantes a entrada abaixo. 1.3. O que é o LDIF? Este formado é o LDIF (LDAP Data Interchange Format), e é desta maneira que os dados devem ser incluidos no sistema LDAP quando não temos nenhuma ferramenta de administração. Cada sintaxe abaixo é definida por um atribto dentro de um “schema”. Este é um arquivo LDIF que define uma conta padrão Unix: dn: uid=root,ou=People,dc=seunome,dc=com,dc=br Agora vamos migrar a base de grupos do sistema e gerar a nossa base: # ./migrate_group.pl /etc/group /etc/ldap/groups.ldif Após gerar o arquivo base.ldif, remova as 9 primeiras linhas que definem o topo da arvore, pois eles já foram inclusos no OpenLDAP durante o comando “dpkgreconfigure slapd”. Após criar os arquivos, adicione primeiramente o arquivo base.ldif com o comando abaixo: # ldapadd -x -D cn=admin,dc=seunome,dc=com,dc=br -f /etc/ldap/base.ldif -W Faça o mesmo para o arquivo groups.ldif: # ldapadd -x -D cn=admin,dc=seunome,dc=com,dc=br -f /etc/ldap/groups.ldif -W E por último, faça o mesmo para arquivo users.ldif: # ldapadd -x -D cn=admin,dc=seu-nome,dc=com,dc=br -f /etc/ldap/users.ldif -W 1.4. Administração via linha de comando A suíte OpenLDAP possui alguns comandos para administração do servidor. Aprender a lidar com estes comandos é fundamental para qualquer administrador de redes. O primeiro comando que devemos aprender a utilizar é o comando ldapsearch, pois é com ele que iremos efetuar buscas dentro da nossa arvore. Para procurar o usuário aluno, execute: # ldapsearch -x -b dc=seunome,dc=com,dc=br uid=aluno O administrador pode buscar qualquer elemento dentro da arvore manipulando o parâmetro de busca. Experimente o seguinte comando: # ldapsearch -x -b dc=seunome,dc=com,dc=br uidNumber=1000 Outro comando importante é o ldapmodify. Com ele, é possível alterar, incluir ou remover praticamente qualquer campo da arvore de forma rápida, pratica e simples. Vamos alterar o campo loginShell do usuário aluno. Para isso, crie um ldif com o seguinte conteúdo: # vim /root/loginShell.ldif Agora, vamos alterar o parametro loginShell com o comando: # ldapmodify -x -D cn=admin,dc=seunome,dc=com,dc=br -f /root/loginShell -W 1.5. Operações de Backup Uma aula de OpenLDAP não estaria completa sem ao menos mencionar uma técnica de Backup/Restore de um servidor OpenLDAP. Iremos, nesta seção, aprender a usar duas ferramentas do próprio projeto OpenLDAP, a ferramenta slapcat, para realizar o backup, e a ferramenta slapadd, para realizar o restore. Para realizar o backup, simplesmente realize o seguinte comando: # slapcat –l /root/backup.ldif Gerando uma cópia de segurança: # cp /root/backup.ldif /root/backup_copia.ldif Para ter certeza que o seu backup é seguro, é importante realizá-lo em um periodo livre de gravações, ou com o servidor slapd desligado. Após realizar o backup, vamos remover desligar o servidor slapd e remover sua base de dados inteira: # ldapdelete -x -D cn=admin,dc=seunome,dc=com,dc=br -w secret -r dc=seunome,dc=com,dc=br Como podemos nos certificar que a base realmente foi removida? Para nos certificar-mos de que a base realmente foi removida, execute o comando slapcat novamente, mas tenha certeza de que você não está sobrescrevendo o seu backup: # slapcat E como restaurar a base usando o comando slapadd? Vamos restaurar a nossa base, utilzando o comando slapadd: # slapadd -l backup.ldif Note que a arvore continua com os elementos que descrevem a base LDAP. Abra o arquivo de backup e remova as linhas de 1 a 13. Execute o comando slapcat novamente, para termos certeza que o backup foi restaurado: # slapcat Atenção: Os comandos slapcat, slapadd, ldapsearch e ldapadd poderão cair na prova de certificação. Realize os backups de acordo com a política de sua empresa, e: Execute testes de RESTORE periodicamente! 1.6. Configurando a autenticação dos clientes Para que os nossos computadores possam autenticar-se como clientes LDAP, é necessário que modifiquemos uma série de arquivos do PAM e também é necessária a instalação de alguns pacotes. Instalando os pacotes necessários e configure-os: de acordo com o instrutor: #aptitude install libnss-ldap libpam-ldap Qual a função do arquivo nsswitch.conf ? O arquivo /etc/nsswitch.conf é o responsável por indicar aos programas e aplicativos aonde buscar o usuário e senha.
# vim /etc/nsswitch.conf Agora vamos configurar o arquivo /etc/libnss-ldap.conf # vim /etc/libnss-ldap.conf Agora vamos configurar o arquivo /etc/pam_ldap.conf #vim /etc/pam_ldap.conf Por último, iremos configurar o PAM para que ele busque os usuários na base LDAP. Atenção: Muito cuidado, faça cópia dos originais e mantenha mais dois terminais de root abertos. Configure o arquivo /etc/pam.d/common-auth # vim /etc/pam.d/common-auth Remova as opções existentes e acrescente estas: auth sufficient pam_ldap.so Configure também o arquivo /etc/pam.d/common-account: # vim /etc/pam.d/common-account Remova as opções existentes e acrescente estas: account sufficient pam_ldap.so Agora configure o arquivo /etc/pam.d/common-password # vim /etc/pam.d/common-password Remova as opções existentes e acrescente estas: password sufficientpam_unix.so nullok obscure min=4 max=8 md5 Edite também o arquivo /etc/pam.d/common-session: # vim /etc/pam.d/common-session Remova as opções existentes e acrescente estas: session sufficient pam_ldap.so A partir deste momento, qualquer usuário incluído no OpenLDAP estará apto a logar neste computador. Existe uma interface administrativa para o OpenLDAP para facilitar nossa vida de administrador? 1.7. Instalando uma interface administrativa Como vimos até aqui, administrar um servidor OpenLDAP “na unha” pode ser uma tarefa extremamente cansativa, dependendo o tamanho da sua estrutura. Para facilitar um pouco a nossa vida, iremos instalar uma ferramenta baseada em plataforma Web para realizar a administração do nosso servidor. Para isso, instale o pacote phpldaadmin junto com suas ferramentas: # aptitude install php-pear php5-ldap phpldapadmin Abra o seu browser e digite no campo URL: http://127.0.0.1/phpldapadmin/index.php Para efetuar login, utilize o formato do próprio LDAP para especificar usuários: cn=admin,dc=seunome,dc=com,dc=br Dica: Configure o https para que a senha do admin não trafegue em texto claro pela rede. Além disso, é interessante colocar o OpenLDAP para trabalhar com OpenSSL: http://www.bayour.com/LDAPv3-HOWTO.html#4.1.OpenSSL|outline 1.8. Autenticando o Squid na base de usuários LDAP Para completar a nossa aula, que tal realizar a configuração do squid para que ele fique integrado ao nosso servidor OpenLDAP. Para isso, abra o arquivo de configuração do squid que foi visto na aula já dada, e então configure-o: # vim /etc/squid/squid.conf |
| Última atualização em Sáb, 15 de Janeiro de 2011 01:58 |


