Как установить Wazuh Server на Ubuntu 20.04

Как установить Wazuh Server на Ubuntu 20.04

 

В этой статье рассказывается, как установить сервер Wazuh на Ubuntu 20.04. Wazuh server — это бесплатный инструмент мониторинга безопасности с открытым исходным кодом, который использует эластичный стек (ELK). Он используется для отслеживания событий безопасности на уровне приложений и ОС. Таким образом, вы можете получить информацию об обнаружении угроз, реагировании на инциденты и мониторинге целостности. В этом руководстве мы развернем Wazuh на одноузловом хосте Ubuntu 20.04 с установленным ELK на том же хосте.

Вы можете использовать Wazuh для следующих приложений:

  1. Анализ безопасности
  2. Анализ журнала
  3. Обнаружение уязвимости
  4. Безопасность контейнеров
  5. Облачная безопасность

Предпосылки

Установите указанные ниже пакеты, необходимые для работы Wazuh Manager.

sudo apt update
sudo apt install curl apt-transport-https unzip wget libcap2-bin software-properties-common lsb-release gnupg2

Установите Java:

sudo apt install default-jre

Установите Wazuh Server на Ubuntu 20.04

Следующие шаги помогут нам настроить сервер Wazuh на Ubuntu 20.04.

Добавить ключ GPG

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | sudo apt-key add -

Добавьте репозиторий Wazuh

echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list

Обновите систему

sudo apt update

Установите Wazuh Manager.

sudo apt install wazuh-manager

Запустите и включите службу

sudo systemctl daemon-reload
sudo systemctl enable --now wazuh-manager

Проверьте статус Wazuh manager и убедитесь, что он запущен и работает

systemctl status wazuh-manager

Проверить статус услуги:

$ systemctl status wazuh-manager
● wazuh-manager.service - Wazuh manager
     Loaded: loaded (/lib/systemd/system/wazuh-manager.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-04-26 09:13:56 UTC; 22s ago
    Process: 252739 ExecStart=/usr/bin/env ${DIRECTORY}/bin/ossec-control start (code=exited, status=0/SUCCESS)
      Tasks: 121 (limit: 4580)
     Memory: 472.5M
     CGroup: /system.slice/wazuh-manager.service
             ├─252805 /var/ossec/framework/python/bin/python3 /var/ossec/api/scripts/wazuh-apid.py
             ├─252844 /var/ossec/bin/ossec-authd
             ├─252860 /var/ossec/bin/wazuh-db
             ├─252883 /var/ossec/bin/ossec-execd
             ├─252897 /var/ossec/bin/ossec-analysisd
             ├─252958 /var/ossec/bin/ossec-syscheckd
             ├─252975 /var/ossec/bin/ossec-remoted
             ├─253006 /var/ossec/bin/ossec-logcollector
             ├─253024 /var/ossec/bin/ossec-monitord
             └─253047 /var/ossec/bin/wazuh-modulesd

Apr 26 09:13:47 node3 env[252739]: Started wazuh-db...
Apr 26 09:13:48 node3 env[252739]: Started ossec-execd...
Apr 26 09:13:49 node3 env[252739]: Started ossec-analysisd...
Apr 26 09:13:50 node3 env[252739]: Started ossec-syscheckd...
Apr 26 09:13:51 node3 env[252739]: Started ossec-remoted...
Apr 26 09:13:52 node3 env[252739]: Started ossec-logcollector...
Apr 26 09:13:53 node3 env[252739]: Started ossec-monitord...
Apr 26 09:13:54 node3 env[252739]: Started wazuh-modulesd...
Apr 26 09:13:56 node3 env[252739]: Completed.
Apr 26 09:13:56 node3 systemd[1]: Started Wazuh manager.

Установите ELK Stack в Ubuntu 20.04

Установите Elasticsearch из Open Distro, хорошо масштабируемой полнотекстовой поисковой системы. Этот пакет предлагает расширенную безопасность, оповещения, глубокий анализ производительности, управление индексами и многие другие функции.

sudo apt install elasticsearch-oss opendistroforelasticsearch

Загрузите пользовательский файл конфигурации, /etc/elasticsearch/elasticsearch.ymlкак показано ниже:

curl -so /etc/elasticsearch/elasticsearch.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/7.x/elasticsearch_all_in_one.yml

Настройте роли и пользователей Kibana с помощью следующих шаблонов:

curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/roles/roles.yml

curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles_mapping.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/roles/roles_mapping.yml

curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/roles/internal_users.yml

Приведенные выше команды добавляют в Kibana следующих пользователей:

  1. Wazuh_user — будет использоваться для пользователей, которым нужен доступ только для чтения к плагину Wazuh Kibana.
  2. Wazuh_admin — для пользователей, которым нужны административные привилегии

Также создаются две дополнительные роли, чтобы предоставить пользователям соответствующие разрешения.

  • wazuh_ui_user — предоставляет права wazuh_user на чтение индексов Wazuh.
  • wazuh_ui_admin — позволяет wazuh_admins выполнять чтение / запись, управление и индексацию индексов wazuh.

Установить сертификаты

Мы можем настроить сертификаты, которые будут использоваться для связи TLS между Elasticsearch и Wazuh.

Удалить демонстрационные сертификаты:

sudo rm -f /etc/elasticsearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}

