| 1 |
Перенесите минимальный комплект конфигураций на ВМ Elastic и распакуйте его в /opt/check-risk-elastic/.
scp check-risk-elastic-integration.zip ubuntu@<ELASTIC_IP>:/tmp/
ssh ubuntu@<ELASTIC_IP>
sudo apt-get install -y unzip
sudo install -d -m 0755 /opt/check-risk-elastic
sudo unzip -o /tmp/check-risk-elastic-integration.zip -d /opt/check-risk-elastic
В комплекте: 30-checkrisk.conf, logstash.conf, pipelines.yml и docker-compose.override.yml.
|
|
| 2 |
Установите rsyslog и подготовьте каталог файлов коллектора.
sudo apt-get update
sudo apt-get install -y rsyslog
sudo systemctl enable --now rsyslog
sudo install -d -o syslog -g adm -m 0755 /var/log/checkrisk
sudo touch /var/log/checkrisk/raw.log /var/log/checkrisk/events.ndjson
sudo chown syslog:adm /var/log/checkrisk/raw.log /var/log/checkrisk/events.ndjson
sudo chmod 0640 /var/log/checkrisk/raw.log
sudo chmod 0644 /var/log/checkrisk/events.ndjson
|
|
| 3 |
Установите конфигурацию rsyslog и проверьте приём TCP Syslog.
sudo install -m 0644 /opt/check-risk-elastic/30-checkrisk.conf /etc/rsyslog.d/30-checkrisk.conf
sudo rsyslogd -N1
sudo systemctl restart rsyslog
sudo ss -lntp | grep 5514
Порт TCP 5514 должен слушать rsyslog. raw.log сохраняет исходные JSON, events.ndjson передаётся в Logstash.
|
|
| 4 |
Установите pipeline Logstash и подключение каталога логов.
sudo install -m 0644 /opt/check-risk-elastic/logstash.conf /opt/elastic-stack/logstash/pipeline/logstash.conf
sudo install -m 0644 /opt/check-risk-elastic/pipelines.yml /opt/elastic-stack/logstash/config/pipelines.yml
sudo install -m 0644 /opt/check-risk-elastic/docker-compose.override.yml /opt/elastic-stack/docker-compose.override.yml
cd /opt/elastic-stack
sudo docker compose config --quiet
В .env должен быть задан ELASTIC_PASSWORD пользователя elastic.
|
|
| 5 |
Проверьте pipeline Logstash и перезапустите только Logstash.
cd /opt/elastic-stack
sudo docker compose run --rm --no-deps logstash /usr/share/logstash/bin/logstash --path.settings /usr/share/logstash/config --config.test_and_exit -f /usr/share/logstash/pipeline/logstash.conf
sudo docker compose up -d --force-recreate --no-deps logstash
sudo docker compose ps logstash
В логах должны появиться Pipeline started и file input для /var/log/checkrisk/events.ndjson.
|
|
| 6 |
Создайте index template и Data Views.
cd /opt/elastic-stack
curl -sS -u elastic -H 'Content-Type: application/json' -X PUT http://127.0.0.1:9200/_index_template/check-risk-waf -d '{"index_patterns":["check-risk-waf-*"],"template":{"settings":{"number_of_shards":1,"number_of_replicas":0}},"priority":100}'
|
|
| 7 |
В Check Risk WAF включите отправку Syslog и задайте параметры.
Хост — внешний IP или DNS Elastic Stack Порт — 5514 Тип подключения — TCP Отправлять access-события — включить Отправлять audit-события — включить
Сохраните настройки отправки событий.
|
|
| 8 |
Отправьте тестовое RFC 6587 событие с хоста, который видит внешний адрес Elastic.
export CHECK_RISK_HOST=<PUBLIC_IP_OR_DNS>
python3 - <<'PY'
import datetime
import json
import os
import socket
import uuid
def send_event(event):
event["event_time"] = datetime.datetime.now(
datetime.timezone.utc
).isoformat(timespec="seconds").replace("+00:00", "Z")
data = json.dumps(event, separators=(",", ":")).encode()
with socket.create_connection(
(os.environ["CHECK_RISK_HOST"], 5514), 5
) as sock:
sock.sendall(str(len(data)).encode() + b" " + data)
print("SENT:", event["type"], event["request_id"])
send_event({
"type": "audit",
"request_id": "elastic-audit-" + uuid.uuid4().hex[:8],
"domain": "test.example.com",
"client_ip": "203.0.113.7",
"uri": "/audit-test",
"status": 403,
"rule_id": 942100,
"action": "BLOCK"
})
send_event({
"type": "access",
"request_id": "elastic-access-" + uuid.uuid4().hex[:8],
"domain": "test.example.com",
"client_ip": "203.0.113.7",
"uri": "/access-test",
"status": 200,
"action": "ALLOW"
})
PY
|
|
| 9 |
Перейдите в Management -> Stack Management -> Kibana Data Views -> Create a data view и добавьте индексы check-risk-waf-access-*, check-risk-waf-audit-* и check-risk-waf-raw-*.
|
|
| 10 |
Проверьте прохождение и получение событий.
В Discover выберите check-risk-waf-audit-* или check-risk-waf-access-* и нажмите Refresh.
|
|