LDAP PUBLISHER + EJBCA + DEBIAN SQUEEZE
Posted by Unknown | Posted on 12:06
Para tener un publicador de certificados en el ldap lo primero que debemos tener funcionando es nuestro servidor de directorios esto lo podemos realizar de la siguiente manera.
#aptitude install slapd ldap-utils phpldapadmin
Durante la instalación el instalador de paquetes se le pedirá que proporcione la contraseña de administrador. Al igual que con cualquier otro paquete, la misma contraseña tiene que ser siempre dos veces, es posible que también solicite la información del dominio a utilizar, tipo de base de datos y versión, si esto no sucede al momento de realizar la instalación del paquete podemos utilizar el siguiente comando para ello.
#dpkg-reconfigure slapd
Para una mejor configuración del ldap es bueno utilizar una herramienta administrativa para ello utilizaremos phpldapadmin instalado anteriormente.
Luego de esto debemos crear nuestro arbol ldap, donde se encontraran los servicios grupos y usuarios con sus respectivos certificados luego de la integración con el ejbca.
Poniendo de ejemplo el dominio ejemplo.com, creamos nuestro árbol de la siguiente forma.
dc = ejemplo, dc = com
ou = usuarios
ou = servicios
ou = aplicaciones
agregando la siguiente información para cada grupo, esto lo podemos agregar vía consola o por la herramienta administrativa con la opción importar.
dn: ou = usuarios, dc = ejemplo, dc = com
objectClass: organizationalUnit
ou: usuarios
dn: ou = servicios, dc = ejemplo, dc = com
objectClass: organizationalUnit
ou: servicios
dn: ou = aplicaciones, dc = ejemplo, dc = com
objectClass: organizationalUnit
ou: aplicaciones
Para agregarlo por consola lo podemos hacer de la siguiente forma.
ldapadd-x-W-f / root / ldap / dc = ejemplo, dc = com / ou = usuarios.ldif
Cada grupo puede ser un archivo .ldif e ir agregándolo sin necesidad de reiniciar el servicios.
Ahora debemos crear un usuarios que sera el que se conecte con la aplicación ejbca y debe estar dentro del grupo aplicaciones, creado anteriormente en el ldap.
dn: cn = ca, ou = aplicaciones, dc = ejemplo, dc = com
objectClass : applicationProcess
objectClass: simpleSecurityObject
cn: ca
Descripción: Certificación de la autoridad
userPassword: {{ ejbca_ldap_password }}
La contraseña encriptada la podemos agregar por la herramienta administrativa luego de agregar el usuarios o de la siguiente forma por consola.
# slappasswd -h '{SSHA}'
Luego agregamos el usuarios por la herramienta administrativa o de la siguiente forma.
#ldapadd-x-W-f / root / ldap / dc = ejemplo, dc = com / ou = aplicaciones / cn = ca.ldif
Luego de agregado el usuarios en el ldap debemos darle permisos para que este pueda leer, escribir y borrar de todos los grupos creados en el ldap, para ello realizamos lo siguiente.
Primero eliminamos todo tipo de acceso.
Creamos un archivo llamado eliminar_acceso.ldif
# / Root / ldap / config / eliminar_acceso.ldif
---- ---- INICIO
dn: olcDatabase = {1} hdb, cn = config
changetype: modify
delete: olcAccess
----- ----- END
Luego. Creamos un archivo llamado agregar_acceso.ldif.
# /root/ldap/config/agregar_acceso.ldif
----BEGIN----
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0} to dn.base=""
by * read
-
add: olcAccess
olcAccess: {1} to attrs=userPassword
by anonymous auth
by * none
-
add: olcAccess
olcAccess: {2} to dn.base="dc=ejemplo,dc=com"
by * read
-
add: olcAccess
olcAccess: {3} to dn.subtree="ou=usuarios,dc=ejemplo,dc=com"
by dn="cn=ca,ou=aplicaciones,dc=ejemplo,dc=com" write
by users read
by * none
-
add: olcAccess
olcAccess: {4} to dn.subtree="ou=servicios,dc=ejemplo,dc=com"
by dn="cn=ca,ou=aplicaciones,dc=ejemplo,dc=com" write
by users read
by * none
-----END-----
Estos accesos los agregamos de la siguiente manera.
$ ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/ldap/eliminar_acceso.ldif
$ ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/ldap/agregar_acceso.ldif
El servidor LDAP soporta ssl y la comunicación con la aplicación ejbca también se puede establecer por medio del puerto 636, pero en este caso lo configuraremos por defecto por el puerto 389.
Ahora configuraremos el publicador en la herramienta EJBCA. En la interfaz administrativa seleccionamos edit publishers.
Agregamos el nombre de publicador ldap y presionamos el botón add.
Luego lo seleccionamos y presionamos el botón de edit publisher.
Ahora colocaremos la siguiente información dentro de la plantilla del publicador.
Publisher Type: LDAP V3 Publisher
Hostnames: ldap.ejemplo.com
Base DN: ou=usuarios,dc=ejemplo,dc=com
Login DN: cn=ca,ou=aplicaciones,dc=ejemplo,dc=com
Login Password: {{ldap_end_entity_password}}
Confirm Password: {{ldap_end_entity_password}}
Create Non-existing Users: On
Overwrite Existing Attributes: On
Modify Existing Users: On
Add Non-existing Attributes: On
Add multiple certificates per user: On
Remove certificates when revoked: On
LDAP location fields from cert DN: CN, Common Name
User Object Class: top;person;organizationalPerson;inetOrgPerson
CA Object Class : top;applicationProcess;certificationAuthority-V2
User Certificate Attribute: userCertificate;binary
Keep successfully published items in database: On
Description: Publicador de certificados de usuarios en el LDAP
El parámetro ldap_end_entity_password debe ser sustituida por la contraseña utilizada anteriormente durante la instalación del árbol LDAP.
Haga clic en el Guardar y probar la conexión botón para comprobar la configuración, a continuación, haga clic en el Guardar botón para volver a la lista de los editores.
Lo siguiente en la línea consiste en añadir a un editor para los certificados de servidor. Esto lo podemos realizar de la misma manera que para los usuarios, solo que cambiamos los datos del ldap para el grupo donde estarán los servicios.
Lo único que queda ahora es configurar los editores utilizados por los perfiles de certificado. Ir a Administration -> Edit Certificate Profiles seleccionar the Example Person Signing y presionar el botón
Edit Certificate Profile y realizamos el siguiente cambio.
Publishers: LDAP Person Publisher, OCSP Publisher
Guardamos los cambios y realizamos el mismo procedimiento para la parte del servidor.
Publishers: LDAP Server Publisher, OCSP Publisher
Finalmente, lo único que queda es volver a publicar todos los certificados de la base de datos LDAP. Esto se puede hacer entrando en en el ejbca-servidor y ejecutando el siguiente comando:
$ cd /opt/ejbca/
$ bin/ejbca.sh ca republish 'Example Person CA'
$ bin/ejbca.sh ca republish 'Example Server CA'
Esto obligará a todos los certificados que se generaron previamente se vuelvan a publicar. Posteriormente los nuevos certificados se publica automáticamente en la base de datos LDAP, y todos los certificados revocados serán excluidos del mismo.
Comments (0)
Publicar un comentario