1. Сгенерируйте новые сертификаты:

sudo mkdir /etc/elasticsearch/certs && cd /etc/elasticsearch/certs
sudo curl -so ~/search-guard-tlstool-1.8.zip https://maven.search-guard.com/search-guard-tlstool/1.8/search-guard-tlstool-1.8.zip

2. Извлеките загруженный файл.

sudo unzip ~/search-guard-tlstool-1.8.zip -d ~/searchguard

3. Загрузите предварительно настроенный файл search-guard.yml.

sudo curl -so ~/searchguard/search-guard.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.0/resources/open-distro/searchguard/search-guard-aio.yml

4.  Запустите сценарий Search Guard для создания сертификатов:

sudo ~/searchguard/tools/sgtlstool.sh -c ~/searchguard/search-guard.yml -ca -crt -t /etc/elasticsearch/certs/

5. Удалите ненужные файлы после создания сертификатов.

sudo rm /etc/elasticsearch/certs/client-certificates.readme

6. Включите и запустите службу Elasticsearch.

sudo systemctl enable --now elasticsearch

7. Загрузите новые сертификаты, запустив сценарий администратора безопасности Elasticsearch:

sudo /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/ -nhnv -cacert /etc/elasticsearch/certs/root-ca.pem -cert /etc/elasticsearch/certs/admin.pem -key /etc/elasticsearch/certs/admin.key

Вы должны увидеть результат, аналогичный приведенному ниже:

WARNING: JAVA_HOME not set, will use /usr/bin/java
Open Distro Security Admin v7
Will connect to localhost:9300 ... done
Connected as CN=admin,OU=Docu,O=Wazuh,L=California,C=US
Elasticsearch Version: 7.10.0
Open Distro Security Version: 1.12.0.0
Contacting elasticsearch cluster 'elasticsearch' and wait for YELLOW clusterstate ...
Clustername: elasticsearch
Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index does not exists, attempt to create it ... done (0-all replicas)
Populate config from /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/
Will update '_doc/config' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/config.yml 
   SUCC: Configuration for 'config' created or updated
Will update '_doc/roles' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles.yml 
   SUCC: Configuration for 'roles' created or updated
Will update '_doc/rolesmapping' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles_mapping.yml 
   SUCC: Configuration for 'rolesmapping' created or updated
Will update '_doc/internalusers' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml 
   SUCC: Configuration for 'internalusers' created or updated
Will update '_doc/actiongroups' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/action_groups.yml 
   SUCC: Configuration for 'actiongroups' created or updated
Will update '_doc/tenants' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/tenants.yml 
   SUCC: Configuration for 'tenants' created or updated
Will update '_doc/nodesdn' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/nodes_dn.yml 
   SUCC: Configuration for 'nodesdn' created or updated
Will update '_doc/whitelist' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/whitelist.yml 
   SUCC: Configuration for 'whitelist' created or updated
