LINUX.ORG.RU

ChatGPT:

Если команды с использованием модуля connlimit не работают, можно воспользоваться другим подходом для ограничения количества подключений с одного IP-адреса на веб-сервере с помощью iptables. Вместо модуля connlimit, мы будем использовать модуль hashlimit, который позволяет ограничивать соединения на основе хэшей.

Вот пример команды iptables для ограничения количества подключений с одного IP-адреса:

iptables -A INPUT -p tcp --syn --dport <port> -m hashlimit --hashlimit-above <limit>/hour --hashlimit-mode srcip --hashlimit-name conn_limit -j DROP

Где:

  • <port> - порт веб-сервера, к которому вы хотите применить ограничение.
  • <limit> - максимальное количество подключений с одного IP-адреса в час.

Например, если вы хотите ограничить количество подключений с одного IP-адреса до 100 в час на порту 80, команда будет выглядеть так:

iptables -A INPUT -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 100/hour --hashlimit-mode srcip --hashlimit-name conn_limit -j DROP

Обратите внимание, что эта команда добавляет правило iptables в цепочку INPUT. Если у вас уже есть другие правила, убедитесь, что это правило добавлено в нужное место в цепочке.

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

Если вы хотите применить ограничение только к определенному интерфейсу, вы можете добавить опцию -i перед именем интерфейса в команде iptables. Например, для интерфейса eth0 команда будет выглядеть так:

iptables -A INPUT -i eth0 -p tcp --syn --dport 80 -m hashlimit --hashlimit-above 100/hour --hashlimit-mode srcip --hashlimit-name conn_limit -j DROP

Убедитесь, что вы запускаете команды iptables с достаточными привилегиями (например, с использованием sudo), чтобы добавить правило в таблицу iptables.

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

Бдядский ИИ нагло врёт!

hashlimit ограничивает число событий за указанное время, т.е. скорость этих событий. К числу одновременных соединений hashlimit имеет очень отдаленное отношение.

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

Нужен именно iptables, мне для лаб Использовал iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 5 –connlimit-mask 32 -j DROP

У меня по условию 3 виртуальных машины, debian и 2 fedora, deb - веб-сервер, 1 из fed - обычный пользователь, который имеет доступ к веб-серверу, 2 fed - файловый сервер, надо с ними что-то интересное сделать с помощью iptables, хотел ограничить доступ, чтобы обычный пользователь мог открывать страницу ограниченное количество раз, но почему-то не получается Правила на deb: iptables -A INPUT -p tcp –dport 22 -m limit –limit 3/minute –limit-burst 3 -j ACCEPT iptables -A INPUT -p tcp –dport 22 -m recent –set –name ssh –rsource iptables -A INPUT -p tcp –dport 22 -m recent –update –seconds 60 –hitcount 4 –rttl –name ssh –rsource -j DROP iptables -A INPUT -p tcp –dport 80 -m limit –limit 100/second –limit-burst 200 -j ACCEPT iptables -A INPUT -p tcp –dport 80 -j DROP iptables -A INPUT -p tcp –dport 111 -m recent –name rpc –rcheck –seconds 60 –hitcount 3 -j ACCEPT

Okokokokok
() автор топика