Jump to content

Recommended Posts

Posted

Доброго дня!

 

Совершенно странная хотелка

Есть неизвестный список IP которые маршрутизируются. Из нельзя взять списком, более того - они могут динамически меняться и не попадают в сеть /XX т.е. их никак нельзя описать в виде списка.

 

Хочется для каждого транзитного IP осуществить фильтрацию - "не более Х одновременных сессий, не более Y новых сессий в единицу времени на порт Z"

Нужно это для фильтрации SMTP от спамеров, что бы не мешало "нормальной" работе.

 

 

Собственно вопрос - как сделать "для каждого неизвестного IP"

Для всех - понятно

1 iptables -N SMTP
2 iptables -I OUTPUT -m tcp  -p tcp --dport 25 -j SMTP
3 iptables -I SMTP -p tcp --syn --dport 25 -m connlimit --connlimit-above 3 -j REJECT
4 iptables -A SMTP -m recent -p tcp -m state --state NEW --update --name smtp --seconds 60   --hitcount 10 -j REJECT --reject-with tcp-reset
5 iptables -A SMTP -m recent --set --name  smtp -j ACCEPT

 

Второй вопрос:

Но, кроме всего прочего, возможно я недопонимаю работу модуля recent

Я ожидаю что правило 4 сработает после 10 открытых новый сессий, однако оно срабатывает раньше (после 2 попыток telnet ... 25)

 

Думаю я что-то недочитал в манах - ткните плз что

Posted

Вроде -m recent --mask 255.255.255.255 - это то, что вам надо.

Это я проверю, но все же не затруднит Вас прокомментировать:

 

iptables -A SMTP -m recent -p tcp -m state --state NEW --update --name smtp --seconds 60   --hitcount 10 -j REJECT --reject-with tcp-reset

С моей точки зрения должно срабатывать если я создаю больше 10 новых коннектов за 60 секунд.

Сейчас после рестарта iptables (с выгрузкой модулей) я наблюдаю блокирование третьей попытки.

Мне это не понятно.

Posted

iptables -N SMTP
iptables -N SMTP_NEW
iptables -I OUTPUT --out-interface eth0 -m tcp  -p tcp --dport 25 -j SMTP
iptables -I SMTP             -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A SMTP      -p tcp -m state --state NEW
iptables -A SMTP      -p tcp -m state --state NEW -j  SMTP_NEW
iptables -A SMTP_NEW  -p tcp -m state --state NEW
iptables -A SMTP_NEW  -p tcp -m state --state NEW -m recent --update --name  smtp --seconds 60  --hitcount 4 --rttl  -j REJECT --reject-with tcp-reset
iptables -A SMTP_NEW  -p tcp                      -m recent --set    --name  smtp -j ACCEPT

в такой конфигурации recent работает как ожидалось. (правила без действий - дебаг)

или я дурак или одно из двух =)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.