rhythmictech.ansible_thehive
ansible-thehive
Descripción
Despliega y configura TheHive, una excelente herramienta de respuesta a incidentes de código abierto. Se instala usando RPM y puede pre-seedear opcionalmente el índice de ElasticSearch, eliminando algunos de los pasos manuales molestos para hacer funcionar a TheHive.
Necesitarás instalar ElasticSearch por separado. El rol se ha probado con el rol de ansible proporcionado por Elastic. Se incluye una configuración de ejemplo en la documentación.
Esto debería cubrir la mayoría de los casos de uso de TheHive, pero se aceptan PRs y mejoras sugeridas.
Requisitos
- Ansible 2.0 o superior
- CentOS 7
- ElasticSearch 5.x
Uso
Se recomienda instalar esto en un servidor dedicado, aunque tanto ElasticSearch como Cortex se pueden instalar juntos con TheHive. Un proxy Nginx opcional está habilitado por defecto, y hay soporte para autenticación de Vouch y LDAP. Si usas autenticación delegada, es importante configurar correctamente un usuario seed con el que puedas iniciar sesión.
ElasticSearch debe estar instalado y en funcionamiento previamente. Este rol se ha probado utilizando el rol de ansible-elasticsearch, que se puede importar desde Ansible Galaxy.
Las siguientes variables son recomendadas:
es_instance_name: "thehive"
es_version: 5.6.14
es_major_version: 5.x
es_data_dirs:
- "/data/es"
es_config:
node.name: "thehive"
cluster.name: "thehive"
node.data: true
node.master: true
script.inline: on
thread_pool.index.queue_size: 100000
thread_pool.search.queue_size: 100000
thread_pool.bulk.queue_size: 100000
es_scripts: true
es_templates: false
es_version_lock: false
es_heap_size: 1g
es_xpack_features: ["alerting","monitoring"]
Cabe mencionar que ElasticSearch 6.x no es compatible con TheHive. Actualmente, la rama principal del módulo ansible-elasticsearch admite 5.x.
Las siguientes variables deben configurarse como mínimo:
- thehive_url (dominio completo donde TheHive será accesible)
- thehive_crypto_secret (consulta
defaults/main.yml
para instrucciones sobre cómo generarlo)
A continuación se incluye una configuración común de ejemplo que inicializa automáticamente TheHive y usa autenticación LDAP y Cortex:
thehive_url: "thehive.corp"
thehive_seed_initial_username: "admin"
thehive_http_addr: "127.0.0.1"
thehive_crypto_secret: "..."
thehive_auth_ldap:
enabled: true
servers: ["ldapserver.corp:636"]
use_ssl: true
bind_dn: "bind_dn"
bind_pw: "bind_pw"
search_base: "dc=corp"
username_attribute: "sAMAccountName"
}
thehive_cortex_servers:
cortex:
url: "http://127.0.0.1:9001/"
key: "..."
Autenticación de Vouch
Este rol admite la autenticación a través de un proxy de Vouch (anteriormente conocido como Lasso). Esto te permite hacer autenticación OAUTH a través de proveedores como Okta.
Al usar Vouch, es crítico establecer thehive_http_addr
en 127.0.0.1. Dado que Vouch utiliza cookies para comunicar información de autenticación de vuelta a la aplicación, debes colocar tanto tu proxy de Vouch como el sitio de TheHive bajo un nombre de dominio común (por ejemplo, vouch.corp y thehive.corp).
Variables del rol
# Determina si se debe instalar el repositorio RPM de TheHive.
# Esto es generalmente lo que quieres, a menos que estés usando tu propio repositorio RPM.
thehive_install_repo: true
# Versión de TheHive para fijar e instalar
thehive_version: 3.2.1
# Ten en cuenta que los mapeos y los datos iniciales dependen de la versión del esquema.
# Si instalas una versión de TheHive que utiliza un nombre de índice diferente,
# los mapeos y archivos de datos necesitan ser actualizados.
thehive_index: thehive_14
# URL de TheHive.
thehive_url: localhost
# Determina si se debe instalar una instancia de nginx como proxy
thehive_install_nginx: true
# Determina si se debe configurar el proxy nginx
thehive_configure_nginx: true
# Los archivos referenciados se incluirán en cada configuración del servidor nginx
thehive_nginx_includes: []
# Opcionalmente usar SSL con Nginx
thehive_nginx_ssl:
enabled: false
certificate: ""
key: ""
#cabundle: proporcionar si se usa un paquete
# El puerto que TheHive escuchará. Esta variable se puede cambiar incluso al usar
# el proxy nginx.
thehive_http_port: 9000
# Dirección IP a la que TheHive debe vincularse. En general, esto se puede dejar como está. Sin embargo,
# esto debe establecerse en 127.0.0.1 al autenticar a través de un proxy
thehive_http_addr: "0.0.0.0"
# Obligatorio. Genera una clave así:
# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1
thehive_secret: ""
# Por defecto, TheHive requiere pasos manuales para configurarse.
# Opcionalmente puedes cargar un mapeo y datos iniciales preconfigurados, lo que hace
# que TheHive sea utilizable de inmediato.
thehive_load_seed_data: true
# Nombre del usuario inicial a crear. Nota que si usas vouch o LDAP para
# autenticación, debes establecer esto a un nombre de usuario válido en tu directorio.
# TheHive no crea usuarios en el primer inicio de sesión.
thehive_seed_initial_username: "admin"
# Opcionalmente usar autenticación de Vouch (por ejemplo, para autenticación de Google, Okta, etc.)
thehive_auth_vouch:
enabled: false
url: ""
logon_header: THEHIVE_USER
# Opcionalmente usar autenticación LDAP.
thehive_auth_ldap:
enabled: false
servers: []
use_ssl: ""
bind_dn: ""
bind_pw: ""
search_base: ""
username_attribute: "cn"
# Configuración de ElasticSearch. Si usas la configuración recomendada de ES, esto
# no necesita ser cambiado.
thehive_es:
index: thehive
cluster: thehive
endpoint: 127.0.0.1:9300
# Paquetes que se instalarán con TheHive
thehive_packages:
- java-1.8.0-openjdk
- python-pip
- unzip
- git
- thehive-{{ thehive_version }}
# Paquetes que se instalarán si se usa el proxy nginx.
# libsemanage-python es necesario para selinux.
thehive_nginx_packages:
- nginx
- libsemanage-python
ansible-galaxy install rhythmictech.ansible_thehive