Средства межсетевого экранирования стали де-факто атрибутом любой сетевой инфраструктуры. Почтовому трафику тоже необходимы средства фильтрации. Поэтому в современных релеях реалях тяжело представить почтовую инфраструктуру организации без почтовых шлюзов (mail gateways).

Зачем нужен почтовый шлюз и как его выбрать

Электронная почта (ЭП) является одним из векторов атак, как средство для доставки ВПО клиентам с целью проникновения в корпоративную сеть организации. Но у ЭП есть и еще один враг - спам, мешающий работе и заполняющий полезное дисковое пространство на почтовых серверах. Для решения данных проблем, уже разработаны решения: коммерческие и распространяемых под свободными лицензиями. Из коммерческих наибольшей популярностью пользуется продукт Cisco Email Security Appliance (ESA). Но все мы знаем про проблемы "окирпичивания" и отзывов окончания лицензий вендоров в текущих условиях, поэтому попробуем посмотреть в сторону свободно распространяемых продуктов.

Свободные решения считаются более сложными в настройке и требуют опыта настройки и администрирования. Конечно, можно накатить CentOS и поставить туда Postfix с использованием SpamAssassin, ClamAV, OpenDKIM, SPF и DMARC. Однако, если вам, как и мне, хотелось бы раскатать одну виртуалку (в которой уже из коробки есть все необходимое), зайти на вебку и все там настроить - тогда ваш выбор - Proxmox Mail Gateway (PMG).

Proxmox Mail Gateway

Многие слышали о Proxmox благодаря решению для виртуализации - Proxmox VE (PVE), как замену ESXi от VMWare. Поэтому людям, знакомых с PVE, PMG не покажется чем-то новым в установке и администрировании, так как это тот же Debian с тем же Web-интерфейсом, только заточен под ЭП.

Кто использует Proxmox Mail Gateway

Честно сказать, я думал, что мало кто использует данный программный продукт и скептически относился к нему, как замена для ESA. Однако, информация с shodan меня удивила и придала мне уверенности, что я не один такой.

378 результатов скана shodan
378 результатов скана shodan
Wildberries похоже тоже успешно используют Proxmox
Wildberries похоже тоже успешно используют Proxmox

Где ставить

Как говорилось выше, почтовый шлюз является аналогией межсетевого экранирования для почты. Поэтому ставить PMG, как и любой другой шлюз, нужно вразрез (на границе попадания почтового трафика извне) прохождения почтового трафика. Таким образом, между SMTP-сервером отправителя (или спамера) и SMTP-сервером получателя есть барьер в виде почтового шлюза.

На чем ставить

PMG поставляется в виде ISO-инсталлятора. Поэтому на чем его устанавливать - решение на вкус и цвет каждого. Хоть на старый ПК, хоть на сервак, хоть использованием виртуализации.

Установка

Установка предельно простая, описана в официальной документации и мало чем отличается от установки типичной ОС из ISO-инсталлятора. Пользователи PVE вообще не заметят существенной разницы.

Как зайти

После успешной установки, для управления PMG необходимо перейти в браузере по адресу: https://{ip_or_domain_name_pmg}:8006
и ввести учетные данные, указанные при установке.

Настройка Proxmox Mail Gateway

Если описывать настройку всех возможностей, то статья превратится в документацию сайта разработчика, поэтому опишу кратко основные (необходимые) параметры.
Для настройки (администрирования) механизмов почтового шлюза представлены следующие разделы:

  • Mail Filter - настройка цепочек правил контентной фильтрации писем (аналог Content Filters у ESA). Касается обработки писем и действий над ними;

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

  • Administration - управление почтовыми очередями, карантинами, настройка Black/White листов, просмотр трекинга сообщений;

Mail Filter

