Welcome to Delicate template
Header
Just another WordPress site
Header

XenServer – Role Based Access Control y Audit

febrero 20th, 2015 | Posted by cristiansan in ActiveDirectory | Citrix | ctxdom | Deploy | Microsoft | Security | tricks | XenServer

RBAC (Role Based Access Control) nos permite asignar usuarios, roles y permisos para el control de nuestro entorno XenServer. Esta funcionalidad no es nueva de 6.5.

RBAC depende de Directorio Activo para la authenticacion de los usuarios. Xenserver extrae la lista basada en el directorio de usuarios de AD, y Grupos a las cuales asignará los permisos necesarios. Por ello, es necesario que el pool sea integrado en el dominio.

El superusuario root, seguira estando activo, ya que se trata de un usuario local, con lo que en caso de problemas con nuestro AD, siempre podremos logar sobre la consola o mediante ssh con nuestra cuenta Root.

Configurar RBAC

Veamos como realizar el proceso. Antes de nada, deberemos habilitar en nuestro pool la authenticación externa. Para ello ejecutaremos:

xe pool-enable-external-auth auth-type=AD service-name=<full-qualified-domain> \ config:user=<username> \ config:pass=<password>

Si no estamos utilizando un servidor DHCP común , podemos realizar lo siguiente para configurar nuestro DNS en el host.

Añadimos el sufijo de dominio para realizar la busqueda.

xe pif-param-set uuid=<pif-uuid_in_the_dns_subnetwork> \ “other-config:domain=suffix1.com”

Configurar nuestro DNS interno para su uso en XenServer.

xe pif-reconfigure-ip mode=static dns=<dnshost> ip=<ip> \ gateway=<gateway> netmask=<netmask> uuid=<uuid>

Esta configuración puede realizar-se tambien desde XenCenter.

Habilitado el sufijo y conf. el DNS de busqueda, vamos a configurar ahora nuestra conexión con el dominio tal y como indicamos anteriormente.

Si todo ha ido bien, nos aparece de nuevo el prompt del sistema sin errores. Podemos ver ahora en USERS desde xenCenter el usuario root junto con la conexión al dominio.

Ahora, vayamos a incluir algun usuario con permisos especiales.

Seleccionamos Add, introducimos el nombre de usuario y selecionamos GrantUser. Esto realiza una busqueda LDAP y añade el usuario, si existe, a la ACL de XS.

Una vez tengamos el nuevo usuario añadido, observaremos que nos aparece una nueva opción “Change Role”.

Como podeis ver, disponemos de varios roles, cada uno explicado con sus correspondientes opciones.

Vale, ya tenemos nuestro Pool en dominio, y con delegación de roles para nuestro entorno XenServer. Algo mas? Por supuesto.

Auditando

El principal argumento para poder conectar nuestro pool al dominio e incluir usuarios delegados es la auditoria de tareas que se realizan en nuestro Pool.

Una vez incluido en nuestro Directorio activo, los Administradores (que no tendran acceso via root) deberan utilizar su usuario de dominio para logar-se, al cual le dimos permisos especificos. Ello nos permitira auditar y verificar en caso que sea necesario, todos los cambios realizados en nuestro pool con la información relativa al usuario que lo ejecuto.

Para obtener estos datos, deberemos realizar lo siguiente.

NOTA: Realizamos un reinicio con nuestro usuario Generico, trabajador de ACME.LAB

Abrimos nuestra Shell de XenServer y tecleamos:

xe audit-log-get [since=<timestamp>] filename=<output filename>



Por ejemplo:

xe audit-log-get since=2015-01-01 filename=/tmp/audit.cristiansan.log

El formato es tipo CSV, con lo que lo mejor es exportar fuera de nuestro host. Veamos que hizo el bueno de “generico”.

Aquí podemos ver los registros del suarios SID y User. Veamos que hizo…

[20150121T15:00:09.106Z|audit|xenserver-zboznhjz|16459|Async.VM.clean_reboot R:bcd4e0d9bb13|audit]

Queda claro, por supuesto tenemos detalles de la tarea en las subsiguientes columnas. Desde donde, que maquina, en que host, el ID de tarea etc etc.

Aquí podemos ver nuestro querido usuario Root añadiendo a Generico sobre el entorno.

[20150121T14:54:47.627Z|audit|xenserver-zboznhjz|16161 INET 0.0.0.0:80|subject.add_to_roles D:866bcaef9fd4|audit] LOCAL_SUPERUSER

root ALLOWED OK API subject.add_to_roles ((self ACME\\generico bae2d7d7-152a-463f-edb1-0e44a2bb32bb OpaqueRef:c3779325-4c0d-ebeb-7f2f-7656fcb29b23) (role VM-admin OpaqueRef:aaa00ab5-7340-bfbc-0d1b-7cf342639a6e )))

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *