Carbonio MTA (Mail Transfer agent) - это ключевой узел инфраструктуры Carbonio, обеспечивающий работу его главной функции - отправки и получения электронной почты. В сердце Carbonio MTA лежит Postfix, который в связке с Amavis, ClamAV и SpamAssassin обеспечивает надежную и безопасную работу с потоками электронной почты, защищая почтовые ящики пользователей от спама и зараженных вирусами писем. В этой статье мы расскажем о том, как грамотно настроить Carbonio MTA и как администратор может взаимодействовать с ним.

Данная статья подходит как для пользователей коммерческой версии Carbonio, так и для пользователей Carbonio Community Edition.

Особенности узла Carbonio MTA

На узле MTA происходит обработка входящего и исходящего SMTP-трафика. В отличие от других почтовых протоколов, таких как IMAP и POP3, SMTP-запросы не проксируются через Carbonio Proxy, а это значит, что сервер MTA должен быть доступен для подключений напрямую из интернета. Для доставки писем внутри системы используется протокол LMTP.

Помимо получения и отправки почты, на узле MTA проходят проверка и фильтрация входящих писем. Их осуществляют входящий в Postfix Postscreen, а также поставляемые вместе с узлом MTA Amavis, ClamAV, SpamAssassin, CBPoilcyD и Milter. Помимо стандартных функций антиспама и антивируса, MTA может осуществлять и блокировку прикрепленных к письмам файлов на основании их расширений.

Несколько Carbonio MTA в одной системе

Как уже отмечалось, обращения по SMTP к узлу Carbonio MTA не проксируются при помощи Carbonio Proxy и поэтому узел должен быть доступен напрямую из интернета. Однако в высоконагруженных почтовых системах может потребоваться установка двух или более MTA. Как в таком  случае обеспечить балансирование нагрузки между ними?

В Carbonio балансировка нагрузки между несколькими MTA происходит автоматически для исходящей почты. Для входящей почты требуется балансировка DNS. Для этого достаточно добавить несколько A-записей для одного доменного имени, чтобы все заработало. К примеру:

mail.example.ru     A     123.123.123.123

mail.example.ru     A     123.123.123.124

Получается, что когда MX-запись домена указывает на A-запись mail.example.ru, обращения будут идти не к одному серверу, а сразу к двум, что позволит задействовать сразу два узла MTA и обеспечить балансировку нагрузки. В случае, если узлов MTA в вашей инфраструктуре больше, чем 2, можно добавить дополнительные A-записи в DNS.

Принцип получения почты

Поскольку в MTA используется Postfix, получение и отправка почты происходит за счет почтовых очередей. Всего их пять:

Входящие - в эту почтовую очередь попадают все входящие письма, отправленные как с внутренних, так и с внешних адресов

Активные - в эту почтовую очередь попадают письма, прошедшие проверку Postscreen и CBPolicyD. Письма из этой очереди направляются в Amavis для проверки на вирусы и спам. После прохождения проверки доставляются или перемещаются в другую очередь.

Отложенные - в эту почтовую очередь попадают письма из очереди “Активные” в силу различных причин не могут быть отправлены в данный момент. Впоследствии Postfix предпринимает попытки повторно отправить эти письма адресату. По умолчанию письма в этой очереди находятся 5 дней, после чего возвращаются отправителю. Настроить этот срок можно изменив значение параметра bounce_queue_lifetime в файле zmlocalconfig.

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

Поврежденные - в эту почтовую очередь попадают письма, которые повредились во время отправки или получения, и стали нечитаемыми.

Просмотреть почтовые очереди можно в командной строке при помощи следующих команд, выполнив вход как пользователь zextras (sudo su - zextras):

sudo /opt/zextras/libexec/zmqstat - покажет количество писем в каждой из почтовых очередей.

/opt/zextras/common/sbin/postqueue -p - покажет подробные описания писем, которые находятся в почтовой очереди. В случае, если очереди пустые, покажет соответствующее уведомление.

Того же эффекта можно добиться при помощи команды mailq.

Просмотреть письмо, находящееся в почтовой очереди, можно при помощи его идентификатора, который предоставляется при выполнении mailq и postqueue. К примеру:

/opt/zextras/common/sbin/postcat -q EC753D0D00

Для удаления конкретного письма из очереди используйте команду

/opt/zextras/common/sbin/postsuper -d EC753D0D00

Для очистки всех очередей воспользуйтесь командой

/opt/zextras/common/sbin/postsuper -d ALL

Для очистки конкретной очереди, добавьте ее название в конце предыдущей команды

/opt/zextras/common/sbin/postsuper -d ALL deferred

Распределение ролей между узлами Carbonio MTA

