Возникла потребность установить MailScanner на сервере рассылок
Условие: исходящие сообщения с адреса info@domail.tld не проверяются, все входящие на любые адреса домена должны проверяться
Цель статьи не рассказать о настройке MailScanner’а, а обратить внимание читателя на ряд интересных нюансов
Первое и главное. Сколько он берет ресурса?
Не поставишь — не узнаешь 🙂
Установка проводилась на виртуальном сервере под FreeBSD, RAM1Gb, остальные параметры железа не так важны. В качестве MTA — postfix. Этот сервер боевой и выполняет лишь функции целевых рассылок и принимает ответы на них от пользователей. Влиянием других программ можно пренебречь
Привожу графики munin’а с пояснениями. Начнем с недельных графиков

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

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

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

Количество обработанных сообщений в минуту
Дневные графики, уже без комментариев
Второе. Нюансы настройки
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
TL;DR
В моем случае основной поток — целевая исходящая рассылка, которая не проверяется, но которая все равно создает нагрузку. Входящие сообщения, как реакция пользователей на целевую рассылку во-первых растянута во времени, во-вторых несколько меньше количества исходящих
Поэтому я пожалуй оставлю MailScanner так как такая нагрузка в моем случае вполне приемлима

- Системный администратор с 2000 года
- Участник Freelancehunt, Хабр Q&A, cyberforum
- Кейсы