1

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

Я пытаюсь ограничить каждый IP-адрес в моей сети (внутренний IP-адрес), чтобы иметь возможность устанавливать соединение с почтовым сервером один раз в 30 секунд, но его не следует применять к внешним IP-адресам, которые почтовый сервер когда-нибудь получит от пересылки почты другой разрешенный почтовый сервер.

Я прочитал man- страницу iptables и обнаружил --connlimit-above N но это только ограничивает соединение, а не единицу времени.

Кто-нибудь может показать мне, как это можно сделать с помощью iptables или ufw?

2 ответа2

0

Хорошо, я НЕ проверял это, поэтому заранее прошу прощения, если это не сработает (но, надеюсь, это поможет вам понять это):

iptables -A INPUT -s 192.168.0.0/24 -p tcp -m state --state ESTABLISHED --tcp-flags FIN,ACK FIN,ACK --dport 25 -m recent --name smtplimit --set
iptables -A INPUT -s 192.168.0.0/24 -p tcp -m state --state ESTABLISHED --tcp-flags RST RST --dport 25 -m recent --name smtplimit --set
iptables -A INPUT -s 192.168.0.0/24 -m recent --name smtplimit --rcheck --seconds 30 --hitcount 1 -m limit --limit 1/minute -j LOG --log-prefix 'SMTP limit:'
iptables -A INPUT -s 192.168.0.0/24 -m recent --name smtplimit --rcheck --seconds 30 --hitcount 1 -j DROP
0

Это стандартный случай ограничения скорости:

iptables -I INPUT -p tcp --dport 25 -i eth0 -s 192.168.0.0/24 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 25 -i eth0 -s 192.168.0.0/24 -m state --state NEW -m recent --update --seconds 30 --hitcount 2 -j DROP

Здесь я предположил, что ваша локальная сеть 192.168.0.0/24, а ваш интерфейс eth0, если нет, пожалуйста, измените соответствующим образом.

Первое правило обнаруживает все новые пакеты, поступающие через eth0 из вашей локальной сети и предназначенные для TCP-порта 25, и добавляет IP-адрес в недавний список; вторая команда, получив пакет NEW на том же порту, проверяет недавний список (--update) и, если адрес был введен в список менее --seconds 30 лет назад, отбрасывает пакет, если заданное число --hitcounts 2 был достигнут.

Обратите внимание, что это применяется только к НОВЫМ пакетам: если у вас есть законный разговор, вы не хотите вмешиваться в это, просто заблокируйте создание другого. В этом мой ответ полностью отличается от Анджело

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .