MailScanner на сервере рассылок

Возникла потребность установить MailScanner на сервере рассылок

Условие: исходящие сообщения с адреса info@domail.tld не проверяются, все входящие на любые адреса домена должны проверяться

Цель статьи не рассказать о настройке MailScanner’а, а обратить внимание читателя на ряд интересных нюансов

Первое и главное. Сколько он берет ресурса?

Не поставишь — не узнаешь 🙂

Установка проводилась на виртуальном сервере под FreeBSD, RAM1Gb, остальные параметры железа не так важны. В качестве MTA — postfix. Этот сервер боевой и выполняет лишь функции целевых рассылок и принимает ответы на них от пользователей. Влиянием других программ можно пренебречь

Привожу графики munin’а с пояснениями. Начнем с недельных графиков

memory-week

Память кушать мы любим. До внедрения на сервере был 1Гб памяти. После внедрения 3Гб. Значительно возросло потребление активной памяти. При наличии свободной памяти во равно используется свопинг

cpu-week

До внедрения сервер сконфигурирован с одним CPU, после внедрения — два CPU. В момент рассылки (ок. 1100 сообщений/мин) нагрузка на CPU в два раза больше (22 число), чем 15, 16, 17 числа до внедрения

load-week

Хитрый параметр Load Average изменился не значительно

mailscanner-week

Количество обработанных сообщений в минуту

Дневные графики, уже без комментариев

memory-day

cpu-day

postfix_mailqueue-day

mailscanner-day

Второе. Нюансы настройки

1. Случай, когда сообщения не проверяются

Напомню, что исходящие от info@domain.tld не проверяются. Теоретически не должно было бы быть и нагрузки. Но это не так. На сайте postfix’а указано

WARNING: This software uses unsupported methods to manipulate Postfix queue files directly. This will result in corruption or loss of mail. The mailscanner authors have sofar refused to discuss a proper access API or protocol

Это значит, что MailScanner не используется как фильтр. Чтоб MailScanner начал обрабатывать почту нужно в файл header_check postfix’а написать

/^Received:/ HOLD

Все сообщения с таким заголовком postfix складывает в папку /var/spool/postfix/hold откуда MailScanner перекладывает их в /var/spool/postfix/incoming не проверяя. За счет такого перекладывания и создается паразитная нагрузка

2. Правила для From/To

Создаем в каталоге /usr/local/etc/MailScanner/rules/ файл scan.messages.rules в котором указываем правила проверки на вирус/спам

From: domain.tld no
To: domain2.tld no
FromOrTo: default yes

Тут все ясно без комментариев

3. Как отключить подпись

По умолчанию к чистым письмам добавляется подпись

This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean

Для отключения

Sign Clean Messages = no

4. Как отключить изменение темы письма

По умолчанию, даже у чистых сообщений MailScanner модифицирует хидер Subject, на что как-то неадекватно реагируют некоторые почтовые клиенты помещая такие собщения в «Спам». Для устранения проблемы смотрим секцию # Changes to the Subject: line конфига. У меня стоят такие:

Scanned Modify Subject = no
Virus Modify Subject = start
Filename Modify Subject = start
Content Modify Subject = no
Size Modify Subject = no
Disarmed Modify Subject = no
Phishing Modify Subject = no
Spam Modify Subject = no
High Scoring Spam Modify Subject = no

Резюме

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

Поэтому я пожалуй оставлю MailScanner так как такая нагрузка в моем случае вполне приемлима

Александр Черных

системный администратор

Статьи по теме