qmail ограничивает количество писем, отправляемых пользователем или доменом в час

qmail ограничивает количество писем, отправляемых пользователем или доменом в час

Я размещаю почтовый сервер для нескольких разных доменов. Недавно пароль одного из пользователей был угадан/взломан, и аккаунт был использован для отправки пары сотен тысяч сообщений, прежде чем я заметил это и смог его отключить, из-за чего весь сервер попал в черный список

Я хотел бы установить ограничение в qmail, чтобы ограничить скорость исходящей почты на основе пользователя/домена/времени, но пока не смог найти встроенную функцию для этого.

Любые известные вам методы будут полезны. Один из вариантов, с которым я столкнулся, — это отправка исходящей почты через SpamAssassin, но меня беспокоит блокировка легитимных сообщений.

решение1

Есть что-то вродепатч дроссельной заслонкидоступно для Qmail, которое подходит под ваше описание. Сомневаюсь, что есть встроенная функциональность без исправления Qmail, поскольку Qmail, кхм, идеально закодирован как есть.

Пожалуйста, взгляните наэто обсуждение различных MTA, особенно заметка о Qmail. Имейте в виду, что это обсуждение 6-летней давности, и то, что было сказано о Qmail тогда, еще более верно. Это, возможно, не будет в вашем краткосрочном или среднесрочном плане, но миграцию с Qmail следует рассмотреть, особенно если вам нужно применить кучу случайных патчей, чтобы заставить его делать то, что вы хотите.

Хм, обсуждение того, как сделать что-то подобное в Postfix, заключается в использованииполитическийдополнение. Взгляд на этот проект предполагает, что его можно использовать с различными MTA, так что, возможно, вам удастся убедить Qmail использовать его.

решение2

Все сработало отлично, спасибо!

Вам также следует включить следующую строку после первой команды grep:

grep "$(date +"%b %d")" /var/log/maillog| grep submission:| awk -Fsuccess {'print $2'} |awk -F: {'print $1'} | sort | uniq -c | sort -n | grep -v (неизвестно) | awk {'print $1"|"$2'}

Таким образом, вы также можете блокировать простые незашифрованные отправки SMTP.

Привет!

решение3

Также вы можете отслеживать исходящую почту с помощью Swatch. Когда Swatch обнаруживает, что qmail-send достиг максимума (например, remote 30/30), он отправляет вам оповещение.

Вы можете использовать исправление ограничений tcpserver: дает tcpserver возможность отклонять соединения, когда средняя нагрузка сервера превышает определенное число, когда с одного и того же IP-адреса получено больше определенного числа соединений или когда с машин в одном и том же блоке класса C получено больше определенного числа соединений (т. е. «первые три цифры» в их IP-адресах одинаковы. «1.2.3.4» и «1.2.3.100» находятся в одном и том же блоке класса C).https://qmail.jms1.net/ucspi-tcp/

решение4

Также добавьте эту строку, чтобы защитить ваш сервер от локально аутентифицированных пользователей:

grep "$(date +"%b %_d")" /var/log/maillog |
grep auth: |
grep ALL |
grep '127.0.0.1' |
awk -Ffrom\: {'print $2'} |
awk -Fto\: {'print $1'} |
sort | uniq -c | sort -n | grep -v bounce |
awk {'print $1"|"$2'}

Привет!

Связанный контент