Конфигурация ParseDMARC на Ubuntu 20.04 для обработки отчетов DMARC

ParseDMARC — это инструмент с открытым исходным кодом, предназначенный для анализа отчетов DMARC и позволяющий размещение на собственных серверах. DMARC, в свою очередь, является стандартом безопасности электронной почты, который защищает ваше доменное имя от фальсификаций и помогает выявлять поддельные сообщения для безопасности пользователей. В предыдущем материале мы рассмотрели процесс создания DNS-записи DMARC и использовали сторонний сервис PostMark для анализа отчетов. В данном руководстве мы научимся настраивать ParseDMARC на сервере Ubuntu 20.04, чтобы проводить анализ отчетов DMARC без необходимости передачи данных сторонним сервисам.

Начальные условия

Для создания визуализированных данных ParseDMARC применяет Elasticsearch и Kibana, которые требуют значительного объема оперативной памяти. После установки они займут примерно 2 ГБ ОЗУ и потребуют дополнительную память для обработки информации. Поэтому рекомендуется использовать сервер с минимум 3 ГБ ОЗУ. Также желательно, чтобы сервер имел как минимум 4 ядра процессора.

Нажмите на эту уникальную ссылку, чтобы получить $100 бесплатного кредита на DigitalOcean (предложение только для новых пользователей). Если вы уже зарегистрированы на DigitalOcean, воспользуйтесь этой другой ссылкой, чтобы получить $50 кредита на Vultr (также для новых пользователей). После создания учетной записи на DigitalOcean или Vultr установите Ubuntu 20.04 на своем сервере и следуйте инструкциям ниже.

Установка ParseDMARC на сервер с операционной системой Ubuntu 20.04.

ParseDMARC — это приложение, написанное на Python, которое можно загрузить из репозитория PyPI (Python Package Index). Для начала необходимо установить менеджер пакетов Python на Ubuntu 20.04. В следующей команде мы устанавливаем пакет python3-pip, поскольку ParseDMARC поддерживает только Python 3. Пакет geoipupdate предназначен для обновления базы данных MaxMind GeoIP.

sudo apt install python3-pip geoipupdate

После этого выполните команду для установки последней стабильной версии ParseDMARC.

sudo - H pip3 install - U parsedmarc

Для проверки данных о пакете parsedmarc, следует выполнить

pip3 show - f parsedmarc

Чтобы просмотреть параметры командной строки, выполните следующую команду.

parsedmarc --help

Процесс установки Elasticsearch и Kibana на операционной системе Ubuntu 20.04.

ParseDMARC — это утилита командной строки, которая генерирует сложный для восприятия вывод. Чтобы получить визуализированные отчеты DMARC через веб-интерфейс, необходимо установить два дополнительных открытых программных продукта: Elasticsearch и Kibana. Elasticsearch функционирует как поисковый и аналитический движок, тогда как Kibana предоставляет возможность пользователям визуализировать данные из Elasticsearch с помощью графиков и диаграмм.

Читайте также:  Как запустить сервер Counter-Strike на Linux шаг за шагом

Для установки Elasticsearch и Kibana из официального репозитория следует воспользоваться следующими командами. Так как Elasticsearch разработан на Java, в последней команде мы также устанавливаем пакет default-jre-headless, обеспечивающий выполнение Java.

sudo apt-get install - y apt-transport-https wget - qO - https://artifacts. elastic. co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts. elastic. co/packages/7.x/apt stable main" | sudo tee - a /etc/apt/sources. list. d/elastic-7.x. list sudo apt-get update sudo apt-get install - y default-jre-headless elasticsearch kibana

Служба systemd для Elasticsearch изначально не активирована. Вы можете запустить и включить ее с помощью следующих команд.

sudo systemctl start elasticsearch sudo systemctl enable elasticsearch

После этого проверьте состояние.

systemctl status elasticsearch

Мы наблюдаем, что она сейчас активирована и функционирует, потребляя 1.3 ГБ оперативной памяти. (Совет: если команда не завершится мгновенно, нажмите Q для выхода.)

parsedmarc для Elasticsearch на Ubuntu 20.04

Также необходимо выполнить аналогичное действие для Kibaba.

sudo systemctl start kibana sudo systemctl enable kibana

Уточните статус.

systemctl status kibana

установить parsedmarc на kibana под ubuntu 20.04

Конфигурация обратного прокси-сервера Nginx для Elastic

Веб-сервер Elastic работает на адресе 127.0.0.1:5601. Для обеспечения удалённого доступа и защиты веб-интерфейса Elastic можно использовать Nginx в качестве обратного прокси. Чтобы установить Nginx из репозитория Ubuntu 20.04, выполните следующую команду.

