Хорошая альтернатива использования различных приложений по типу denyhosts и Fail2Ban, это Iptables, он хорошо справляется с защитой от брутфорса, только нужно, чтоб в ядре был подключен модуль recent (ipt_recent).
Однако iptables не спасает от подбора паролей, например на защищаемые apache`ем разделы или где проверка пароля осуществляется на PHP или PERL, но там можно использовать свои скрипты, либо настроить на сканирование соответствующих логов скрипт Fail2Ban.
Создаем цепочку для подсчета попыток соединений
# iptables -N ssh_brute_check
Если за последние 10 минут (600 секунд) с одного адреса было 5 или более новых соединений — блокируем этот адрес
# iptables -A ssh_brute_check -m recent —update —seconds 600 —hitcount 5 -j DROP
В противном случае — разрешаем, и при этом заносим в список
# iptables -A ssh_brute_check -m recent —set -j ACCEPT
Все попытки открыть новое соединение по SSH направляем на проверку
# iptables -A INPUT -m conntrack —ctstate NEW -p tcp —dport 22 -j ssh_brute_check