По умолчанию панель управления Wazuh доступна через HTTPS, для чего использует встроенный самоподписанный сертификат. При использовании данной системы локально и с доступом только через IP-адрес сервера, на котором она установлена, будет вполне достаточно и самоподписанного сертификата. Но если вы планируете организовать доступ к панели управления через доменное имя при том, что сервером является публично доступный VPS, всё-таки необходимо использование TLS-сертификата от надёжного и глобально признанного центра сертификации, например, Let’s Encrypt. К тому же сертификатам от Let’s Encrypt доверяют все популярные браузеры, что позволит избежать предупреждений браузеров об использовании незащищённого соединения. Кроме того, в сертификатах Let’s Encrypt присутствует поддержка автоматического обновления, которое не требует вмешательства администратора системы.
Как настроить HTTPS для панели управления Wazuh
Для обеспечения доступности панели мониторинга по доменному имени с использованием защищённого соединения через HTTPS логичным выглядит применение веб-сервера Nginx. Он будет работать в качестве обратного прокси-сервера, который принимает запросы от пользователей и перенаправляет их на Wazuh Dashboard.
Чтобы установить Nginx, в терминале виртуального сервера выполните команду:
$ sudo apt install nginx
Для автоматизации процесса получения TLS-сертификата от Let’s Encrypt, а также его обновления, используется такой инструмент, как Certbot. Certbot доступен в виде Snap-пакета и может быть установлен в Ubuntu через систему управления пакетами Snap. Преимуществом использования Snap является в первую очередь то, что Snap-пакеты обновляются автоматически, и вы всегда будете иметь его последнюю версию.
Для установки Snap выполните команду:
$ sudo apt install snap
Затем установите базовый системный Snap-пакет, содержащий основные библиотеки, необходимые для работы многих Snap-приложений:
$ sudo snap install core
После чего запустите установку актуальной стабильной версии Certbot с полным доступом к системе:
$ sudo snap install --classic certbot
Чтобы сделать Certbot, установленный в качестве Snap-приложения, доступным как системную команду, создайте символическую ссылку на бинарный файл certbot
:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Далее необходимо изменить дефолтный TCP-порт, используемый сервисом Wazuh для доступа к панели управления. Чтобы это сделать, отредактируйте файл opensearch_dashboards.yml
, расположенный в директории /etc/wazuh-dashboard/
:
$ sudo nano /etc/wazuh-dashboard/opensearch_dashboards.yml
В нём вместо порта 443, указанного в строке server.port
, укажите любой другой доступный порт, например, 8080.
server.host: 0.0.0.0
opensearch.hosts: https://127.0.0.1:9200
server.port: 8080
opensearch.ssl.verificationMode: certificate
...
После чего закройте файл, сохранив изменения, и следующей командой отключите дефолтный сайт Nginx, удалив ссылку на его конфигурацию:
$ sudo unlink /etc/nginx/sites-enabled/default
Затем перейдите в каталог /etc/nginx/conf.d/
:
$ cd /etc/nginx/conf.d
В данном каталоге создайте файл, в котором будет описана конфигурация Nginx для веб-панели Wazuh. Именно в нём будут содержаться настройки обратного прокси-сервера:
$ sudo nano wazuh.conf
В файл wazuh.conf
добавьте следующую конфигурацию, где замените your-site-name.ru
на доменное имя вашего сайта, а X.X.X.X
– на IP-адрес вашего виртуального сервера. Если в файле /etc/wazuh-dashboard/opensearch_dashboards.yml
вы указали номер порта, отличный от 8080, то и в данном файле замените 8080 на номер порта, указанный в opensearch_dashboards.yml
:
server {
listen 80 default_server;
server_name your-site-name.ru;
location / {
proxy_pass https://X.X.X.X:8080;
proxy_set_header Host $host;
}
}
Закройте файл с сохранением внесённых изменений, после чего перезапустите службы wazuh-dashboard
и wazuh-manager
:
$ sudo systemctl restart wazuh-dashboard
$ sudo systemctl restart wazuh-manager
Установка сертификата Let’s Encrypt
В процессе получения TLS-сертификата с использованием утилиты Certbot подтверждение владения доменом происходит путём подключения Let’s Encrypt к вашему серверу через TCP-порт 80. Поэтому, чтобы данная проверка прошла успешно, необходимо в брандмауэре UFW создать разрешающее правило для профиля HTTP, который как раз и использует 80-й порт:
$ sudo ufw allow http
После чего запустите процедуру получения TLS-сертификата для установки на Nginx при помощи утилиты Certbot. В команде замените your-site-name.ru
на имя вашего домена:
$ sudo certbot --nginx -d your-site-name.ru
Сначала утилита предложит указать адрес электронной почты, на который будут приходить важные оповещения от Let’s Encrypt в отношении вашего сертификата. Затем нужно будет согласиться с условиями пользовательского соглашения Let’s Encrypt. Также необходимо дать согласие на получение сообщений от Electronic Frontier Foundation – партнёра и основателя проекта Let’s Encrypt. После чего утилита произведёт регистрацию вашего аккаунта в Let’s Encrypt, проверку владения вами указанного домена, а также получит и установит для Nginx TLS-сертификат.

После успешного завершения работы утилиты перезапустите Nginx:
$ sudo systemctl restart nginx
Затем на локальном компьютере откройте браузер и перейдите на https://your-site-name.ru
, где вместо your-site-name
укажите имя вашего домена. Это позволит убедиться в том, что панель управления Wazuh теперь работает через протокол HTTPS с использованием сертификата от доверенного центра сертификации.
