Proxmox Mail Gateway - настраиваем пограничный почтовый шлюз

  • Автор:

pmg-000.png

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

Чтобы понять место шлюза в вашей почтовой системе рассмотрим простую схему. Без шлюза весь поток входящей почты попадает прямо на основной сервер, который затем в меру своих сил будет пытаться ее фильтровать. Обычно это получается плохо, и большая часть нежелательной почты попадет в ящики получателей, вызывая, самое меньшее, их недовольство. Но с почтой могут быть связаны и более серьезные угрозы, такие как фишинг и вредоносное ПО, и не всегда эти угрозы удается блокировать на самом последнем этапе - чаще всего слабым звеном оказывается сам пользователь.

pmg-001.pngПри появлении пограничного шлюза вся входящая почта будет направлена на него, а основному серверу будет передана только чистая, прошедшая через фильтры почта. Конечно всегда существует риск ложного срабатывания или пропуска нежелательной почты, но следует помнить, что шлюз является специализированной системой, задачей которой является именно борьба со спамом и вредоносным ПО в письмах и его эффективность будет гораздо выше, чем у фильтров вашего основного сервера.

pmg-002.pngИсходящая почта как передавалась вашим основным сервером, так и будет передаваться. Технически, конечно, возможно и ее пропустить через шлюз, но на практике такое решение вызывает больше проблем, чем предоставляет преимуществ. Такая схема потребует внесения существенных изменений в почтовую инфраструктуру: изменение DNS-записей, правильная настройка заголовков и т.д. В случае неверных настроек вреда будет больше, чем пользы, ваша почта начнет выглядеть подозрительно и будет иметь гораздо более высокие шансы попасть в спам у получателя.

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

В качестве пограничного почтового шлюза мы будем использовать Proxmox Mail Gateway, бесплатное решение с открытым исходным кодом. Несмотря на то, что к продукту предлагается платная подписка, даже в бесплатной версии Proxmox Mail Gateway представляет собой достаточно эффективный и удобный инструмент для зашиты вашей почтовой системы. Продукт базируется на базе Debian, либо может быть установлен на эту систему как сервис. Но мы рекомендуем разворачивать его на выделенном сервере (можно виртуальном) из официального образа, который доступен на сайте разработчика.

Установка системы производится в графическом режиме и не должна вызвать сложностей, если у вас есть опыт установки Linux. Первым шагом нам предлагают настроить конфигурацию дисков, в качестве целей вам будут доступны одиночные диски, для того чтобы получить больше возможностей нажмите Options и появившееся окно даст вам настроить требуемую конфигурацию, например, создать RAID-массив.

pmg-003.png

В нашем случае было выбрано простое зеркало (RAID 1), настроек - необходимый минимум, запутаться решительно негде.

pmg-004.pngЗатем потребуется указать регион и часовой пояс, задать пароль суперпользователя и сетевые настройки, после чего будет проведена установка системы.

pmg-005.pngПосле установки нас встретит консоль с предложением подключиться к системе через браузер, но не будем спешить. Войдем в систему под суперпользователем root.

pmg-006.pngСразу напомним, внутри обычный Debian, поэтому можем делать все, что сочтем нужным, например, доустановить для удобства администрирования Midnight Commander и любые иные утилиты. Но прежде всего следует отключить корпоративный репозиторий Proxmox, который доступен только по подписке:

rm /etc/apt/sources.list.d/pmg-enterprise.list

А затем создадим собственный лист:

touch /etc/apt/sources.list.d/pmg-no-subscription.list

И внесем в него следующее содержимое:

deb http://download.proxmox.com/debian/pmg stretch pmg-no-subscription

Теперь можно перейти в веб-интерфейс, в котором и будет происходить вся работа с почтовым шлюзом. Наберем в браузере указанный адрес, обязательно с указанием защищенного протокола HTTPS, для аутентификации используем пользователя root и указанный при установке пароль. Первоначально админка способна сбить с толку обилием разнообразных пунктов и опций, но сейчас нас интересует окончательная настройка шлюза.

pmg-007.pngДля этого перейдем в раздел Configuration, на верхнем уровне располагаются настройки сети и времени, некоторые дополнительные опции, такие как почта администратора, настройки статистики и ежедневной рассылки отчетов, а также резервное копирование и восстановление настроек. На данный момент ничего интересного для нас здесь нет, поэтому переходим уровнем ниже Configuration - Mail Proxy. Первый пункт Relaying содержит очень важную настройку пересылки почты, в пункте Default Relay следует указать ваш основной почтовый сервер.

pmg-008.png

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

pmg-009.png

На закладке Options обратите внимание на пункт Message Size - это предельный размер письма, который будет пропущен шлюзом, письма большего размера будут отброшены. Остальные опции мы пока трогать не рекомендуем, настройки Proxmox Mail Gateway достаточно эффективны и крутить настройки вручную следует уже с учетом фактического результата работы продукта.

pmg-010.png

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

А мы пока перейдем в раздел Spam Detector, в этом качестве используется SpamAssassin, из настроек следует также обратить внимание на размер письма и время нахождения спама в карантине, на закладке Update можно вручную обновить набор правил, хотя эта задача выполняется автоматически, по расписанию.

pmg-011.pngВ разделе Virus Detector находятся настройки антивируса ClamAV, здесь также можно запустить его обновление вручную. Однако в этом процессе вы можете получить похожую "ошибку":

WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.100.0 Recommended version: 0.101.1