Will update '_doc/audit' with /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/audit.yml 
   SUCC: Configuration for 'audit' created or updated
Done with success

Выполните команду ниже, чтобы убедиться, что установка прошла успешно:

curl -XGET https://localhost:9200 -u admin:admin -k

Ответ должен быть следующим:

{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "9JuWWZBHSX65WNZioHQcMg",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "oss",
    "build_type" : "deb",
    "build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
    "build_date" : "2020-11-09T21:30:33.964949Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Вы можете удалить плагин анализатора производительности Open Distro for Elasticsearch, который устанавливается по умолчанию и иногда может потреблять ресурсы. Используйте команду ниже, чтобы удалить его:

sudo /usr/share/elasticsearch/bin/elasticsearch-plugin remove opendistro_performance_analyzer

Установите Filebeat в Ubuntu 20.04

Filebeat используется для отправки предупреждений и событий с сервера Wazuh в Elasticsearch.

sudo apt install filebeat

Загрузите файл конфигурации filebeat ниже, который будет использоваться для пересылки предупреждений wazuh в Elasticsearch.

curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/filebeat/7.x/filebeat_all_in_one.yml

Загрузите шаблон предупреждений с помощью следующей команды для Elasticsearch:

curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.1/extensions/elasticsearch/7.x/wazuh-template.json

chmod go+r /etc/filebeat/wazuh-template.json

Загрузите модуль Wazuh FIlebeat:

sudo curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.1.tar.gz | tar -xvz -C /usr/share/filebeat/module

Скопируйте сертификаты Elasticsearch в  /etc/filebeat/certs

sudo mkdir /etc/filebeat/certs && cp /etc/elasticsearch/certs/root-ca.pem /etc/filebeat/certs/
sudo mv /etc/elasticsearch/certs/filebeat* /etc/filebeat/certs/

Запустить и включить службу Filebeat

sudo systemctl enable --now filebeat

Подтвердите конфигурацию Filebeat с помощью следующей команды:

sudo filebeat test output

Пример вывода:

elasticsearch: https://127.0.0.1:9200...
  parse url... OK
  connection...
    parse host... OK
    dns lookup... OK
    addresses: 127.0.0.1
    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.0

Установите Kibana в Ubuntu 20.04

Kibana — это веб-интерфейс, который помогает нам визуализировать и анализировать события, хранящиеся в Elasticsearch.

Используйте команду ниже, чтобы установить Kibana в Ubuntu 20.04.

sudo apt-get install opendistroforelasticsearch-kibana

Загрузите файл конфигурации для Kibana

curl -so /etc/kibana/kibana.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/kibana/7.x/kibana_all_in_one.yml

Назначьте правильные разрешения следующим файлам

sudo chown -R kibana:kibana /usr/share/kibana/optimize
sudo chown -R kibana:kibana /usr/share/kibana/plugins

Установите плагин Kibana для Wazuh. Это нужно сделать из домашнего каталога Kibana.

cd /usr/share/kibana
sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.1.5_7.10.0-1.zip

Скопируйте сертификаты Elasticsearch в /etc/kibana/certs:

sudo mkdir /etc/kibana/certs
sudo cp /etc/elasticsearch/certs/root-ca.pem /etc/kibana/certs/
sudo mv /etc/elasticsearch/certs/kibana_http.key /etc/kibana/certs/kibana.key
sudo mv /etc/elasticsearch/certs/kibana_http.pem /etc/kibana/certs/kibana.pem

Привяжите сокет Kibana к привилегированному порту 443:

sudo setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node

Запустите и включите сервис Kibana

sudo systemctl enable --now kibana

Разрешить Kibana через брандмауэр

sudo ufw allow 443/tcp

Теперь вы можете получить доступ к интерфейсу wazuh kibana через

URL: https://<wazuh_server_ip>
user: admin
password: admin

Вы можете войти в систему и перейти к просмотру доступных метрик из Wazuh:\

С помощью описанных выше шагов мы успешно настроили сервер Wazuh на Ubuntu 20.04.