Maquinas Virtuales + Xen 4.0 + ISO + Debian Squeeze

Posted by Unknown | Posted on 15:52

0

Vamos a crear maquinas virtuales desde una imagen iso en xen 4.0, los pasos y el archivo de configuración son muy parecidos al post que escribí anteriormente para xen en debian lenny.

Lo primero que realizaremos es crear nuestros discos virtuales de la siguiente manera.

#dd if=/dev/zero of=/var/xen/domains/prueba/disk.img bs=1024k count=10000

En este caso el disco es de 10Gb si queremos aumentarlo o disminuirlo solo cambiamos el valor de la variable count, ya que este sera multiplicado por la variable bs que dará el resultado en bytes.

Luego creamos el archivo de configuración para esta nueva imagen, debe contemplar lo siguiente.

#vim prueba.cfg

name = 'prueba'

kernel = '/usr/lib/xen-4.0/boot/hvmloader'
builder = 'hvm'
device_model = '/usr/lib/xen-4.0/bin/qemu-dm'
memory = 1024
shadow_memory = 8
vcpus=1
acpi=1
apic=1
# Choose a better mac address
vif = [ 'bridge=xen-br0, mac=00:11:22:33:44:55' ]
disk = [ 'file:/root/prueba.iso,xvdc:cdrom,r', 'file:/var/xen/domains/prueba/disk.img,xvda,w' ]
boot='dc'
usbdevice='tablet'
## Use VNC for the console.
vnc=1
vncunused=0
vnclisten = '0.0.0.0'
vncdisplay=2
vncconsole=1
vncpasswd='prueba'
vncviewer=0
sdl=0
stdvga=0
serial='pty'
ne2000 = "0"
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'


Para la configuración del sistema operativo que estamos creando con la iso utilizaremos un visor de escritorio remoto puede ser vinagre o vnc.
Luego creamos la maquina virtual con el siguiente comando.

 #xm create /etc/xen/linux-mint.cfg

podemos verificar que este funcionando verificando si se realizo la apertura el puerto del vnc.

 #netstat -putan


Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5902            0.0.0.0:*               LISTEN      24248/qemu-dm  
tcp        0      0 0.0.0.0:59727           0.0.0.0:*               LISTEN      4172/rpc.statd
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      4161/portmap  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      4886/sshd




Luego ejecutamos el vinagre o el vnc, colocamos los datos de nuestro servidor xen y seguidamente nos pedirá la contraseña que colocamos en el archivo de configuración de la maquina virtual.
Ahora solo queda configurar nuestro sistema operativo.

Recuerden eliminar la linea que contiene la imagen iso luego de haber configurado el sistema, para que no vuelva a iniciar la instalación.



LDAP PUBLISHER + EJBCA + DEBIAN SQUEEZE

Posted by Unknown | Posted on 12:06

0

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.