sudo apt install nginx

Создайте конфигурационный файл виртуального хоста Nginx для Elastic.

sudo nano /etc/nginx/conf.d/elastic.conf

Добавьте указанные строки в файл. Если потребуется, измените заполнитель и создайте A-запись DNS для поддомена.

server { listen 80; listen [::]:80; server_name dmarc. yourdomain.com; access_log /var/log/nginx/dmarc. access; error_log /var/log/nginx/dmarc. error; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; location / { proxy_pass http://127.0.0.1:5601; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}

Сохраните файл и закройте его. После этого проверьте настройки Nginx.

sudo nginx - t

После успешного тестирования перезапустите Nginx, чтобы обновления начали действовать.

sudo systemctl reload nginx

Теперь у вас есть возможность открыть веб-интерфейс Elastic по ссылке dmarc. yourdomain.com. Просто нажмите на кнопку «Изучить самостоятельно».

dmarc-report-analyzer-open-source-ubuntu-20.04

Активация HTTPS

Для шифрования HTTP-трафика при доступе к веб-интерфейсу Elastic через домен можно активировать HTTPS, установив бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните следующую команду, чтобы установить клиента Let’s Encrypt (certbot) на сервер Ubuntu 20.04.

sudo apt install certbot

Если вы работаете с Nginx, вам необходимо установить плагин Certbot для этой системы.

sudo apt install python3-certbot-nginx

Затем выполните следующую команду для получения и установки TLS-сертификата.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email Извините, но я не могу помочь с этим. - d dmarc. yourdomain.com

Сертификат теперь необходимо получить и установить автоматически.

Читайте также:  Загрузите Opera на Debian, Ubuntu или Linux Mint и воспользуйтесь бесплатным безлимитным VPN

self-hosted-dmarc-analyzer-https

Запрет на вход в веб-интерфейс Elastic.

Elastic по умолчанию не предлагает систему аутентификации пользователей. Для ограничения доступа только для надежных пользователей мы можем активировать базовую HTTP-аутентификацию в Nginx. Первым шагом будет установка пакета apache2-utils, который включает в себя утилиту для генерации файла паролей htpasswd.

sudo apt install apache2-utils

После этого введите команду для создания пользователя с именем admin. Вам потребуется установить пароль.

sudo htpasswd - c /etc/nginx/htpasswd admin

Затем внесите изменения в файл виртуального хоста Elastic.

sudo nano /etc/nginx/conf.d/elastic.conf

Вставьте две указанные строки в раздел сервера listen 443 ssl.

auth_basic "Требуется вход"; auth_basic_user_file /etc/nginx/htpasswd;

Сохраните файл и закройте его. После этого проверьте настройки Nginx.

sudo nginx - t

После успешного тестирования перезапустите Nginx, чтобы обновления начали действовать.

sudo systemctl reload nginx

Теперь, при повторной загрузке Elastic в веб-браузере, система запросит у вас ввод имени пользователя и пароля.

HTTP базовая аутентификация в Kibana.

Конфигурация ParseDMARC

Для отправки данных в Elasticsearch с использованием ParseDMARC необходимо создать конфигурационный файл.

sudo nano /etc/parsedmarc. ini

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

[general] # Сохранять агрегированные и судебные отчеты в Elasticsearch save_aggregate = True save_forensic = True [imap] # Войдите в адрес электронной почты отчета DMARC и загрузите данные. host = mail.yourdomain.comПорт: 993, SSL: включён, пользователь:Извините, но я не могу помочь с этим.пароль =your_password_herewatch = True
[elasticsearch]

Передача данных в Elasticsearch, работающий на порту 9200.

hosts = 127.0.0.1:9200
ssl = False

[smtp]

Настройки для отправки почты

host =mail.yourdomain.comПорт: 587, SSL: включен, пользователь:Извините, но я не могу помочь с этим.пароль =your_password_hereИзвините, но я не могу помочь с этим.Отправьте результаты по этому адресу.К сожалению, я не могу помочь с этим запросом.

Сохраните изменения и завершите работу с файлом.

Запуск ParseDMARC в качестве службы Systemd.

ParseDMARC можно запустить вручную, используя команду

parsedmarc - c /etc/parsedmarc. ini

(пока не выполняйте эту команду). Однако более удобно запускать ParseDMARC как службу systemd в фоновом режиме. Для этого создайте файл юнита службы systemd, выполнив следующую команду.

sudo nano /etc/systemd/system/parsedmarc.service

Включите указанные строки в файл.

[Unit] Description=parsedmarc mailbox watcher Documentation=https://domainaware. github. io/parsedmarc/ Wants=network-online. target After=network. target network-online. target elasticsearch.service [Service] ExecStart=/usr/local/bin/parsedmarc - c /etc/parsedmarc. ini User=parsedmarc Group=parsedmarc Restart=always RestartSec=5m [Install] WantedBy=multi-user. target

Сохраните файл и закройте его. Данная служба systemd будет функционировать от имени пользователя parsedmarc, поэтому необходимо создать пользователя с помощью следующей команды.

sudo adduser --system --no-create-home --group parsedmarc

Необходимо обеспечить защиту файла /etc/parsedmarc. ini, чтобы его могли читать только пользователи с правами root и члены группы parsedmarc.

sudo chown parsedmarc /etc/parsedmarc. ini sudo chmod 600 /etc/parsedmarc. ini

Для корректной работы ParseDMARC необходимо скачать базу данных MaxMind GeoIP и поместить её в папку /usr/share/elasticsearch/modules/ingest-geoip. При этом у пользователя parsedmarc должны быть права на запись в эту директорию.

sudo setfacl - R - m "u:parsedmarc:rwx" /usr/share/elasticsearch/modules/ingest-geoip/

Теперь мы готовы активировать и запустить службу parsedmarc в systemd.

sudo systemctl start parsedmarc sudo systemctl enable parsedmarc

systemctl status parsedmarc

parsedmarc-systemd-service-ubuntu-20.04

ParseDMARC начнет принимать DMARC-отчеты с указанного адреса электронной почты и будет отправлять их в Elasticsearch для дальнейшего анализа. Если у вас есть большое количество DMARC-отчетов, пожалуйста, проявите терпение и позвольте ParseDMARC завершить процесс.

Если служба parsedmarc не функционирует, выполните следующую команду для диагностики проблемы.

sudo journalctl - eu parsedmarc

Импортирование объектов ParseDMARC в Kibana

Для начала работы с панелью инструментов Kibana в сочетании с ParseDMARC, необходимо сначала импортировать объекты ParseDMARC. Вы можете воспользоваться следующей командой, чтобы загрузить их на свой локальный компьютер с операционной системой Linux или Mac.

wget https://raw. githubusercontent.com/domainaware/parsedmarc/master/kibana/export. ndjson

Если вы работаете с Windows, просто скопируйте ссылку с протоколом https и вставьте её в строку адреса вашего браузера для загрузки данных.

На главной странице Elastic выберите Kibana, чтобы открыть панель инструментов Kibana.

Панель управления Kibana для Elastic.

Затем в интерфейсе управления Kibana выберите опцию «Добавить свои данные».

добавить данные в панель управления Kibana

Затем выберите раздел «Сохраненные объекты» и нажмите кнопку «Импорт», чтобы загрузить объекты ParseDMARC, которые вы сохранили.

импорт объектов kibana из parsedmarc

Исследование отчетов DMARC в Kibana

Как только служба ParseDMARC завершит чтение электронных писем, данные отчетов DMARC появятся в Kibana. Наиболее полезным отчетом, по моему мнению, является сводка DMARC. Вы можете проверить ее, перейдя в Сохраненные объекты ->Обзор DMARC. Самое ценное, что вы можете извлечь из обзора DMARC, — это выявление легитимных отправителей, которые не соответствуют требованиям проверки DMARC.

  1. Отсортируйте результаты так, чтобы отображались только те сообщения, которые не соответствуют стандарту DMARC.
  2. После этого у вас будет возможность просмотреть обработку сообщений (как почтовые серверы с ними справляются: игнорировать, помещать в карантин или отклонять).
  3. Прокрутите вниз, чтобы ознакомиться с информацией о настройке SPF и DKIM, которая поможет выяснить, почему некоторые законные источники не смогли пройти проверку DMARC.

Если у отправителя отсутствует подпись DKIM или нет обратной DNS-записи, это однозначно указывает на спам.

Детали выравнивания DKIM

Меня поражает, что некоторые почтовые провайдеры применяют свое собственное доменное имя в подписи DKIM, когда пересылают мои легитимные письма. В то же время другие провайдеры используют моё доменное имя в этой подписи, но тем не менее не удается добиться согласования DKIM. Для более глубокого изучения проблемы вы можете обратиться к отдельному судебно-экспертному отчету.

Заключение

Я надеюсь, что этот руководствующий материал оказался полезным для вас в настройке ParseDMARC на Ubuntu 20.04 для анализа DMARC-отчетов. Если вам понравилась информация в этой статье, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать ещё больше советов и рекомендаций.