rhythmictech.ansible_thehive
ansible-thehive
Opis
Deployuje i konfiguruje TheHive, doskonałe narzędzie do reakcji na incydenty w modelu open source. Instalacja opiera się na RPM i może opcjonalnie wstępnie załadować indeks ElasticSearch, eliminując niektóre uciążliwe kroki manualne w celu uruchomienia TheHive.
Należy zainstalować ElasticSearch osobno. Rola jest testowana z wykorzystaniem rolę ansible dostarczoną przez Elastic. Przykładowa konfiguracja jest zawarta w dokumentacji.
To powinno pokryć większość przypadków użycia TheHive, ale przyjmujemy zgłoszenia PR oraz sugerowane poprawki.
Wymagania
- Ansible w wersji 2.0 lub wyższej
- CentOS 7
- ElasticSearch w wersji 5.x
Użycie
Zaleca się instalację na dedykowanym serwerze, chociaż zarówno ElasticSearch, jak i Cortex mogą być bezpiecznie zainstalowane razem z TheHive. Opcjonalny proxy Nginx jest domyślnie włączony, a wsparcie jest dostępne dla uwierzytelniania Vouch i LDAP. Jeśli używasz zewnętrznego uwierzytelniania, ważne jest, aby poprawnie ustawić użytkownika z początkowym dostępem, za pomocą którego można się zalogować.
ElasticSearch musi być już zainstalowany i uruchomiony. Ta rola jest testowana za pomocą roli ansible-elasticsearch, którą można zaimportować z Ansible Galaxy.
Zaleca się ustawienie następujących zmiennych:
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"]
Należy pamiętać, że ElasticSearch 6.x nie jest obsługiwany przez TheHive. Obecnie gałąź główna modułu ansible-elasticsearch obsługuje wersję 5.x.
Następujące zmienne muszą być ustawione przynajmniej:
- thehive_url (fqdn, pod którym będzie dostępny TheHive)
- thehive_crypto_secret (szczegóły dotyczące generowania znajdują się w
defaults/main.yml
)
Przykładowa konfiguracja, która automatycznie załadowuje TheHive i używa uwierzytelniania LDAP oraz Cortex znajduje się poniżej:
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: "..."
Uwierzytelnianie Vouch
Ta rola obsługuje uwierzytelnianie za pośrednictwem proxy Vouch (wcześniej znanego jako Lasso). Pozwala to na realizację uwierzytelniania OAUTH za pomocą dostawców takich jak Okta.
Podczas korzystania z Vouch, kluczowe jest ustawienie thehive_http_addr
na 127.0.0.1. Ponieważ Vouch używa ciasteczek do przekazywania informacji o uwierzytelnieniu do aplikacji, musisz umieścić zarówno proxy Vouch, jak i stronę TheHive pod wspólną nazwą domeny (np. vouch.corp i thehive.corp).
Zmienne roli
# Czy repozytorium TheHive RPM powinno być zainstalowane.
# Zazwyczaj jest to to, czego chcesz, chyba że używasz własnego repozytorium RPM.
thehive_install_repo: true
# Wersja TheHive do zablokowania i zainstalowania
thehive_version: 3.2.1
# Należy pamiętać, że mapowania i dane wstępne zależą od wersji schematu.
# Jeśli instalujesz wersję TheHive, która używa innej nazwy indeksu,
# mapowania i pliki danych muszą być zaktualizowane.
thehive_index: thehive_14
# Adres URL TheHive.
thehive_url: localhost
# Czy powinno być zainstalowane wystąpienie nginxa jako proxy
thehive_install_nginx: true
# Czy skonfigurować proxy nginx
thehive_configure_nginx: true
# Wymienione pliki będą dołączane w każdej konfiguracji serwera nginx
thehive_nginx_includes: []
# Opcjonalnie użyj SSL z Nginx
thehive_nginx_ssl:
enabled: false
certificate: ""
key: ""
#cabundle: podaj, jeśli korzystasz z pakietu
# Port, na którym TheHive będzie nasłuchiwać. Ta zmienna może być zmieniana nawet przy użyciu
# proxy nginx.
thehive_http_port: 9000
# Adres IP, do którego TheHive powinien się przywiązać. Zwykle można to zostawić jak jest. Jednak
# należy to ustawić na 127.0.0.1 podczas uwierzytelniania przez proxy
thehive_http_addr: "0.0.0.0"
# Obowiązkowe. Wygeneruj klucz w ten sposób:
# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1
thehive_secret: ""
# Domyślnie, TheHive wymaga ręcznych kroków w celu skonfigurowania.
# Możesz opcjonalnie załadować wstępnie skonfigurowaną mapę i dane wstępne, co sprawia,
# że TheHive jest natychmiast użyteczny.
thehive_load_seed_data: true
# Nazwa początkowego użytkownika do utworzenia. Należy pamiętać, że jeśli korzystasz z vouch lub LDAP do
# uwierzytelniania, musisz ustawić to na ważną nazwę użytkownika w swoim katalogu.
# TheHive nie tworzy użytkowników przy pierwszym logowaniu.
thehive_seed_initial_username: "admin"
# Opcjonalnie użyj uwierzytelnienia Vouch (np. dla uwierzytelnienia Google, Okta itp.)
thehive_auth_vouch:
enabled: false
url: ""
logon_header: THEHIVE_USER
# Opcjonalnie użyj uwierzytelnienia LDAP.
thehive_auth_ldap:
enabled: false
servers: []
use_ssl: ""
bind_dn: ""
bind_pw: ""
search_base: ""
username_attribute: "cn"
# Konfiguracja ElasticSearch. Jeśli korzystasz z zalecanej konfiguracji ES, nie
# trzeba tego zmieniać.
thehive_es:
index: thehive
cluster: thehive
endpoint: 127.0.0.1:9300
# Pakiety, które będą instalowane wraz z TheHive
thehive_packages:
- java-1.8.0-openjdk
- python-pip
- unzip
- git
- thehive-{{ thehive_version }}
# Pakiety, które będą instalowane, jeśli używane jest proxy nginx.
# libsemanage-python jest niezbędny dla selinux.
thehive_nginx_packages:
- nginx
- libsemanage-python
ansible-galaxy install rhythmictech.ansible_thehive