Назад | Перейти на главную страницу

Предотвратите спам, ограничив SMTP-соединения с помощью iptables

У нас есть частный VPN-сервис, которым недавно злоупотребляли спамеры, и мы хотели бы иметь возможность ограничить количество SMTP-подключений в минуту / час, чтобы сделать его неэффективным для спамеров, оставаясь функциональным для нормального использования. Я сделал домашнее задание и придумал следующее, но мы все еще получаем сообщения о спаме. Есть идеи получше, или этот подход в чем-то ошибочен?

# if it has more than 60 connections in a 120 seconds interval: DROP
iptables -A Limit_SMTP -m recent -p tcp --update --name ovpn_smtp --seconds 120 \
  --hitcount 30 -j REJECT --reject-with tcp-reset

# otherwise: allow
iptables -A Limit_SMTP -m recent --set --name ovpn_smtp -j ACCEPT

Комментарий в вашем фрагменте не соответствует коду: --hitcount 30 ограничивает это 30 "попаданиями" ... и если вы не используете --state NEW где-то это будет 30 пакетов, а не 30 соединений. Не зная, как вы попадаете в цепочку «Limit_SMTP», невозможно сказать, что она даже используется.

По сути, проблема в том, что как только я подключаюсь к SMTP-серверу, я могу отправить любое количество писем, прежде чем отключиться, если только сервер не заставит меня отключиться.

В зависимости от того, что именно вы пытаетесь заблокировать, вы можете подумать о присоединении к растущему количеству интернет-провайдеров, блокирующих порт 25 и заставляющих своих клиентов использовать порт 587. Положительным моментом этого является то, что люди смогут подключаться и отправлять почту только с почтовых серверов, на которых у них есть учетная запись (или неправильно настроенных открытых ретрансляторов), в результате чего любой рассылаемый ими спам становится проблемой этого почтового сервера. Обратной стороной этого является то, что они смогут подключаться и отправлять почту только с тех почтовых серверов, на которых у них есть учетная запись и которые были настроены для приема подключений через порт 587. Это означает, что они не могут запустить свой собственный почтовый сервер «внутри». ваша сеть, если она не настроена для приема всей их почты и отправки ее на почтовый сервер «за пределами» вашей сети (также известный как smarthost), который затем отправляет ее на серверы назначения.