Защита SSH от брутфорса
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 60000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j DROP
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
Первое правило разрешает 2 попытки в течение часа. После превышения 2 попыткок за указанное время, второе правило (ACCEPT) перестает работать, срабатывает следующее правило (DROP). После этого нельзя подключиться в течение 60 секунд (--hashlimit-htable-expire). Следующая попытка будет доступна через минуту, но если не дождаться и повторить попытку, то счетчик будет сброшен в начальное состояние - 1 минуту. Т.е, если брутфортс будет долбить порт после блокировки, то при каждой попытке будет сбрасыватья счетчик и так по кругу.
Те кто должен иметь доступ на сервер - будут заходить без проблем, имея несколько попыток без ожидания между ними. И даже если в этих попытках опечатался, то через минуту моножно заходитьь снова. Модуль hashlimit сохраняет свое состояние в /proc/net/ipt_hashlimit/SSH:
cat /proc/net/ipt_hashlimit/SSH
55 ХХ.ХХ.ХХ.ХХ:0->0.0.0.0:0 11533000 230400000 115000000
первая цифра - оставшиеся секунды.








