Configurar elasticsearch x-pack para autenticar via LDAP
Con el plugin x-pack de elasticsearh es posible que tanto nuestro elasticsearch como kibana utilice usuarios externos, los cuales pueden ser de LDAP, Active Directory o archivos
En este caso configuraremos nuestro elasticsearch para que autentique a traves de LDAP para los usuarios clientes y que autentique también vía archivos para los usuarios genéricos tales como el logstash, de manera a que en caso de que nuestro servidor LDAP tenga problemas no perdamos los datos que estén tratando de insertar en ese momento.
Configurar autenticacion vía LDAP
Lo primero que tenemos que hacer es asegurarnos de que nuestro LDAP acepte consultas anonimas, luego debebemos obtener los datos que necesitaremos:
Una vez que tenemos todos esos datos debemos agregar al final del archivo /etc/elasticsearch/elasticsearch.yml
lo siguiente:
Configurar roles para los usuarios y grupos de LDAP
Una vez que tenemos configurada la autenticacion via LDAP solo nos queda asignar los roles correspondientes a los grupos o usuarios, esto se hace en el archivo /etc/elasticsearch/x-pack/role_mapping.yml
, por ejemplo:
Configurar autenticacion vía archivos locales
Es importante contar con un medio de autenticacion que no dependa de otros equipos para usuarios genéricos como el del logstash, esto para evitar que el logstash deje de insertar a elasticsearch cuando nuestro LDAP tenga problemas, es por eso que configuraremos también el método de autenticacion vía archivos:
Lo unico que debemos hacer es agregar al final del archivo /etc/elasticsearch/elasticsearch.yml
lo siguiente:
Administrar usuarios locales
Una vez que agregamos la configuracion para autenticar via archivos locales, podemos administrar los usuarios con la herramienta /usr/share/elasticsearch/bin/x-pack/users
.
Para crear un usuario:
Para agregar un role a un usuario ya creado:
Con el comando anterior asignamos el role superuser
al usuario creado previamente.
Aplicar los cambios
Debemos reiniciar nuestro elasticsearch para que aplique todos los cambios que hicimos:
Finalmente tenemos nuestro elasticsearch con 2 metodos de autenticaion, uno el metodo de archivos locales y el otro un servidor LDAP, no esta de mas decir que estos metodos son para autenticar usuarios, la creacion de roles se debe seguir haciendo a traves de la api del x-pack
Para mas informacion:
https://www.elastic.co/guide/en/x-pack/current/ldap-realm.html
https://www.elastic.co/guide/en/x-pack/current/file-realm.html
https://www.elastic.co/guide/en/x-pack/current/security-api-roles.html