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

Могу ли я использовать ограничение скорости iptables, чтобы временно блокировать попытки перебора FTP-сервера?

Это похоже на другие сообщения об атаках методом перебора, но немного более конкретно:

Как правило, мы можем обеспечить соблюдение приличных паролей, и политика имен пользователей также позволяет не стать жертвой того, что пытается сделать 99,9% грубой силы FTP ... но я не вижу причин допускать тысячи попыток бесконечно, а иногда они могут заставить заполнять файлы журнала большим количеством шума, что затрудняет поиск потенциально более целевых вещей.

Итак, для пассивного FTP, будет ли какое-то разумное ограничение скорости в iptables для входящего TCP 21 быть достаточно эффективным для отсечения огромного количества неудачных попыток, не мешая нормальному использованию? Я предполагаю, что это будет сделано через ограничивающие скорость соединения с того же IP-адреса на TCP 21 .. это правильно? Есть ли проблемы, о которых я не думаю?

Далее, тогда; что бы вы посоветовали с помощью простой команды iptables на брандмауэре / маршрутизаторе бастиона, чтобы просто обеспечить некоторую защиту от самых сложных / самых быстрых атак грубой силы? Я думаю, что это будет что-то вроде триггера 25 подключений (исходя из принципа, что успешный вход в систему будет только одним подключением к TCP 21) в течение минуты или около того, а затем блокировка на полчаса. Эти цифры кажутся разумными?

(другая информация: это для брандмауэра / маршрутизатора debian, который защищает DMZ смешанных ОС)

iptables -A INPUT -p tcp -m state --state NEW --dport 21 -m recent --name ftpattack --set
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --name ftpattack --rcheck --seconds 60 --hitcount 4 -j LOG --log-prefix 'FTP REJECT: '
iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --name ftpattack --rcheck --seconds 60 --hitcount 4 -j REJECT --reject-with tcp-reset

эти правила рядом или вверху вашего набора правил разрешит только три подключения к порту 21 с любого заданного IP-адреса в течение 60-секундного окна. Чтобы разрешить n, используйте --hitcount n+1; чтобы использовать окно больше 60 секунд, увеличьте --seconds 60.

Как упоминал MadHatter, последний модуль - это то, что вы хотите использовать, однако вам также необходимо иметь возможность ограничить количество попыток входа в систему, которые пользователь может попробовать в одном TCP-соединении. Если пользователь может попробовать 1000 попыток, прежде чем он будет вынужден отключиться и повторно подключиться, то ограничение подключений через последний модуль будет довольно бесплодным. Вам нужно будет сказать (через конфигурацию FTP-демона - см. Документацию для этого), что пользователю разрешено только попытаться войти в систему, скажем, 5 раз для каждого соединения, а затем использовать недавнее правило, чтобы сказать, подключаются ли они больше, чем скажем 5 раз в течение минуты, затем заблокируйте их. Да, разрешение 25 попыток звучит слишком много, но этого недостаточно для грубой силы и помогает избежать множества ложных срабатываний. Я использую аналогичные правила для SSH и опции сервера OpenSSH MaxAuthTries. Надеюсь это поможет.

Используйте Denyhosts ... 3 удара - ваш аут!

Работает как часы..

Или ... более хардкорно ... выделенный межсетевой экран с Snort / IDS

Надеюсь это поможет