Имеет ли (использует Zimbra) Postfix возможность заносить в белый список IP-адреса или домены для входа в IMAP для только конкретный почтовый ящик?
Вот чего мы хотели бы добиться:
Предпочтительно, когда кто-то из 4.5.6.7 пытается открыть сеанс IMAP с учетными данными c@example.com, должна возвращаться та же ошибка, что и при неудачной попытке входа в систему из-за неправильного пароля или несуществующего адреса получателя с тем же таймаутом (например, 10 секунд ).
Предыстория: наш почтовый сервер (Zimbra с использованием Postfix) подвергается периодическим атакам на определенные почтовые ящики, в результате чего эти почтовые ящики блокируются из-за количества неудачных попыток входа в систему IMAP в час для этого почтового ящика. Попытки входа в систему происходят медленно с уникальных IP-адресов (2-3 попытки входа в минуту в один и тот же почтовый ящик), поэтому запрет IP-адресов не является решением. Увеличение количества неудачных попыток в час только позволяет атаке продолжаться и открывает дверь для более крупных одновременных атак.
Брандмауэр порта IMAP не является вариантом, поскольку мы хотели бы сохранить доступ открытым извне VPN / корпоративной сети, за исключением тех почтовых ящиков, которые подвергаются текущей / постоянной атаке. Проверить трафик там тоже невозможно, так как он зашифрован.
Итак, мы ищем что-то вроде postscreen_access_list, но только для определенных получателей, поскольку мы хотели бы ограничить доступ только к тем почтовым ящикам, которые подвергаются атаке.
Я бы посмотрел на fail2ban первый. Это довольно просто и не требует дополнительных настроек оборудования или сети. fail2ban работает, просматривая файлы журнала, а затем блокируя IP-адреса с помощью iptables / nftables и т. д.
Можно определить шаблоны для поиска в файлах журнала - таким образом, вы можете исключить логины для определенных почтовых ящиков, исключив их в регулярном выражении.
fail2ban не может смягчить все виды DDoS, но это первый инструмент, на который я бы посмотрел. Кроме того, вы не предоставили более подробной информации о своих потребностях и о том, с какими атаками вы сталкиваетесь.
Для каждой «тюрьмы» в fail2ban есть failregex и ignoreregex. Просто вставьте туда соответствующие регулярные выражения.