PMG из коробки уже наделен цепочками правил в Mail Filter, готовыми к работе на страже вашего почтового трафика. Подробно останавливаться на этом не вижу смысла, кто работал с ESA - поймет, и допилит под себя, кто впервые на это смотрит - необходимо понять суть. Суть в том, что для построений цепочек правил (Rules) существуют следующие объекты:

  • Action Objects - действия, применяемые при попадании в правило (Rule). Например, доставить письмо пользователю, дропнуть письмо, поместить в карантин, удалить вложения, оповестить администратора и т.д.;

  • Who Objects - сгруппированные по какому-либо признаку списки объектов, относящихся к отправителю или получателю (конкретные адреса, домены, IP-адреса, регулярные выражения и т.д.);

  • What Objects - сгруппированные по какому-либо признаку списки объектов, относящихся к содержимому электронного письма (картинки, ссылки, вложения, офисные файлы и т.д.);

  • When Objects - сгруппированные по какому-либо признаку списки объектов, относящихся к временному интервалу, например, нерабочее время или ночь;

Блокировка адресов из блеклиста
Блокировка адресов из блеклиста

Соответственно, подобно составлению ACL, комбинирование данных объектов в цепочку - это и есть правила. Образно работает это так:
Если мне прислали письмо от spammer@spam.ru (адрес из Blacklist в Who Objects), в письме офисный документ .docx (файл из What Objects) - заблокировать письмо или отправить в карантин (действие из Action Objects).

Блокировка писем с офисными документами
Блокировка писем с офисными документами

Configuration

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

Mail Proxy

В разделе Relaying в поле Default Relay указываем IP-адрес или доменное имя SMTP-сервера, на который нужно отправлять письма дальше (сервер, обслуживающий ваш домен).


В разделе Relay Domains необходимо добавить домены, обслуживаемые вашим SMTP-сервером. Делается это для того, чтобы PMG понимал, какие письма ему обрабатывать и отправлять дальше.


В разделе Ports вы можете изменить какие порты PMG должен слушать. По-умолчанию 25 порт (External) служит для приема писем снаружи (из Интернета). Порт 26 (Internal) является релеем для получения писем от вашего почтового сервера и отправки их затем наружу (на другие почтовые домены).


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


В разделе Networks необходимо указать доверенные сети - сети с которых будет разрешен прием для пересылки на другие домены. Делается это для того, чтобы письма пересылались наружу только с ваших доверенных SMTP-серверов.


В разделе TLS можно включить TLS при отправки и получении сообщений. Это означает, что при включенном TLS PMG будет пытаться отправлять письма наружу с использованием расширения ESMTP - STARTTLS, а так же сможет такие такие письма принять.


В разделе DKIM можно включить подпись исходящих сообщений. О том как добавить в PMG свой ключ подписи - написано в документации.


В разделе Whitelist можете указать те адреса и домены, которые не будут проходить проверки, включенные в разделе Options.


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

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

Spam Detector

В качестве антиспам-решения PMG использует под капотом SpamAssassin. По-умолчанию включен и готов к работе из коробки. Для изменения параметров антиспама используются разделы:
Options, Quarantine, Status, Custom Scores

Virus Detector

В качестве АВЗ PMG использует движок ClamAV. По-умолчанию включен и готов к работе из коробки. Для изменения параметров антивирусного движка используются разделы:
Options, ClamAV, Quarantine

Cluster

Cisco ESA позволяет работать в режиме кластера. Это означает, что у вас может быть 2 почтовых шлюза (для балансировки нагрузки или отказоустойчивости). При этом режиме работы, настройки и политики применяемые на одном шлюзе синхронизируются с другим и наоборот (аналог стека у коммутаторов).

Proxmox Mail Gateway так же из коробки позволяет сделать вам кластер из нескольких нод. Аналогией является кластер в PVE, где несколько физических гипервизоров можно объединить в кластер.

Настройка банально проста и происходит в разделе Cluster. Для настройки объединения нод PMG в кластер необходимо:

  1. На мастер ноде создать кластер (нажать кнопку Create) и подождать завершения операции;

