LINUX.ORG.RU
ФорумAdmin

Вопрос IPTABLES ограничение запросов

 


0

1

Есть сервер на котором нужно ограничить кол-во запросов с 1 ip в секунду, я делаю командой iptables -I INPUT -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 1/second --hashlimit-burst 15 --hashlimit-mode srcip --hashlimit-srcmask 24 --hashlimit-name blip -j DROP

Она работает, Но проблема в том, что нужно чтоб она ограничивала все айпи кроме определенного к примеру 1.1.1.1 Пробывал писать iptables -I INPUT 1 -s 1.1.1.1 -j ACCEPT iptables -I INPUT -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 1/second --hashlimit-burst 15 --hashlimit-mode srcip --hashlimit-srcmask 24 --hashlimit-name blip -j DROP Но не работает.

iptables -I INPUT 1 ! -s 1.1.1.1 -j ACCEPT
iptables -I INPUT -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 1/second --hashlimit-burst 15 --hashlimit-mode srcip --hashlimit-srcmask 24 --hashlimit-name blip -j DROP

А так?

dhameoelin ★★★★★ ()
Последнее исправление: dhameoelin (всего исправлений: 1)
Ответ на: комментарий от dhameoelin

Работает

Помоему работает, спасибо, а в чем разница, что дает ! ?

dimetr50 ()
Ответ на: Работает от dimetr50

https://www.opennet.ru/docs/RUS/iptables/

... Как и ранее, символ !, установленный перед адресом, означает логическое отрицание, т.е. --source ! 192.168.0.0/24 означает любой адрес кроме адресов 192.168.0.x.

yrii2121 ()

У тебя второе правило вставляется в начало цепочки.

Deleted ()
Ответ на: Работает от dimetr50
iptables -A INPUT ! -s 1.1.1.1 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 1/second --hashlimit-burst 15 --hashlimit-mode srcip --hashlimit-srcmask 24 --hashlimit-name blip -j DROP

Вот так попробуй

dhameoelin ★★★★★ ()
Ответ на: комментарий от Deleted

нет

я его ставил в первое и перепроверял оно было в первом

dimetr50 ()
Ответ на: комментарий от dimetr50

Откуда я знаю, пойдёт или нет? Синтаксис я скопипастил из ОП-поста особо не проверяя. Навскидку - работать должно. На лабе у меня заработало, вроде как.

dhameoelin ★★★★★ ()
Ответ на: комментарий от dhameoelin

Покрайне мере до этого как делал все время блочило айпи) а сейчас норм вроде

dimetr50 ()
Ответ на: нет от dimetr50
iptables -I INPUT ! -s 1.1.1.1 -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 1/second --hashlimit-burst 15 --hashlimit-mode srcip --hashlimit-srcmask 24 --hashlimit-name blip -j DROP

p.s. ты бы iptables -nL показал, а то может у тебя проблема в другом месте.

Deleted ()
Последнее исправление: MyLittleLoli (всего исправлений: 1)
Ответ на: нет от dimetr50

Неверю. Сначала -I 1 а потом просто -I что значит тоже самое. т.е. второе правило будет выше первого.
Вообще говоря использовать всякие -I не самый лучший вариант, как раз из-за этого и возникают проблемы/не-понимание. -I разве что для тестов годиться.
Или используйте последовательное добавление, которое будет визуально понятно. Или создайте отдельную цепочку.

anc ★★★★★ ()
Ответ на: комментарий от dimetr50

На этой картинке accept всем кроме, 185.x.x.x т.е. следующее правило будет работать только для 185.x.x.x
ЗЫ Скидывать правила картинками - «это перебор» (с). Показываете текстом и здесь.

anc ★★★★★ ()
Ответ на: комментарий от Deleted

Плохой пример с ! . Потом понадобиться больше одного ip... вобщем кто-то и за руководство к действию может воспринять.
Надеюсь догадываетесь какая следующая тема будет? :)

anc ★★★★★ ()
Ответ на: комментарий от Deleted

Если вы обратили внимание, то это начало цепочки, так что по большому счету уже достаточно.

anc ★★★★★ ()
Ответ на: комментарий от anc

Может у него потом сразу REJECT идет.

Плохой пример

Ну он хотя бы делает то, что хочет ТС, а не наоборот.

Потом понадобиться больше одного ip

ipset в помощь.

Deleted ()
Ответ на: комментарий от Deleted

Может у него потом сразу REJECT идет.

А не пофиг? Вы реально правила смотрели? Такое чувство что нет.

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.