Я установил работающее реле SMTP вместе с MailScanner. Этот SMTP-ретранслятор не может и не сможет ретранслировать электронную почту извне, только локальную электронную почту.
Мы предоставляем нашим клиентам ретранслятор SMTP, чтобы они могли получать уведомления, например, со своего сайта Wordpress. Но иногда - как вы все знаете, сайты взламывают и могут начать рассылать спам (10 тыс. В час). Я хочу использовать fail2ban, чтобы заблокировать сервер.
Например: сайт клиентов был взломан, и один из их виртуальных хостов рассылает спам по электронной почте. Fail2Ban обнаруживает флуд и блокирует весь трафик на порту 25 с этого сервера - и отправляет мне электронное письмо о том, что «Сервер B заблокирован из-за smtp-flood».
Как этого добиться?
Когда вы используете postfix, посмотрите на конфигурацию наковальни: она позволяет ограничивать соединения (без отправки вам электронной почты). Затем вы можете использовать fail2ban для чтения журналов постфикса и разрыва соединения и информирования вас по почте (см. http://www.postfix.org/postconf.5.html#smtpd_client_connection_rate_limit)
Я обнаружил, что могу заблокировать его с помощью iptables:
iptables -A INPUT -p tcp -m tcp --dport 25 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name DEFAULT --rsource -j DROP
iptables -A INPUT -p tcp -m tcp --dport 25 -m state --state NEW -m recent --set --name DEFAULT --rsource
Если клиент отправляет более 4 писем в минуту, он блокируется.