Создание кластера
Создание кластера
  1. На мастер ноде нажать на кнопку Add и скопировать себе IP Address и Fingerprint;

Копирование фингерпринта
Копирование фингерпринта
  1. На ноде, которую хотите добавить в кластер нажать кнопку Join и ввести IP Address, Пароль и Fingerprint, скопированного с мастер-ноды.

Добавления ноды в кластер
Добавления ноды в кластер

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

Рабочий кластер из двух нод
Рабочий кластер из двух нод

Итог

И это все? Конечно, да нет. Данная статья рассчитана на то, чтобы познакомить вас с таким замечательным, на мой взгляд, решением, как Proxmox Mail Gateway. Конечно до Cisco ESA ему еще далеко, но из того, что предлагает OpenSource - это топ. Настройки, приведеные в статье позволяют лишь подготовить PMG для пересылки писем от внешнего отправителя на внутренний почтовый сервер и наоборот. Как я говорил в самом начале, прелесть данного решения в готовности к бою со спамом из коробки, при минимальных затратах на его настройку. Главная задача настройки сводится к "направлению" почтового трафика через почтовый шлюз. Прелесть данного решения еще и в том, что под капотом Debian с Postfix, SpamAssassin, ClamAV, OpenDKIM и т.д., которые уже взаимодействуют между собой. Все, что вам остается - тюнить правила и политики. Если не хватает возможностей с вебки - лезем по SSH на PMG, устанавливаем пакеты, конфигурируем файлы, танцуем с бубном - все в ваших руках, все как мы любим. Ну и, конечно же - чтение документации. У PMG есть свои утилиты для управления политиками, а так же Rest API.

Не забудьте указать на вашем SMTP-сервере (MTA) в качестве релея - PMG с портом 26, для отправки всех писем наружу через шлюз. Так же не забудьте настроить NAT на вашем пограничном оборудовании, чтобы внешний IP с портом 25 указывал на 25 порт PMG. Дерзайте!

Комментарии (9)


  1. Adjuster2004
    24.04.2022 20:38

    Как он работает с архивами rar?


    1. toxella Автор
      25.04.2022 06:52

      В старых версиях наблюдались проблемы извлечения из-за отсутствия в дистрибутиве необходимых библиотек. Решается довольно просто:
      https://www.k7d.ru/it/proxmox-mail-gateway-ne-vidit-rar-arhivy/


  1. avelor
    24.04.2022 22:40

    При учёте что кламав немношк не обновляется в РФ и вообще циско - pmg не научился ещё удобно прикручивать другие антивирусные движки?


    1. 13werwolf13
      25.04.2022 06:21
      +1

      это конечно костыль а не решение, но ничего не мешает завернуть маршруты до серверов откуда clamav берёт обновления в vpn до каких нибудь нидерландов

      да и в общем-то держать сервера в россии нынче могут позволить себе только те кого это обязывает закон, остальным это скорее выстрел себе в ногу


    1. toxella Автор
      25.04.2022 06:56

      Из коробки он работает с одним кламав. Можете прикрутить свой антивирус, это же дебиан. Но я больше сторонник обновления с использованием tor или vpn. Просто ставите себе torsocks + proxychains и обновляетесь.


      1. Godless
        25.04.2022 09:58

        боюсь, что clamav несколько проседает по эффективности по сравнению с решениями drweb и kaspersky. не реклама. А так решение интересное


        1. 13werwolf13
          25.04.2022 13:23

          drweb не щупал, а от кошмарского только негативные впечатления. А вот реально радовали решения от eset.. но было это давненько может сейчас что и поменялось


  1. Qwertqwerty
    25.04.2022 14:38

    Был ли опыт отправки событий в siem? Насколько подробное логирование, можем ли понять почему письмо попало(не попало в спам), логируется ли помещение письма в карантины?


  1. vviz
    27.04.2022 15:47

    А кто нибудь может внятно сказать - зачем менять ESXi на Proxmox VE (PVE)?