ProHoster > Blog > Administración > Elastic under lock and key: activa as opcións de seguranza do clúster de Elasticsearch para acceder desde dentro e fóra
Elastic under lock and key: activa as opcións de seguranza do clúster de Elasticsearch para acceder desde dentro e fóra
Elastic Stack é unha ferramenta moi coñecida no mercado de sistemas SIEM (en realidade, non só eles). Pode recoller moitos datos de diferentes tamaños, tanto sensibles como pouco sensibles. Non é totalmente correcto se o acceso aos propios elementos de Elastic Stack non está protexido. De forma predeterminada, todos os elementos de Elastic listos para usar (colectores Elasticsearch, Logstash, Kibana e Beats) execútanse con protocolos abertos. E no propio Kibana, a autenticación está desactivada. Todas estas interaccións pódense garantir e neste artigo dirémosche como facelo. Para comodidade, dividimos a narración en 3 bloques semánticos:
Modelo de acceso a datos baseado en roles
Seguridade dos datos dentro dun clúster Elasticsearch
Protexer datos fóra dun clúster de Elasticsearch
Detalles baixo o corte.
Modelo de acceso a datos baseado en roles
Se instalas Elasticsearch e non o axustas de ningún xeito, o acceso a todos os índices estará aberto a todos. Ben, ou aqueles que poden usar curl. Para evitar isto, Elasticsearch ten un modelo que está dispoñible a partir dunha subscrición básica (que é gratuíta). Esquemáticamente parece algo así:
O que hai na imaxe
Os usuarios son todos os que poden iniciar sesión usando as súas credenciais.
Os recursos son índices, documentos, campos, usuarios e outras entidades de almacenamento (o modelo a seguir para algúns recursos só está dispoñible con subscricións de pago).
Por defecto Elasticsearch ten usuarios da caixa, ao que están adscritos roles de caixa. Unha vez que habilites as opcións de seguranza, podes comezar a usalas inmediatamente.
Para activar a seguranza na configuración de Elasticsearch, cómpre engadila ao ficheiro de configuración (por defecto, isto é elasticsearch/config/elasticsearch.yml) nova liña:
xpack.security.enabled: true
Despois de cambiar o ficheiro de configuración, inicie ou reinicie Elasticsearch para que os cambios teñan efecto. O seguinte paso é asignar contrasinais aos usuarios da caixa. Imos facelo de forma interactiva usando o seguinte comando:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
Comprobamos:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Podes darte unhas palmaditas nas costas: a configuración do lado de Elasticsearch está completada. Agora toca configurar Kibana. Se o executas agora, aparecerán erros, polo que é importante crear un almacén de claves. Isto faise en dous comandos (user kibana e o contrasinal introducido no paso de creación do contrasinal en Elasticsearch):
Se todo é correcto, Kibana comezará a solicitar un inicio de sesión e un contrasinal. A subscrición básica inclúe un modelo baseado en usuarios internos. Comezando por Gold, pode conectar sistemas de autenticación externos: sistemas LDAP, PKI, Active Directory e de inicio de sesión único.
Tamén se poden limitar os dereitos de acceso a obxectos dentro de Elasticsearch. Non obstante, para facer o mesmo con documentos ou campos, necesitarás unha subscrición de pago (este luxo comeza co nivel Platino). Estas opcións están dispoñibles na interface de Kibana ou a través de API de seguridade. Podes comprobar a través do xa familiar menú de ferramentas de desenvolvemento:
Seguridade dos datos dentro dun clúster Elasticsearch
Cando Elasticsearch se executa nun clúster (o que é común), a configuración de seguranza do clúster cobra importancia. Para unha comunicación segura entre nós, Elasticsearch usa o protocolo TLS. Para configurar unha interacción segura entre eles, necesitas un certificado. Xeramos un certificado e unha clave privada en formato PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Despois de executar o comando anterior, no directorio /../elasticsearch aparecerá o arquivo pila-elastica-ca.zip. No seu interior atoparás un certificado e unha clave privada con extensións crt и clave respectivamente. É recomendable poñelos nun recurso compartido, que debería ser accesible desde todos os nodos do clúster.
Agora cada nodo necesita os seus propios certificados e claves privadas baseados nos que hai no directorio compartido. Ao executar o comando, pediráselle que estableza un contrasinal. Podes engadir opcións adicionais -ip e -dns para a verificación completa dos nós que interactúan.
Como resultado da execución do comando, recibiremos un certificado e unha clave privada en formato PKCS#12, protexidos por contrasinal. Só queda mover o ficheiro xerado p12 ao directorio de configuración:
Hai outra opción de seguridade: filtrado de enderezos IP (dispoñible nas subscricións do nivel Ouro). Permítelle crear listas brancas de enderezos IP desde os que se lle permite acceder aos nós.
Protexer datos fóra dun clúster de Elasticsearch
Fóra do clúster significa conectar ferramentas externas: Kibana, Logstash, Beats ou outros clientes externos.
Para configurar o soporte para https (en lugar de http), engade novas liñas a elasticsearch.yml:
Despois de engadir as claves, os nodos de Elasticsearch están listos para conectarse a través de https. Agora xa se poden lanzar.
O seguinte paso é crear unha clave para conectar Kibana e engadila á configuración. En función do certificado que xa se atopa no directorio compartido, xeraremos un certificado en formato PEM (PKCS#12 Kibana, Logstash e Beats aínda non son compatibles):
As claves están aí, polo que só queda cambiar a configuración de Kibana para que comece a utilizalas. No ficheiro de configuración kibana.yml, cambia http a https e engade liñas con configuración de conexión SSL. As tres últimas liñas configuran a comunicación segura entre o navegador do usuario e Kibana.
Así, a configuración complétase e o acceso aos datos do clúster Elasticsearch está cifrado.
Se tes dúbidas sobre as capacidades de Elastic Stack en subscricións gratuítas ou de pago, supervisar tarefas ou crear un sistema SIEM, deixa unha solicitude a formulario de comentarios na nosa páxina web.