Защита локальной сети используя Wazuh на Raspberry Pi

Защита локальной сети используя Wazuh Raspberry Pi

В статье покажу, как защитить локальную сеть с помощью Wazuh — платформы для мониторинга безопасности с открытым исходным кодом на Raspberry Pi. Кроме того, мы расширим возможности системы защиты локальной сети используя Telegram для получения уведомлений.

Еще по теме: HoneyPI — ханипот для хакеров на Raspberry Pi

Защита локальной сети используя Wazuh на Raspberry Pi

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

Возьмите свой Raspberry Pi и пристегнитесь — пришло время сделать локальную сеть более защищенной.

Для защиты домашней сети нам понадобится следующее железо:

  • Raspberry Pi 4 Model B — 8 ГБ оперативной памяти.
  • Карта памяти Micro SD — в идеале 125 Гб, но можно обойтись и 32 Гб.
  • Для Raspberry мы будем использовать Ubuntu Server 22.04.5 LTS (64-bit).
Разработчики Wazuh рекомендуют использовать минимум 8 ГБ RAM для 1-25 агентов и 50 ГБ Storage для 90 дней мониторинга.

Для установки образа можно использовать программу Raspberry Pi Imager, которая значительно упрощает процесс, поскольку она сама предоставит полный список и вам не придется искать подходящий образ в Интернете.

Если будете использовать Raspberry Pi Imager, тогда:

  1. Выберите OS —> Other general-purpose OS (Другие ОС общего назначения) —> Ubuntu —> Ubuntu Server 22.04.5 LTS (64-bit)
  2. Выберите Хранилище —> Выберите SD-карту
  3. Прежде чем нажать кнопку Write (Записать), зайдите в настройки в правом нижнем углу:

Raspberry Pi Imager

Здесь можно предварительно настроить доступ к ssh, а также подключение Raspberry Pi к Wifi, что избавит вас от необходимости создавать вручную все эти openssh-серверные штуки.

В плане безопасности использование парольной аутентификации для SSH, конечно, не является лучшей практикой, чем защита паролем открытого ключа, но давайте упростим задачу для наших новичков.

Изначально я бы не стал использовать Wazuh в качестве имени хоста, так как это может помочь кому-то идентифицировать ваше устройство.

Наконец, нажимайте кнопку Write (Записать).

После того как вы установили новую ОС в Raspberry Pi, вы можете дать ему несколько минут на подключение к сети.

Чтобы найти Raspberry Pi в сети можно использовать Nmap:

В списке устройств локальной сети должно быть указано имя хоста wazuh.

Установка Wazuh с помощью Elastic Stack

Есть несколько вещей, которые необходимо знать об установке Wazuh на Raspberry Pi.

Изначально компания Wazuh проделала большую работу, предоставив готовый скрипт, позволяющий установить пакет Wazuh за несколько минут, что в основном применимо для архитектуры amd, а в Raspberry, как вы знаете, используется arm.

В нашем случае скрипт не подходит, но не беда, можно заюзать Elastic Stack — набор инструментов для обработки, анализа и визуализации больших данных в реальном времени. Включает Elasticsearch для хранения и поиска данных, Kibana для визуализации, и Logstash для сбора, обработки и трансформации данных перед их загрузкой в Elasticsearch и многое другое.

Установка Wazuh Elastic Stack

Описанные ниже шаги и инструкции (ссылки) действительны для Wazuh 4.4:

  1. Для установки необходимы дополнительные пакеты, такие как curl или unzip, которые будут использоваться в дальнейших шагах. Однако этот шаг можно пропустить, если curl и unzip уже установлены на сервере.
  2. Elasticsearch представляет собой масштабируемый механизм полнотекстового поиска и аналитики.
  3. Wazuh Server собирает и анализирует данные от развернутых агентов. На нем работают менеджер Wazuh, Wazuh API и Filebeat. Первым шагом в настройке Wazuh является добавление на сервер репозитория Wazuh, затем — самого менеджера.
  4. Filebeat — этот инструмент обеспечивает безопасную пересылку оповещений и архивных событий в Elasticsearch.
  5. Kibana представляет собой гибкий и интуитивно понятный веб-интерфейс для поиска и визуализации событий и архивов, хранящихся в Elasticsearch.

Ознакомьтесь с этими пошаговыми руководствами и убедитесь, что выбрали правильный менеджер пакетов, а также менеджер систем и сервисов.

