Crear replicación multimaster a través de SSL


Tenemos DSEE 7 instalado con 2 instancias que almacenan datos sobre el sufijo dc=edu,dc=com y necesitamos crear una topología multimaster securizada.

Aunque cada instancia tiene, de forma predeterminada, certificados autofirmados (defaultCert) vamos a crear nuestra propia CA raíz para crear los certificados de cada instancia y usarlos en la replicación.

Comenzamos creando nuestra CA:

  • Creamos un directorio donde se encuentran los ficheros que usará la CA:

root@solaris # mkdir miCA

  • Generamos la clave privada y el certificado autofirmado:

root@solaris # openssl genrsa -out ./miCA/ca.key 1024

Generating RSA private key, 1024 bit long modulus
……………….++++++
………………………………………………….++++++
e is 65537 (0×10001)

root@solaris # openssl req -out ./miCA/ca.cert -key ./miCA/ca.key -new -x509  -days 365 -subj “/CN=miCA”

  • Crear fichero configuración de la CA para firmar las peticiones de certificados junto a sus ficheros relacionados:

root@solaris # vi miCA/ca.conf

[ ca ]
default_ca      = miCA        #  CA por defecto

[ miCA ]
private_key      = ./miCA/ca.key         # CA key
certificate          = ./miCA/ca.cert        # Certificado autofirmado
database             = ./miCA/ca.db           # Numero de certificados generados
serial                    = ./miCA/ca.serial     # Serial para el siguiente certificado
default_days    = 3650                             # Validez 10 anios
default_md       = md5                               # Hash
policy                  = policy_cn                   # Pertenece al subject del certificado
new_certs_dir   = ./miCA/                    # Donde se crean los certificados

[ policy_cn ]
commonName      = supplied      # Esto indica que el subject del certificado debe ser suministrado durante la generacion del certificado)

root@solaris # touch ./miCA/ca.db
root@solaris # echo 01 >./miCA/ca.serial

  • Con esto ya tenemos preparada nuestra CA y pasamos a crear los certificados de las instancias, solicitando una petición de certificado y firmandolo con nuestra CA:

root@solaris # dsadm request-cert –name host1.edu.com –org dsins1 -F ascii -o /tmp/host1cert.req /var/opt/dsee7/dsins1

root@solaris # dsadm request-cert –name host2.edu.com –org dsins2 -F ascii -o /tmp/host2cert.req /var/opt/dsee7/dsins2

root@solaris # openssl ca -config ./miCA/ca.conf -in /tmp/hos1cert.req  -out /tmp/host1.cert

Using configuration from ./miCA/ca.conf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
organizationName      : PRINTABLE:’dsins1′
commonName            : PRINTABLE:’host1.edu.com’
Certificate is to be certified until Sep  6 11:14:23 2020 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

root@solaris # openssl ca -config ./miCA/ca.conf -in /tmp/host2cert.req  -out /tmp/host2.cert

Using configuration from ./miCA/ca.conf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
organizationName      : PRINTABLE:’dsins2′
commonName            : PRINTABLE:’host2.edu.com’
Certificate is to be certified until Sep  6 11:18:20 2020 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

  • Incluimos los certificados de cada instancia en sus respectivas bases de datos de certificados:

root@solaris # dsadm add-cert /var/opt/dsee7/dsins1 host1Cert /tmp/host1.cert
The Directory Server will need to be restarted before being able to use the new certificate

root@solaris # dsadm add-cert /var/opt/dsee7/dsins2 host2Cert /tmp/host2.cert
The Directory Server will need to be restarted before being able to use the new certificate

  • Incluimos el certificado de nuestra CA en la base de datos de certificados de cada instancia:

root@solaris # dsadm add-cert -C /var/opt/dsee7/dsins1 miCACert ./miCA/ca.cert
The Directory Server will need to be restarted before being able to use the new certificate.

root@solaris # dsadm add-cert -C /var/opt/dsee7/dsins2 miCACert ./miCA/ca.cert
The Directory Server will need to be restarted before being able to use the new certificate.

  • Reiniciamos las instancias para que pueda usar estos certificados:

root@solaris # dsadm restart /var/opt/dsee7/dsins1
Directory Server instance ‘/var/opt/dsee7/dsins1′ stopped
Directory Server instance ‘/var/opt/dsee7/dsins1′ started: pid=4343

root@solaris # dsadm restart /var/opt/dsee7/dsins2
Directory Server instance ‘/var/opt/dsee7/dsins2′ stopped
Directory Server instance ‘/var/opt/dsee7/dsins2′ started: pid=4344

  • habilitamos la replicación en las instancias (el ficheros /pwd.txt contiene la password de cn=Directory Manager” de las instancia) :

root@solaris # dsconf enable-repl -h host1.edu.com -P 636 -w /pwd.txt -d 1 master dc=edu,dc=com
Use “dsconf create-repl-agmt” to create replication agreements on “dc=edu,dc=com”.

root@solaris # dsconf enable-repl -h host2.edu.com -P 636 -w /pwd.txt -d 2 master dc=edu,dc=com
Use “dsconf create-repl-agmt” to create replication agreements on “dc=edu,dc=com”.

  • Creamos el acuerdo de replicación en sentido host1.edu.com –> host2.edu.com

root@solaris # dsconf create-repl-agmt -h host1.edu.com -P 636 -w /pwd.txt –auth-protocol ssl-simple dc=edu,dc=com host2.edu.com:636
Use “dsconf init-repl-dest dc=edu,dc=com host2.edu.com:636″ to start replication of “dc=edu,dc=com” data.

root@solaris # dsconf create-repl-agmt -h host2.edu.com -P 636 -w /pwd.txt –auth-protocol ssl-simple dc=edu,dc=com host1.edu.com:636
Use “dsconf init-repl-dest dc=edu,dc=com host1.edu.com:636″ to start replication of “dc=edu,dc=com” data.

  • Cambiamos el certificado por defecto de  las instancias por el nuevo certificado firmado por nuestra CA y reiniciamos la instancia para que coja el nuevo valor:

root@solaris # dsconf set-server-prop -h host1.edu.com -p 389 -w /pwd.txt ssl-rsa-cert-name:host1Cert
Before setting SSL configuration, export Directory Server data.
Do you want to continue [y/n] ?  y
Directory Server must be restarted for changes to take effect.

root@solaris # dsadm restart /var/opt/dsee7/dsins1
Directory Server instance ‘/var/opt/dsee7/dsins1′ stopped
Directory Server instance ‘/var/opt/dsee7/dsins1′ started: pid=4378

root@solaris # dsconf set-server-prop -h host2.edu.com -p 389 -w /pwd.txt ssl-rsa-cert-name:host2Cert
Before setting SSL configuration, export Directory Server data.
Do you want to continue [y/n] ?  y
Directory Server must be restarted for changes to take effect.

root@solaris # dsadm restart /var/opt/dsee7/dsins2
Directory Server instance ‘/var/opt/dsee7/dsins2′ stopped
Directory Server instance ‘/var/opt/dsee7/dsins2′ started: pid=4379

  • Habilitamos acuerdo replicacion solo en un sentido (el que tiene los datos sobre el que no los tiene). En el sentido opuesto no es necesario hacerlo:

root@solaris # dsconf init-repl-dest -P 6636 -w /pwd.txt dc=edu,dc=com ds7:8636
Started initialization of “ds7:8636″; Sep 9, 2010 2:04:05 PM
Sent 136 entries…
Sent 137 entries.
Completed initialization of “ds7:8636″; Sep 9, 2010 2:04:08 PM

Y eso es todo, a darle buen uso y hasta pronto!!!

VN:F [1.9.12_1141]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.12_1141]
Rating: 0 (from 0 votes)
Sphere: Related Content

FacebookTwitterGoogle BookmarksLinkedInShare

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

,

  1. No comments yet.
(will not be published)