Как установить Wazuh Server на Ubuntu 20.04
В этой статье рассказывается, как установить сервер Wazuh на Ubuntu 20.04. Wazuh server — это бесплатный инструмент мониторинга безопасности с открытым исходным кодом, который использует эластичный стек (ELK). Он используется для отслеживания событий безопасности на уровне приложений и ОС. Таким образом, вы можете получить информацию об обнаружении угроз, реагировании на инциденты и мониторинге целостности. В этом руководстве мы развернем Wazuh на одноузловом хосте Ubuntu 20.04 с установленным ELK на том же хосте.
Вы можете использовать Wazuh для следующих приложений:
- Анализ безопасности
- Анализ журнала
- Обнаружение уязвимости
- Безопасность контейнеров
- Облачная безопасность
Предпосылки
Установите указанные ниже пакеты, необходимые для работы 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 следующих пользователей:
- Wazuh_user — будет использоваться для пользователей, которым нужен доступ только для чтения к плагину Wazuh Kibana.
- 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.