Escolar Documentos
Profissional Documentos
Cultura Documentos
3. Configurar ApacheDS editando conf/server.xml a. Na seco LDAP service configuration, configurar EndereoIP/porto do servidor, sem SSL, mantendo uma nica entrada na seco <transports> (eliminar outras entradas):
<transports> <tcpTransport address="0.0.0.0" port="60000" enableSSL="false" /> </transports>
b. As entradas (organizaes, pessoas, ) so armazenadas em parties. Cada partio contm uma rvore de entradas completa. Criar partio para a organizao seg (o=seg) no final da seco <partitions>:
<partitions> <jdbmPartition id="seg" suffix="o=seg"> </jdbmPartition> </partitions>
Obs: O ApacheDS cria automaticamente um utilizador especial (uid=admin,ou=system) com o qual se pode administrar o directrio que possui as seguintes credenciais (por omisso): DN: uid=admin, ou=system Password: secret Mais informao sobre a criao de uma partio pode ser encontrada em: http://directory.apache.org/apacheds/1.5/143-adding-your-own-partition-resp-suffix.html
O ApacheDS dever ficar em execuo na consola. Esta consola s serve para o ApacheDS escrever mensagens de aviso ou de erro. Nota: O ApacheDS no recebe comandos.
FCUL/DI-LEI-Segurana-2010/11
Problemas comuns: [11:34:20] ERROR [org.apache.directory.server.ldap.LdapServer] - ERR_171 Failed to bind an LDAP service (60,000) to the service registry. Problema: j tm um servidor a correr no mesmo porto (normalmente porque no mataram a execuo anterior do servidor cuidado com a diferena entre control+c e control+z) Soluo: tm de matar o servidor que est a correr. Como? Comando kill Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 79 in XML document from URL [file:/home/nemo/si/si000/apacheds/apacheds_1.5.7/conf/server.xml] is invalid; nested exception is org.xml.sax.SAXParseException: The element type "jdbmPartition" must be terminated by the matching end-tag "</jdbmPartition>". Problema: evidenciado a azul na mensagem de erro Soluo: Verificar que a partio XML <jdbmPartition> criada em 3b se encontra imediatamente antes de </partitions>
dn: o=seg o: seg objectClass: top objectClass: organization dn: cn=userA,o=seg cn: userA sn: userA userPassword: secretA objectClass: top objectClass: person dn: cn=userB,o=seg cn: userB sn: userB userPassword: secretB objectClass: top objectClass: person
FCUL/DI-LEI-Segurana-2010/11
6. Adicionar o contedo do ficheiro LDIF atravs de uma das trs formas seguintes a. Plataforma interactiva Apache Directory Studio. Necessita de ser instalada a partir do stio http://directory.apache.org/studio/downloads.html Criar nova ligao ao ApacheDS, supondo que o hostname da mquina onde o ApacheDS est em execuo lab1223-24, no menu LDAP->New Connection Connection Name: teste Hostname: lab1223-24 Port: 60000 Encryption method: No encription Verificar ligao ao servidor ApacheDS com Check Network Parameter Se a ligao foi estabelecida com sucesso ento passar introduo de credenciais Next> Authentication Method: Simple Authentication Bind DN or user: uid=admin,ou=system Bind password: secret Verificar validade das credenciais Check Authentication Se as credenciais foram aceites com sucesso ento terminar com Finish Importar entradas em ficheiro LDIF no menu File->Import->LDIF into LDAP Indicar o ficheiro LDIF b. Adicionando as entradas do ficheiro LDIF com o comando ldapadd (requere o pacote ldap-utils ou openldap-clients) na consola (Linux Shell)
ldapadd -x -W -D uid=admin,ou=system -H ldap://lab1223-24:60000/ -f seg.ldif c. Carregar automaticamente o ficheiro LDIF com o 1 arranque do servidor ApacheDS
7. Listar as entradas em o=seg com o comando ldapsearch (requere o pacote ldap-utils ou openldap-clients) na consola (Linux Shell) supondo que o hostname da mquina onde o
FCUL/DI-LEI-Segurana-2010/11
Obs: O CN (X.509) tem de ser o hostname do computador onde executado o ApacheDS. Obs2: O certificado assim produzido auto-assinado e pode no ser aceite por uma aplicao cliente. Para contornar este problema, o certificado pode ser adicionado lista de certificados considerados de confiana.
9. Alterar a seco LDAP service configuration (referida em 3.a), tendo em ateno que pode ser necessrio colocar o caminho completo para a keystore criada no ponto anterior, para
<ldapServer id="ldapServer" ... keystoreFile=lab1223-24.ks certificatePassword=secret> <transports> <tcpTransport address="0.0.0.0" port="60000" enableSSL="true" /> </transports> </ldapserver>
preciso importar o certificado criado em 8 para uma truststore que ir ser utilizada nas ligaes SSL, atravs dos seguintes comandos:
keytool -exportcert alias lab1223-24 keystore lab1223-24.ks storepass secret file apacheds.der keytool importcert alias lab1223-24 keystore truststore.ks storepass secret file apacheds.der java -Djavax.net.ssl.trustStore=truststore.ks ...
b. Apache Directory Studio A nica alterao no estabelecimento de uma ligao : Encryption method: Use SSL encryption (ldaps://) Posteriormente quando se efectuar a ligao o utilizar ser confrontado com um aviso relativo ao certificado (por este ser auto-assinado). Neste caso o certificado deve ser aceite para a sesso.
FCUL/DI-LEI-Segurana-2010/11
c. Ferramentas-cliente ldap-utils ou openldap-clients (ldapadd, ) preciso exportar o certificado criado em 8 para o formato PEM (RFC 1421)
keytool exportcert alias lab1223-24 keystore lab1223-24.ks storepass secret rfc file apacheds.pem
Depois preciso criar manualmente, no mesmo directrio do certificado, um hash (OpenSSL) atravs de um symbolic link
hash=`openssl x509 -hash -noout -in apacheds.pem` ln -s apacheds.pem ${hash}.0
Obs: a string da varivel hash rodeada por acentos graves (e no por apstrofo ou aspas) Seguidamente necessrio indicar s ferramentas-cliente do LDAP a localizao deste certificado. Para isso deve-se copiar o ficheiro /etc/ldap.conf (Fedora) ou /etc/ldap/ldap.conf (Ubuntu) para um novo directrio e adicionar no final deste:
tls_cacert /caminho/completo/para/certificado/apacheds.pem
Finalmente, necessrio criar uma varivel de ambiente que indique s ferramentascliente do LDAP a localizao do novo ldap.conf. Para isso executar na consola (Linux Shell)
export LDAPCONF=/caminho/completo/para/ldap.conf
Obs: O nico espao em branco deste comando est entre o comando export e o nome da varivel.
Finalmente basta copiar toda a string que resultou do comando PERL (considere que o resultado foi XX) e coloc-la no local da password (neste caso secret) do ficheiro LDIF resultando a seguinte linha
userPassword: {CRYPT}XX