LinuxForum.Fans
Тема

iptables блокирует ВСЕ ип

Автор: koka3000 7 сообщений 1063 просмотров
#330533

Вот кусок из правило (специально поставил другие число, чтобы с 2 запросов на сайт уже лочило на минуту и можно было тестировать):

text
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

iptables -N webserver_packets

iptables -A webserver_packets -p tcp -m limit --limit 1/minute --limit-burst 200 -j ACCEPT iptables -A webserver_packets -p tcp -m limit --limit 1/minute --limit-burst 1 -j LOG --log-level warning --log-prefix "site_ddos" iptables -A webserver_packets -j DROP

iptables -A INPUT -p tcp --dport 80 -j webserver_packets

Зашел с компа, залочил себя, потом с другого сервера И ОН ТОЖЕ ЗАЛОЧИЛСЯ! Как так получается, что это за защита, почему они ВСЕХ лочит?
Подскажите, как исправить..

#330586

koka3000, почитайте хоть man iptables...

#330662

По моему в созданую цепочку webserver_packets нужно ещё заворачивать трафик по определённым правилам. Типа так

text

iptables -N webserver_packets
IPTABLES -A INPUT -p tcp -j  webserver_packets
#330759

kisil, так вот же:

text
iptables -N webserver_packets
...
iptables -A INPUT -p tcp --dport 80 -j webserver_packets
Wolfenberg написал:
koka3000, почитайте хоть man iptables...

Так я и написал эти правила, читаю ман.

#330761

koka3000, может, в этом дело:

text
iptables -A webserver_packets -j DROP
iptables -P INPUT DROP

?

#331147
Wolfenberg написал:
koka3000, может, в этом дело:
text
iptables -A webserver_packets -j DROP
iptables -P INPUT DROP

?

так оно же должно пропускать по правилу
iptables -A webserver_packets -p tcp -m limit --limit 1/minute --limit-burst 200 -j ACCEPT

Я захожу на сайт, меня пропускает. Потом делаю много коннектов - лочит, потому что исчерпал 200 пакетов. Все работает нормально.
Но если я захожу с ДРУГОЙ машины, ее же не должно было лочить, а она тоже залочена.

И у меня вопрос, как сделать, чтобы для каждого ип были свои счетчики limit?

#331151

iptables -p tcp --dport 80 -m connlimit --connlimit-above 200 -j REJECT

Но так делать не надо, лучше ограничить количество подключений на frontend и вывести какое-то вменяемое сообщение.

"koka3000⇓" написал:
-j DROP

Так делать тем более не надо. Потому что вполне нормальный клиент мало того, что не поймет, почему его не пускает, так еще и будет долго и безрезультатно ждать хоть какого-то ответа. Используйте REJECT.

Войдите или зарегистрируйтесь, чтобы ответить.