Skip to main content

ЧудESA защиты корпоративной почты или внедрение свободных почтовых шлюзов на базе Proxmox Mail Gateway

·1450 words·7 mins
SPAM Cisco ESA IronPort Proxmox Spam Linux Mail Network
Table of Contents

Proxmox

Средства межсетевого экранирования стали де-факто атрибутом любой сетевой инфраструктуры. Почтовому трафику тоже необходимы средства фильтрации. Поэтому в современных релеях реалях тяжело представить почтовую инфраструктуру организации без почтовых шлюзов (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 меня удивила и придала мне уверенности, что я не один такой.

shodan
378 результатов скана shodan

shodan
Wildberries похоже тоже успешно используют Proxmox

Где ставить
#

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

schema

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

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

Установка
#

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

Как зайти
#

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

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

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

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

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

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

settings

Mail Filter
#

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

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

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

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

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

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

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

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

Configuration
#

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

Mail Proxy
#

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

MailProxy

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

RelayDomains

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

Ports

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

Transport

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

Networks

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

TLS

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

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

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

Options

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

Spam Detector
#

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

SPAM

Virus Detector
#

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

AV

Cluster
#

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

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

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

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

CreateClusrer
Создание кластера

  • На мастер ноде нажать на кнопку Add и скопировать себе IP Address и Fingerprint;

Fingerprint
Копирование фингерпринта

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

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

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

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

Итог
#

И это все? Конечно, да нет. Данная статья рассчитана на то, чтобы познакомить вас с таким замечательным, на мой взгляд, решением, как 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. Дерзайте!