Допустим и сценарий, при котором несколько MTA в одной системе выполняют разные роли. К примеру, один из двух MTA работает только на входящую почту, а второй - только на исходящую.

Для конфигурирования узла Carbonio MTA, который работает только на получение почты, следует исключить сервис carbonio-mta-sidecar.service из числа запускаемых автоматически:

systemctl mask carbonio-mta-sidecar.service

Также потребуется удалить файл /etc/zextras/service-discover/carbonio-mta.hcl

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

Для конфигурирования узла Carbonio MTA, который работает только на отправку почты, достаточно просто добавить соответствующий сервер в инфраструктуру Carbonio, но при этом не добавлять ведущих к нему MX-записей. В результате узел Carbonio не будет получать электронные письма, но продолжит их отправлять.

Настройка ClamAV

В свете последних событий, официальный репозиторий с обновлениями баз данных для ClamAV оказался недоступным для пользователей из России. В связи с этим встроенный в Carbonio антивирус не может нормально работать сразу после установки. Решить эту проблему можно указав другой, доступный для пользователей из РФ репозиторий. Делается это при помощи команды carbonio prov modifyConfig zimbraClamAVDatabaseMirror LINK_TO_THE_REPO

Допускается настройка отдельного репозитория для каждого сервера MTA. Делается это при помощи команды вида carbonio prov modifyServer mta.example.ru zimbraClamAVDatabaseMirror LINK_TO_THE_REPO.

В приведенных примерах замените LINK_TO_THE_REPO ссылкой на доверенный репозиторий, а в случае с серверной командой замените mta.example.ru на доменное имя сервера Carbonio MTA.

Настройка SpamAssassin

SpamAssassin в Carbonio начинает работать автоматически, сразу после установки. Для повышения эффективности фильтрации спама администратор может добавлять в SpamAssassin собственные правила, либо использовать Байесовское обучение, которое работает в случаях, когда пользователи самостоятельно перемещают письма из папки “Входящие” в папку “Спам” или наоборот.

О том, как использовать оба эти метода мы рассказывали ранее в статье про фильтрацию спама.

Настройка Postscreen

Поскольку узел Carbonio MTA обычно доступен из внешнего интернета, очень важно защитить его от внешних угроз, таких как DoS-атаки или мейл-бомбинг. Для этих целей в него встроен сервис Postscreen, который позволяет отсеивать автоматически сгенерированные входящие подключения и реализовывать грейлистинг в рамках почтового сервера.

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

Настройка CBPolicyD

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

Про настройку CBPolicyD мы также рассказывали ранее.

Настройка Milter

Milter (сокращение от Mail Filter) - инструмент, который используется для защиты списков рассылки от нежелательных писем. Опасность этого явления заключается в том, что направленный в адрес списка рассылки спам будет попадать в почтовые ящики сразу нескольких пользователей. Это приводит к повышенному расходу места на жестком диске почтового сервера, а также повышает риски для кибербезопасности предприятия. Milter позволяет ограничить круг пользователей, которые могут отправлять письма в конкретный список рассылки. 

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

carbonio prov modifyConfig zimbraMilterServerEnabled TRUE

carbonio prov modifyServer mta.example.ru zimbraMilterServerEnabled TRUE

В случае с серверной командой замените mta.example.ru на доменное имя сервера Carbonio MTA

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

carbonio prov grr dl distributionlist@example.ru usr user@example.ru sendToDistList 

Предоставить права пользователю user@example.ru права на отправку писем в адрес списка рассылки distributionlist@example.ru

carbonio prov grr dl distributionlist@example.ru grp groupdl@example.ru sendToDistList

Предоставить права участникам списка рассылки groupdl@example.ru права на отправку писем в адрес списка рассылки distributionlist@example.ru

carbonio prov grr dl distributionlist@example.ru all sendToDistList

Предоставить права всем учетным записям на сервере права на отправку писем в адрес списка рассылки distributionlist@example.ru

carbonio prov grr dl distributionlist@example.ru dom example.ru sendToDistList

Предоставить права всем учетным записям домена example.ru права на отправку писем в адрес списка рассылки distributionlist@example.ru

carbonio prov grr dl distributionlist@example.ru pub sendToDistList

Предоставить права всем в интернете на отправку писем в адрес списка рассылки distributionlist@example.ru

После присвоения необходимых прав не забудьте перезагрузить MTA-сервер, чтобы изменения вступили в силу. Это делается при помощи команды zmmtactl reload

По вопросам тестирования, приобретения, предоставления лицензии и консультаций обращаться на почту sales@svzcloud.ru к эксклюзивному партнеру Zextras.

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


  1. vasilisc
    22.06.2023 19:20

    Для жителей РФ оптимально обновлять базы Clamav с репозитория

    https://packages.microsoft.com/clamav/