Это зависит от того, как системы на самом деле настроены, но да, они могут успешно выполнить требования.
Эта ссылка довольно устарела, но должна помочь Вам так или иначе:
Для чего-то, что предлагает гибкость, просмотрите последние ) модуль (ы). Недавние будут отслеживать количество подключений, выполненных IP-адресом за определенный период времени, и могут использоваться для запуска определенного правила. Последний модуль (относительно) загружен ЦП, но по сравнению с загрузкой динамической страницы может быть вполне приемлемым.
Для более подробного объяснения и многоуровневой версии вышеперечисленного, которую я использую, см. эту статью
Имейте в виду, что ipTables не поможет с перегрузкой сети и является довольно неэффективен против любых распределенных атак - его преимущество в безопасности и снижении нагрузки на ваш сервер.
Вы можете использовать iptables, чтобы заблокировать подобного нарушителя, но вы должны быть осторожны, потому что iptables очень загружает процессор. Каждый пакет проверяется на соответствие каждому правилу, поэтому добавление правил может быстро вызвать исчерпание циклов на сервере. Однажды у меня был клиент, который добавлял новое правило каждый раз, когда они хотели кого-то заблокировать, а затем в один прекрасный день у них был немного выше, чем обычно, трафик, и система упала. Таблицы могут уменьшить количество проверяемых правил, но вы не можете просто добавить много правил в iptables.
Другой альтернативой является маршрутизация по черным дырам:
ip route add blackhole $IP_HERE
ip route flush cache
Таблица маршрутизации хешируется (с хеш-таблицей ), тогда как правила iptables нужно рассматривать последовательно, что гораздо менее эффективно. Таким образом, вы можете без проблем использовать сотни тысяч маршрутов, где тысячи правил iptables было бы проблематично выполнять для каждого запроса.
Что касается вашего второго вопроса, вы можете использовать хэш-предел
] для создания автоматического черного списка для злоумышленников. См. Мое сообщение о предотвращении DDoS-атаки для получения более подробной информации, но краткая форма такова:
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min \
--hashlimit-burst 500 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP