Руководства, обучение и обновления
Экспертные статьи о безопасности электронной почты, одноразовых email-сервисах, API-интеграциях и управлении DNS.
Избранное

Ловим взломанный ящик по логам: аномальные логины, всплеск исходящих и авто-алерты
Взломанный ящик не падает с ошибкой — он тихо работает как чужой SMTP-релей, пока не прилетит блок от Spamhaus. Разбираем три конкретных паттерна в логах Dovecot и Postfix и вешаем на них дешёвый автодетектор на bash и cron — без дорогого SIEM.

TLS 1.3 и cipher suites для Postfix и Dovecot: как получить A+ и не сломать доставку
Большинство TLS-гайдов для почты — карго-культ: копируют строку из блога 2016 года и ждут A+. Разбираем три отдельные TLS-поверхности почтового сервера, настраиваем submission и IMAP до A+ на testssl.sh и объясняем, почему на входящем MX затягивать шифры до TLS 1.3-only — прямой путь к потере писем.
Все статьи

Тонкая настройка скоринга SpamAssassin: per-user правила, sa-learn и калибровка порогов под реальный поток
Дефолтный порог 5.0 откалиброван на чужом англоязычном корпусе десятилетней давности. Разбираем, как измерить собственный поток через mass-check, перекалибровать веса по гистограмме score, обучить Bayes без самоотравления и закрыть оставшиеся дыры meta-правилами — с командами, конфигами и цифрами.

Milter в Postfix без боли: порядок вызова, macros и совмещение rspamd с opendkim/opendmarc
Задвоенные заголовки, потерянные DKIM-подписи, письма в deferred и rspamd, который «не видит» вердикт opendmarc — всё это растёт из двух вещей: неправильного порядка милтеров и непонимания macros. Разбираем milter-конвейер как конвейер: кто за кем стоит, кто чей результат читает и что происходит при таймауте.

Fuzzy-хеши и нейромодуль rspamd: как ловить массовые волны и точечный спам, который проходит сквозь Байес
Байес и таблица весов ломаются на двух классах писем: мутирующих массовых рассылках и точечном фишинге, где каждый символ по отдельности ниже порога. Это две разные задачи для двух разных инструментов rspamd. Разбираем, как поднять своё зашифрованное fuzzy-хранилище на шинглах и обучить нейросеть так, чтобы она сходилась, а не отравляла сама себя.

Фильтрация по аутентификации в rspamd: модули DKIM, DMARC и ARC и как они складываются в итоговый score
Аутентификация письма в rspamd — это не «прошло/не прошло», а набор символов с весами, которые суммируются в score и только потом становятся действием. Разбираем механику модулей dkim, dmarc и arc: где ломается SPF на пересылке, почему p=reject сам по себе ничего не реджектит, и как ARC чинит то, что рвут mailing-листы.

Ложные срабатывания антиспама: как читать заголовки, а не двигать порог
Клиент жалуется, что письмо ушло в спам. Не трогайте глобальный reject — откройте X-Spamd-Result и прочитайте его посимвольно. Разбираем диагностику по заголовкам и логам Rspamd, whitelist по DKIM через multimap, точечную правку весов и переобучение Bayes.

Свои правила и Lua-скрипты в rspamd: кастомные symbols, score и локальные white/blacklist без боли
Как писать кастомные symbols на Lua и regexp, не ломая байесовский баланс, где реально задавать score, почему whitelist и blacklist — это multimap, а не Lua-колбэк, и в какой слой конфига класть правило, чтобы оно пережило apt upgrade.

Модуль ratelimit в rspamd: раздельные лимиты по отправителю, IP и получателю
Один глобальный лимит в rspamd не спасёт репутацию IP, когда взломают SASL-аккаунт. Разбираем модель дырявого ведра, семантику встроенных лимитов, которую все понимают неправильно, и раздельные политики для исходящего и входящего трафика — с рабочими конфигами и отладкой через Redis.

Обучение байесовского фильтра rspamd: ручное обучение, IMAPSieve, autolearn и общий корпус на несколько нод
Байес в rspamd — это не галочка в конфиге, а живой корпус в Redis, который умирает от дисбаланса. Разбираем три режима обучения, объясняем, почему autolearn — не ИИ, и показываем, как заставить несколько mail-нод делить один статистический корпус вместо трёх рассинхронизированных.

Выбор RBL и DNSBL: какие чёрные списки реально работают и как не блокировать своих
Наивная схема «любое совпадение в DNSBL — reject» бьёт по вашим же клиентам сильнее, чем по спамерам. Разбираем, какие зонные списки держать на reject, какие только на score, как читать return-коды 127.0.0.x и как выставить правильные веса в postscreen и SpamAssassin.

Тонкая настройка greylisting в rspamd и postgrey: антиспам без задержек и потери писем
Классический greylisting по IP-триплету задерживает всех и теряет письма крупных ESP из-за ротации пулов. Разбираем, как настроить score-band greylisting в rspamd, чтобы он был невидим для легитимной почты и грел только пограничный спам.

