mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-06 09:12:45 +01:00
201 lines
5.5 KiB
Plaintext
201 lines
5.5 KiB
Plaintext
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
# Elastic License 2.0.
|
|
|
|
{% from 'allowed_states.map.jinja' import allowed_states %}
|
|
{% if sls.split('.')[0] in allowed_states or sls in allowed_states %}
|
|
{% from 'vars/globals.map.jinja' import GLOBALS %}
|
|
{% set kafka_password = salt['pillar.get']('kafka:config:password') %}
|
|
|
|
include:
|
|
- ca.dirs
|
|
{% set global_ca_server = [] %}
|
|
{% set x509dict = salt['mine.get'](GLOBALS.manager | lower~'*', 'x509.get_pem_entries') %}
|
|
{% for host in x509dict %}
|
|
{% if 'manager' in host.split('_')|last or host.split('_')|last == 'standalone' %}
|
|
{% do global_ca_server.append(host) %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% set ca_server = global_ca_server[0] %}
|
|
|
|
{% if GLOBALS.pipeline == "KAFKA" %}
|
|
|
|
{% if GLOBALS.role in ['so-manager', 'so-managersearch', 'so-standalone'] %}
|
|
kafka_client_key:
|
|
x509.private_key_managed:
|
|
- name: /etc/pki/kafka-client.key
|
|
- keysize: 4096
|
|
- backup: True
|
|
- new: True
|
|
{% if salt['file.file_exists']('/etc/pki/kafka-client.key') -%}
|
|
- prereq:
|
|
- x509: /etc/pki/kafka-client.crt
|
|
{%- endif %}
|
|
- retry:
|
|
attempts: 5
|
|
interval: 30
|
|
|
|
kafka_client_crt:
|
|
x509.certificate_managed:
|
|
- name: /etc/pki/kafka-client.crt
|
|
- ca_server: {{ ca_server }}
|
|
- subjectAltName: DNS:{{ GLOBALS.hostname }}, IP:{{ GLOBALS.node_ip }}
|
|
- signing_policy: kafka
|
|
- private_key: /etc/pki/kafka-client.key
|
|
- CN: {{ GLOBALS.hostname }}
|
|
- days_remaining: 0
|
|
- days_valid: 820
|
|
- backup: True
|
|
- timeout: 30
|
|
- retry:
|
|
attempts: 5
|
|
interval: 30
|
|
|
|
kafka_client_key_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka-client.key
|
|
- mode: 640
|
|
- user: 960
|
|
- group: 939
|
|
|
|
kafka_client_crt_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka-client.crt
|
|
- mode: 640
|
|
- user: 960
|
|
- group: 939
|
|
{% endif %}
|
|
|
|
{% if GLOBALS.role in ['so-manager', 'so-managersearch','so-receiver', 'so-standalone'] %}
|
|
kafka_key:
|
|
x509.private_key_managed:
|
|
- name: /etc/pki/kafka.key
|
|
- keysize: 4096
|
|
- backup: True
|
|
- new: True
|
|
{% if salt['file.file_exists']('/etc/pki/kafka.key') -%}
|
|
- prereq:
|
|
- x509: /etc/pki/kafka.crt
|
|
{%- endif %}
|
|
- retry:
|
|
attempts: 5
|
|
interval: 30
|
|
|
|
kafka_crt:
|
|
x509.certificate_managed:
|
|
- name: /etc/pki/kafka.crt
|
|
- ca_server: {{ ca_server }}
|
|
- subjectAltName: DNS:{{ GLOBALS.hostname }}, IP:{{ GLOBALS.node_ip }}
|
|
- signing_policy: kafka
|
|
- private_key: /etc/pki/kafka.key
|
|
- CN: {{ GLOBALS.hostname }}
|
|
- days_remaining: 0
|
|
- days_valid: 820
|
|
- backup: True
|
|
- timeout: 30
|
|
- retry:
|
|
attempts: 5
|
|
interval: 30
|
|
cmd.run:
|
|
- name: "/usr/bin/openssl pkcs12 -inkey /etc/pki/kafka.key -in /etc/pki/kafka.crt -export -out /etc/pki/kafka.p12 -nodes -passout pass:{{ kafka_password }}"
|
|
- onchanges:
|
|
- x509: /etc/pki/kafka.key
|
|
kafka_key_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka.key
|
|
- mode: 640
|
|
- user: 960
|
|
- group: 939
|
|
|
|
kafka_crt_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka.crt
|
|
- mode: 640
|
|
- user: 960
|
|
- group: 939
|
|
|
|
kafka_pkcs12_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka.p12
|
|
- mode: 640
|
|
- user: 960
|
|
- group: 939
|
|
{% endif %}
|
|
|
|
# Standalone needs kafka-logstash for automated testing. Searchnode/manager search need it for logstash to consume from Kafka.
|
|
# Manager will have cert, but be unused until a pipeline is created and logstash enabled.
|
|
{% if GLOBALS.role in ['so-standalone', 'so-managersearch', 'so-searchnode', 'so-manager'] %}
|
|
kafka_logstash_key:
|
|
x509.private_key_managed:
|
|
- name: /etc/pki/kafka-logstash.key
|
|
- keysize: 4096
|
|
- backup: True
|
|
- new: True
|
|
{% if salt['file.file_exists']('/etc/pki/kafka-logstash.key') -%}
|
|
- prereq:
|
|
- x509: /etc/pki/kafka-logstash.crt
|
|
{%- endif %}
|
|
- retry:
|
|
attempts: 5
|
|
interval: 30
|
|
|
|
kafka_logstash_crt:
|
|
x509.certificate_managed:
|
|
- name: /etc/pki/kafka-logstash.crt
|
|
- ca_server: {{ ca_server }}
|
|
- subjectAltName: DNS:{{ GLOBALS.hostname }}, IP:{{ GLOBALS.node_ip }}
|
|
- signing_policy: kafka
|
|
- private_key: /etc/pki/kafka-logstash.key
|
|
- CN: {{ GLOBALS.hostname }}
|
|
- days_remaining: 0
|
|
- days_valid: 820
|
|
- backup: True
|
|
- timeout: 30
|
|
- retry:
|
|
attempts: 5
|
|
interval: 30
|
|
cmd.run:
|
|
- name: "/usr/bin/openssl pkcs12 -inkey /etc/pki/kafka-logstash.key -in /etc/pki/kafka-logstash.crt -export -out /etc/pki/kafka-logstash.p12 -nodes -passout pass:{{ kafka_password }}"
|
|
- onchanges:
|
|
- x509: /etc/pki/kafka-logstash.key
|
|
|
|
kafka_logstash_key_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka-logstash.key
|
|
- mode: 640
|
|
- user: 931
|
|
- group: 939
|
|
|
|
kafka_logstash_crt_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka-logstash.crt
|
|
- mode: 640
|
|
- user: 931
|
|
- group: 939
|
|
|
|
kafka_logstash_pkcs12_perms:
|
|
file.managed:
|
|
- replace: False
|
|
- name: /etc/pki/kafka-logstash.p12
|
|
- mode: 640
|
|
- user: 931
|
|
- group: 939
|
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
|
|
{{sls}}_state_not_allowed:
|
|
test.fail_without_changes:
|
|
- name: {{sls}}_state_not_allowed
|
|
|
|
{% endif %} |