Но повода для беспокойства здесь нет, система обновляет пакеты ClamAV из репозиториев Debian, где последняя версия на момент написания статьи была 0.100.0, а с серверов ClamAV антивирус получил данные о наличии более новой версии 0.101.1. Однако на безопасность это влияет слабо, гораздо более важно своевременное обновление баз, а с этим у нас все в порядке.

Раздел User Management ожидаемо содержит настройки пользователей. Здесь же можно добавить дополнительных пользователей, например, менеджера карантина, которому будет доступно только просмотр и управление письмами в карантине, без возможности изменять настройки сервера. Это позволяет дать определенным пользователям возможность самим проверять попадание нужных писем в карантин, не тревожа лишний раз администраторов, но и не боясь, что они что нибудь сломают по неосторожности.

pmg-012.pngНо гораздо интереснее иной пункт - Fetchmail - это консольный почтовый клиент, который позволяет получать и перенаправлять на нужные адреса почту с внешних аккаунтов, например, с публичных почтовых служб. Мы рассказывали про него в статье Zimbra. Сбор почты с внешних аккаунтов, но если вы решили использовать почтовый шлюз, то лучше возложить эту функцию на него с одновременной фильтрацией такой почты.

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

pmg-013.png

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

pmg-014.png

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

pmg-015.pngТеперь покинем этот раздел и перейдем на самый верх, в Mail Filter, который содержит настройки фильтрации почты. На верхнем уровне расположены правила, указан их приоритет и направление действия, если выделить любое из них, то справа можно увидеть логику его действия.

pmg-016.pngПравила применяются в порядке убывания приоритета, при срабатывании правила дальнейшее прохождение зависит от применяемого в нем действия, если действие окончательное, то обработка письма на нем прекращается, если нет - письмо идет дальше по списку.

Для построения правил используются несколько типов объектов:

  • Action Objects - действия, которые могут быть применены к письму. Могут быть окончательными или нет. К окончательным относятся три действия: Accept, Block и Quarantine, остальные действия не прерывают прохождение письма по цепочке правил.
  • Who Objects - субъекты, т.е. отправители или получатели почты, это могут быть почтовые адреса, домены, IP-адреса и подсети, пользователи и группы пользователей. Допустимо использование регулярных выражений. По умолчанию создано два объекта: глобальные белый и черный списки.
  • What Objects - свойства письма, это могут быть факты срабатывания спам и антивирусного фильтра, совпадение заголовков с заданным шаблоном, тип вложения, тип содержимого архива.
  • When Objects - временной промежуток, скажем рабочее время офиса.

Чтобы не быть голословными, составим собственное правило. В качестве вводной примем следующие условия: есть некоторые контрагенты, и их весьма много, которые посылают нам в рабочее время документы в формате PDF или XSL/XSLX с пустым телом письма и возможно даже без темы, документы могут быть в архиве.

Прежде всего перейдем в раздел What Objects и создадим новый объект, назовем его PDF & Excel, в который добавим четыре типа Content Type Filter, в которых укажем документы PDF, ХLS, XLSX и ODS (так как документ Excel давно стал понятием собирательным и нам вполне могут прислать таблицу в формате Open/LibreOffice). Затем добавим четыре типа Archive Filter с тем же самым содержимым, если документ придет запакованным в архив.

pmg-017.pngСледующим условием задачи у нас стоит время отправки подобной документации, условно примем его с 8:00 до 20:00, перейдем в раздел When Objects и создадим временной промежуток Work Time.

pmg-018.pngТеперь составим собственное правило, укажем его имя, приоритет и поставим флаг активности. Мы решили разместить его ниже проверок на черные/белые списки и вредоносное/опасное содержимое, но перед проверкой на спам.

pmg-019.pngВыберем созданное правило и в правой части экрана добавим What - PDF & Excel, Action - Accept. Данное действие является окончательным и дальше по цепочке такое письмо не пойдет.

pmg-020.png

И снова перейдем в раздел Administration, теперь нас будет интересовать управление карантином, для начала перейдем в Spam Quarantine. Здесь можно просмотреть письма, попавшие в карантин для каждого почтового ящика. Выбираем период времени и почтовый ящик, и получаем полный список попавших в карантин сообщений.

pmg-021.pngДля каждого сообщения доступен ряд действий, во первых добавление в персональный черный/белый список, но это действие не изменяет состояние письма, оно остается в карантине, при необходимости мы можем доставить его получателю (Deliver) или удалить (Delete), если не предпринять никаких действий, то такое письмо будет удалено по истечению срока хранения (по умолчанию 7 дней). Аналогичным образом работает и антивирусный карантин.

Здесь же доступно управление персональными черными/белыми списками пользователей, однако следует четко понимать, что использование персональных списков не должно подменять использования списков глобальных. Если прошедшее через фильтры письмо явный спам - то его следует добавить в глобальный список. Персональные списки следует использовать в тех случаях, когда требуется обойти глобальные правила. Скажем у вас глобально запрещены рассылки от различных интернет-магазинов, но отдел закупок наоборот хочет их получать - не вопрос, на помощь придут персональные списки.

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

Раздела Statistics мы подробно касаться не будем, там и так все понятно, статистика в различных ее видах.

pmg-022.pngВ заключение хочется сказать, что Proxmox Mail Gateway показал себя как гибкое и эффективное средство борьбы со спамом, поэтому мы можем смело рекомендовать его к внедрению и надеемся, что данная статья окажется вам полезной.

Дополнительные материалы:


  1. Почтовый сервер для начинающих. Структура и принцип работы
  2. Почтовый сервер для начинающих. Настраиваем DNS зону
  3. Почтовый сервер для начинающих. PTR и SPF записи как средство борьбы со спамом
  4. Онлайн инструменты для проверки почтового сервера