Система мониторинга безопасности Wazuh
Wazuh — это платформа безопасности с открытым исходным кодом, которая обеспечивает комплексную защиту (XDR и SIEM) для конечных точек и облачных вычислительных сред. Предназначена для того, чтобы помочь организациям обнаруживать угрозы, контролировать целостность и обеспечивать соответствие требованиям во всех объектах инфраструктуры, включая физические, виртуальные, контейнерные и облачные среды.
Установка сервера Wazuh в автономном режиме
Вы можете настроить сервер Wazuh, индексатор и панель мониторинга на одном хосте (комплексное развертывание) или установить их отдельно на нескольких хостах (распределённое развертывание), в зависимости от требований.
Примечание
Примечание Для выполнения следующих команд требуются права администратора.
Настройка брандмауэра (необязательно)
Настройте правила брандмауэра, чтобы разрешить доступ к требуемым портам:
$ sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent #Wazuh-indexer
$ sudo firewall-cmd --zone=public --add-port=55000/tcp --permanent #enrollment service
$ sudo firewall-cmd --zone=public --add-port=1514/tcp --permanent #agent communication
$ sudo firewall-cmd --zone=public --add-port=1515/tcp --permanent #enrollment service
#Применить изменения
$ sudo firewall-cmd --reload
#Проверить применение
$ sudo firewall-cmd --list-all
Создание файла конфигурации, подготовка сертификатов
Установите wazuh-configuration:
$ sudo dnf install wazuh-configuration
Подготовьте файл конфигурации сертификатов:
$ cp /etc/wazuh-configuration/config.yml.in /рабочая_директория/config.yml
Например, можно оставить файл в исходном каталоге:
$ cp /etc/wazuh-configuration/config.yml.in /etc/wazuh-configuration/config.yml
Или скопировать в текущий:
$ cp /etc/wazuh-configuration/config.yml.in config.yml
Изменение файла config.yml для настройки создания сертификата
Для развертывания «всё в одном» замените <indexer-node-ip>, <wazuh-manager-ip> и <dashboard-node-ip> на 127.0.0.1.
Для «распределённого развертывания»» обновите имена узлов и IP-адреса, указав правильные значения для сервера Wazuh, индексатора и панели мониторинга.
При необходимости добавьте дополнительные поля для узлов.
nodes:
# Wazuh indexer nodes
indexer:
- name: node-1
ip: 10.0.0.20
#- name: node-2
# ip: "<indexer-node-ip>"
#- name: node-3
# ip: "<indexer-node-ip>"
# Wazuh server nodes
# If there is more than one Wazuh server
# node, each one must have a node_type
server:
- name: wazuh-1
ip: 10.0.0.20
# node_type: master
#- name: wazuh-2
# ip: "<wazuh-manager-ip>"
# node_type: worker
#- name: wazuh-3
# ip: "<wazuh-manager-ip>"
# node_type: worker
# Wazuh dashboard nodes
dashboard:
- name: dashboard
ip: 10.0.0.20
Запустите:
$ sudo wazuh-genenerate-certs.sh
Если нужно укажите путь к config.yml чтобы сгенерировать сертификаты:
$ sudo wazuh-genenerate-certs.sh -c /etc/wazuh-configuration/config.yml
Для многоузлового кластера эти сертификаты необходимо позже развернуть во всех экземплярах Wazuh в вашем кластере.
Перенесите файл wazuh-install-files.tar c сертификатами в каталог на хосте(ах), где будет выполняться установка.
Установка компонентов Wazuh
В рабочем каталоге, куда вы разместили wazuh-install-files.tar, выполните следующую команду для распаковки установочных файлов:
$ tar -xvf wazuh-install-files.tar
Установка индексатора Wazuh
Для установки индексатора Wazuh выполните следующую команду:
$ sudo dnf install wazuh-indexer
Выполните следующие команды, заменив $NODE_NAME на имя узла-индексатора Wazuh, которое вы настраиваете, как указано в файле config.yml.
NODE_NAME=<INDEXER_NODE_NAME>, например, node-1.
Это развернёт SSL-сертификаты для шифрования сообщений между центральными компонентами Wazuh.
$ sudo mkdir /etc/wazuh-indexer/certs
$ sudo mv -n wazuh-install-files/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pem
$ sudo mv -n wazuh-install-files/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pem
$ sudo mv wazuh-install-files/admin-key.pem /etc/wazuh-indexer/certs/
$ sudo mv wazuh-install-files/admin.pem /etc/wazuh-indexer/certs/
$ sudo cp wazuh-install-files/root-ca.pem /etc/wazuh-indexer/certs/
$ sudo chmod 500 /etc/wazuh-indexer/certs
$ sudo chmod 400 /etc/wazuh-indexer/certs/*
$ sudo chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs
Переместите файлы сертификатов и ключей каждого узла (например, node-1.pem и node-1-key.pem) в соответствующую папку certs.
Эти файлы являются специфическими для каждого узла и не должны предоставляться другим пользователям.
Но не перемещайте сертификат root-ca.pem — скопируйте его, чтобы позже его можно было развернуть в других папках компонентов.
Отредактируйте /etc/wazuh-indexer/opensearch.yml и измените следующие параметры:
network.host– определяет адрес узла для HTTP и транспортного трафика. Он должен совпадать с адресом, используемым вconfig.ymlпри создании SSL-сертификатов.node.name– установите это значение на имя узла индексатора Wazuh, как определено вconfig.yml(напримерnode-1).cluster.initial_master_nodes– перечислите имена узлов, отвечающих требованиям мастера, как указано вconfig.yml.network.host: "10.0.0.20" node.name: "node-1" cluster.initial_master_nodes: - "node-1" #- "node-2" #- "node-3"
discovery.seed_hosts– содержит адреса узлов, подходящих для использования в качестве основного. Оставьте комментарий для настройки с одним узлом, а для конфигураций с несколькими узлами раскомментируйте его и укажите адреса узлов.discovery.seed_hosts: - "10.0.0.1" - "10.0.0.2" - "10.0.0.3"
plugins.security.nodes_dn– содержит список отличительных имён (DNS) сертификатов для всех узлов кластера индексатора Wazuh. Раскомментируйте и измените их в соответствии с вашими настройками иconfig.yml.plugins.security.nodes_dn: - "CN=node-1,OU=Wazuh,O=Wazuh,L=Mocscow,C=RU" - "CN=node-2,OU=Wazuh,O=Wazuh,L=Mocscow,C=RU" - "CN=node-3,OU=Wazuh,O=Wazuh,L=Mocscow,C=RU"
Включите и запустите службу индексирования Wazuh. Убедитесь, что индексатор Wazuh активен и запущен.
$ sudo systemctl daemon-reload
$ sudo systemctl enable wazuh-indexer
$ sudo systemctl start wazuh-indexer
$ sudo systemctl status wazuh-indexer
Как только все узлы индексатора Wazuh будут запущены, выполните сценарий indexer-security-init.sh на любом узле индексатора Wazuh.
Это обновит информацию о сертификате и запустит кластер.
$ sudo /usr/share/wazuh-indexer/bin/indexer-security-init.sh
Чтобы убедиться в успешности установки выполните следующую команду.
$ sudo curl -XGET https://10.0.0.20:9200 -u admin:admin -k
Пример вывода
{
"name" : "node-1",
"cluster_name" : "wazuh-cluster",
"cluster_uuid" : "6hQpHd5cSzCLrhFo0T-Crg",
"version" : {
"number" : "7.10.2",
"build_type" : "rpm",
"build_hash" : "eee49cb340edc6c4d489bcd9324dda571fc8dc03",
"build_date" : "2023-09-20T23:54:29.889267151Z",
"build_snapshot" : false,
"lucene_version" : "9.7.0",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}
Установка Wazuh-сервер
Выполните следующие команды, чтобы импортировать ключ Wazuh и установить Wazuh-менеджер.
$ sudo dnf install wazuh-manager
Сохраните имя пользователя и пароль индексатора Wazuh в хранилище ключей Wazuh-менеджер с помощью инструмента wazuh-keystore.
Учётными данными по умолчанию для автономной установки являются admin:admin.
$ echo '<INDEXER_USERNAME>' | /var/ossec/bin/wazuh-keystore -f indexer -k username
$ echo '<INDEXER_PASSWORD>' | /var/ossec/bin/wazuh-keystore -f indexer -k password
Включите и запустите службу Wazuh-менеджер. Убедитесь, что Wazuh-менеджер активен и запущен.
$ sudo systemctl daemon-reload
$ sudo systemctl enable wazuh-manager
$ sudo systemctl start wazuh-manager
$ sudo systemctl status wazuh-manager
Установка Filebeat
Filebeat должен быть установлен и настроен на том же сервере, что и Wazuh-менеджер. Для установки Filebeat выполните следующую команду:
$ sudo dnf install filebeat
Отредактируйте /etc/filebeat/filebeat.yml и измените следующие значения:
hosts: список узлов индексатора Wazuh, к которым необходимо подключиться. Вы можете использовать либо IP-адреса, либо имена хостов.
По умолчанию для хоста задано значение localhost — hosts: ["127.0.0.1:9200"]. Замените его соответствующим образом на ваш адрес индексатора Wazuh.
Если у вас более одного узла индексатора Wazuh, вы можете разделить адреса запятыми. Например, hosts: ["10.0.0.1:9200", "10.0.0.2:9200", "10.0.0.3:9200"].
# Wazuh - Filebeat configuration file
output.elasticsearch:
hosts: ["10.0.0.20:9200"]
protocol: https
username: ${username}
password: ${password}
Создайте хранилище ключей Filebeat для безопасного хранения учётных данных для проверки подлинности.
$ sudo filebeat keystore create
Добавьте имя пользователя и пароль admin:admin в хранилище ключей «Secrets».
$ sudo echo admin | filebeat keystore add username --stdin --force
$ sudo echo admin | filebeat keystore add password --stdin --force
Замените $NODE_NAME на имя сертификата вашего серверного узла Wazuh, которое используется в config.yml при создании сертификатов.
NODE_NAME=SERVER_NODE_NAME>, например, wazuh-1. Затем переместите сертификаты в соответствующее им место.
$ sudo mkdir /etc/filebeat/certs
$ sudo mv -n wazuh-install-files/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem
$ sudo mv -n wazuh-install-files/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem
$ sudo cp wazuh-install-files/root-ca.pem /etc/filebeat/certs/
$ sudo chmod 500 /etc/filebeat/certs
$ sudo chmod 400 /etc/filebeat/certs/*
$ sudo chown -R root:root /etc/filebeat/certs
Включите и запустите службу Filebeat. Убедитесь, что Filebeat активен и запущен.
$ sudo systemctl daemon-reload
$ sudo systemctl enable filebeat
$ sudo systemctl start filebeat
$ sudo systemctl status filebeat
Выполните следующую команду, чтобы убедиться, что Filebeat успешно установлен.
$ sudo filebeat test output
Пример вывода:
elasticsearch: https://10.0.0.20:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 10.0.0.20
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 7.10.2
Серверный узел Wazuh успешно установлен.
Установка панели мониторинга Wazuh (wazuh-dashboard)
$ sudo dnf install wazuh-dashboard
Замените $NODE_NAME на имя вашего узла информационной панели Wazuh, которое используется в config.yml для создания сертификатов.
NODE_NAME=<DASHBOARD_NODE_NAME>, например, dashboard. Затем переместите сертификаты в соответствующее расположение.
$ sudo mkdir /etc/wazuh-dashboard/certs
$ sudo mv -n wazuh-install-files/$NODE_NAME.pem /etc/wazuh-dashboard/certs/dashboard.pem
$ sudo mv -n wazuh-install-files/$NODE_NAME-key.pem /etc/wazuh-dashboard/certs/dashboard-key.pem
$ sudo cp wazuh-install-files/root-ca.pem /etc/wazuh-dashboard/certs/
$ sudo chmod 500 /etc/wazuh-dashboard/certs
$ sudo chmod 400 /etc/wazuh-dashboard/certs/*
$ sudo chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs
Отредактируйте /etc/wazuh-dashboard/opensearch_dashboards.yml и измените следующие значения:
server.host: этот параметр определяет узел внутреннего сервера. Чтобы разрешить удалённым пользователям подключаться, установите значение равным IP-адресу или DNS-имени панели мониторинга Wazuh. Значение0.0.0.0будет принимать все доступные IP-адреса хоста.opensearch.hosts: URL-адреса экземпляров индексатора Wazuh, которые будут использоваться для всех ваших запросов. Панель мониторинга Wazuh можно настроить для подключения к нескольким узлам индексатора Wazuh в одном кластере. Адреса узлов можно разделять запятыми. Например,["https://10.0.0.2:9200", "https://10.0.0.3:9200","https://10.0.0.4:9200"].
server.host: 10.0.0.20
server.port: 443
opensearch.hosts: https://10.0.0.20:9200
opensearch.ssl.verificationMode: certificate
Включите и запустите панель мониторинга Wazuh. Убедитесь, что панель мониторинга Wazuh активна и запущена.
$ sudo systemctl daemon-reload
$ sudo systemctl enable wazuh-dashboard
$ sudo systemctl start wazuh-dashboard
$ sudo systemctl status wazuh-dashboard
Отредактируйте файл /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml и замените значение url на IP-адрес или имя главного узла сервера Wazuh.
hosts:
- default:
url: https://10.0.0.20
port: 55000
username: wazuh-wui
password: wazuh-wui
run_as: false
Проверьте доступ к веб-интерфейсу https://10.0.0.20.
Username: admin
Password: admin
Обеспечение безопасности установки Wazuh
Вы установили и настроили все центральные компоненты Wazuh. Рекомендуется изменить учётные данные по умолчанию, чтобы защитить вашу инфраструктуру от возможных атак.
Используйте инструмент паролей Wazuh для смены паролей всех внутренних пользователей.
$ sudo /usr/share/wazuh-indexer/plugins/opensearch-security/tools/wazuh-passwords-tool.sh --api --change-all --admin-user wazuh --admin-password wazuh
Сохраните новый пароль индексатора Wazuh в хранилище ключей менеджера Wazuh. Перезапустите службу менеджера Wazuh.
$ sudo /var/ossec/bin/wazuh-keystore -f indexer -k password -v <NEW_PASSWORD>
$ sudo systemctl start wazuh-manager
$ sudo systemctl status wazuh-manager
Добавьте новый пароль в хранилище ключей «Filebeat Secrets». Перезапустите службу Filebeat.
$ sudo echo "<NEW_PASSWORD>" | filebeat keystore add password --stdin --force
$ sudo systemctl restart filebeat
$ sudo filebeat test output
Установка агента wazuh
$ sudo dnf install wazuh-agent
Отредактируйте файл /var/ossec/etc/ossec.conf, замените MANAGER_IP указав IP-адрес главного узла сервера Wazuh:
<ossec_config>
<client>
<server>
<address>MANAGER_IP</address>
<port>1514</port>
<protocol>tcp</protocol>
</server>