Назад | Перейти на главную страницу

Единственное решение IPTables для блокировки любого IP-адреса, который сделал слишком много подключений или повторных подключений

Я ищу единственное решение IPTables для блокировки любого IP-адреса, который сделал слишком много (например, более 5) подключений или повторных подключений за короткий период времени (например, 1 минуту) на определенном порту. Заблокированные адреса должны быть заблокированы как минимум на 30 минут.

Предлагаемое вами решение замедлит скорость новых подключений, но источник может вернуться через 180 секунд и даже может обнаружить, что каждые 60 секунд это нормально. Если вы хотите, чтобы он был заблокирован как минимум на 30 минут, как вы просили (проверьте также параметр --rcheck вместо --update), вам необходимо добавить источник в другой недавний список источников, вместо того, чтобы удалять пакеты. Так получается:

iptables -N BANNING
iptables -A BANNING -m recent --set --name BANNED --rsource

iptables -A INPUT -m recent --name BANNED --update --seconds 1800 --reap -j DROP
iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j BANNING

Спасибо Zoredache за то, что указали мне ссылку. После поиска в Интернете я нашел аналогичное решение в техническом блоге Девона Хилларда.

Эти два простых правила делают свою работу.

iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource

iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP

Источник: Использование IPTables для предотвращения атак грубой силы SSH