Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если пароль не банальный и его составитель хоть немного запарился (а это обязаны контролировать некоторые люди), то перебор по ssh невозможен. Недавно кто-то из Германии пытался подобрать пароль. Никакого fail2bun / задержки на компьютере не стояло. Атака на компьютере длилась 55 минут, то есть 3300 секунд. За это время было попробывано 15846 паролей, для моего пользователя (с крайне секретным названием "user") - 125. Получается 125 паролей за 3300 секунд, то есть 0,04 пароля в секунду. Да даже если учесть, что все попытки были в моего пользователя, а не в воздух (а это, по факту, очень маловероятно), то получается 4.8 паролей в секунду. Удачи с такой скоростью найти что-то к тепловой смерти вселенной.
Тем, что бан протухает через 20 секунд после первой неудачной попытки.Если точнее, то с момента последней, т.к. стоит --update. И recent так же позволяет допускать несколько попыток с помощью опции --hitcount и свободно изменять срок бана.
В любом случае здесь главное идея. Фильтрация не на основе ip-адреса, а на основе наглости лезущего :)Все понял, этими словами Вы не противопоставляете принцип hashlimit принципу recent, а выделяете их на фоне остальных средств.
iptables -A INPUT -p tcp –dport 3522 -m recent –set –name SEC –syn -m state –state NEW -j ACCEPT
iptables -A INPUT -p tcp –dport 3522 -m recent –update –seconds 60 –hitcount 3 –rttl –name SEC -j LOG –log-prefix “BRUTE FORCE“
iptables -A INPUT -p tcp –dport 3522 -m recent –update –seconds 60 –hitcount 3 –rttl –name SEC -j DROP
Specifies the maximum number of concurrent unauthenticated con-
nections to the SSH daemon. Additional connections will be
dropped until authentication succeeds or the LoginGraceTime
expires for a connection. The default is 10.
Alternatively, random early drop can be enabled by specifying the
three colon separated values ``start:rate:full'' (e.g.
"10:30:60"). sshd(8) will refuse connection attempts with a
probability of ``rate/100'' (30%) if there are currently
``start'' (10) unauthenticated connections. The probability
increases linearly and all connection attempts are refused if the
number of unauthenticated connections reaches ``full'' (60).
Защищаем SSH от брутфорса на любом порту