03 / Mail Security Center
Всё началось
с 500 спам-писем.
В один прекрасный день я проснулся и увидел в почтовом ящике 500+ спам-писем.
Мне хотелось понять не только, почему конкретные письма прошли фильтрацию, а как вообще устроен реальный путь входящей почты на моём сервере.
Вместо абстрактной схемы я разобрал production-конфигурацию Exim 4.95 + SpamAssassin + Dovecot/Sieve и начал смотреть, что действительно происходит на каждом этапе.
03.1 / signals
Не каждый сигнал
одинаково надёжен.
Проверка стала не списком подключённых источников, а оценкой их качества: помогает ли сигнал принимать решение и можно ли ему стабильно доверять.
Нестабильный источник создавал неопределённость вместо полезного решения.
DNS timeout / deferСтабильно подтверждал нежелательные подключения и оставался полезным сигналом.
ZEN → CSS / XBL / PBL / SBLtechnical layer · Relay Policy → DNSBL → Recipient Verify · source templates: Exim / ISPmanager
03.2 / classification
Классификатор может ошибиться.
Ошибка не должна быть необратимой.
Вместо модели, где подозрительное письмо сразу уничтожается, я выбрал модель, где оно остаётся доступным для проверки и восстановления.
03.3 / explainable journey
Лог постепенно превратился
в объяснимый путь письма.
Сначала это была страница с отдельными событиями. Но один лог не отвечал на главный вопрос: что происходило с конкретным письмом и почему система приняла именно такое решение. Так появился Mail Security Center.
Основная сущность — Journey, а не отдельная запись в логе.
- 01Письмо принятоExim ACL / Relay Policy
- 02Сигналы провереныSender Verify / Spamhaus
- 03Риск классифицированSpamAssassin / score + rules
- 04Доставка подтвержденаDovecot / Sieve / Maildir
Письмо отмечено как нежелательное: несколько признаков увеличили оценку риска, но само письмо сохранено в Junk.
score 8.4 · matched rules · identifiers Независимые свидетельства
Источники не подменяют друг друга: итог строится из нескольких подтверждений.
«Доставлено» — это результат.
Мне интереснее понимать, почему.