В данном случае, так как мы используем Ubuntu Server, можно использовать apt с systemctl.

Развертывание агентов

Теперь у нас есть сервер Wazuh Server с панелью управления:

Панель управления Wazuh

Пришло время установить агенты.

Хорошая новость — установка агентa происходит с использованием GUI в MacOs или Windows.

В обоих случаях нужно просто запустить исполняемый файл.

Теперь нужно будет разобраться с агентом, кому он должен докладывать.

В моем случае IP-адрес Raspberry Pi — 192.168.1.43.

Для регистрации агента есть два способа:

Мы выберем первый способ.

MacOS и Linux

1. Запустите терминал от имени пользователя root, отредактируйте файл конфигурации агента Wazuh /Library/Ossec/etc/ossec.conf.

2. Добавьте IP-адрес менеджера Wazuh:

Windows

Сценарий тот же самый, разница лишь в расположении агента, так как каталог установки агента Wazuh зависит от архитектуры хоста:

Для 64-битных систем:

Для 32-разрядных систем:

Используя учетную запись администратора, измените конфигурационный файл агента Wazuh ossec.conf в каталоге установки.

Подожддите несколько минут на получение данных Wazuh.

Настройка уведомлений с помощью Telegram

Теперь, когда у вас есть SIEM, пришло время настроить систему уведомлений. Wazuh обеспечивает интеграцию в виде Slack, Jira или электронной почты, но давайте будем честными, это определенно не самый удобный способ получить уведомление о событии безопасности в вашем доме.

Возможно, вы считаете, что создание бота потребует от вас кодинг и многочасового изучения документации по API. На самом деле это так же просто, как отправить сообщение в Telegram: достаточно обратиться к BotFather.

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

Использование BotFather Telegram для получения уведомлений

Затем создайте своего бота и получите свой HTTP API Token:

Настройка BotFather Telegram API для получения уведомлений

Управление пользовательской интеграцией с Telegram

Для решения этой задачи важно понимать два момента:

  • Локальная конфигурация: /var/ossec/etc/ossec.conf — где находится конфигурация Wazuh.
  • Расположение интеграции: /var/ossec/integrations/ — где находятся ваши интеграции.

Чтобы упростить задачу, после создания интеграции необходимо сообщить локальной конфигурации о существовании этой пользовательской интеграции, обратившись к ней.

Для работы скрипта необходимо выполнить два требования:

Установить пакет requests, поскольку наш Python-скрипт будет обращаться к API Telegram

Понадобится Telegram ChatID.

Прежде чем найти этот идентификатор, отправьте своему боту небольшое сообщение «hello«, чтобы между вами был создан чат.

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

Скрипт для пользовательской интеграции

Перейдите в каталог /var/ossec/integrations/ и выполните следующие команды:

Скопируйте/вставьте следующий скрипт (не забудьте изменить ChatID):

Давайте рассмотрим его пошагово.

  1. В начале используется шебанг #!/usr/bin/env python3 для указания на то, что скрипт должен выполняться с использованием Python версии 3.x.
  2. Устанавливается кодировка UTF-8 для обработки символов в коде.
  3. Импортируются необходимые модули: sys, json, и, при наличии, requests.
  4. Определяется переменная CHAT_ID, которая представляет собой идентификатор чата.
  5. Создается функция create_message, которая формирует сообщение на основе входных данных.
  6. Чтение конфигурационных параметров из аргументов командной строки: пути к файлу с данными алерта и адресу для отправки уведомлений.
  7. Чтение алерта из файла и его преобразование из JSON в объект Python.
  8. Формирование сообщения с помощью функции create_message.
  9. Отправка запроса сформированным сообщением на указанный адрес с использованием модуля requests.
  10. Вывод отладочной информации в файл.

Сделайте скрипт исполняемым и назначьте ему соответствующие права:

Имя интеграции должно начинаться с custom-, иначе Wazuh не поймет, чего вы от него хотите.

И последнее, но не менее важное — пора завершить обновление: /var/ossec/etc/ossec.conf следующим образом:

Перезапустите менеджер Wazuh:

После перезапуска вы увидите первые уведомления:

Защита локальной сети Wazuh Raspberry Pi

Заключение

Поздравляю вы настроили Wazuh на Raspberry Pi с получениеми уведомлений через Telegram.

Надеюсь статья поможет защитить локальную сеть.

ПОЛЕЗНЫЕ ССЫЛКИ:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *