"Беседа, беседа..." (с)

А если по делу, Вам, уважаемый ТС, действительно привели несколько вариантов.
Предложу Вам свой.
# Создание цепочек для брутфорса
iptables -N bruteforce
iptables -N bruteforce_remove
#
.....
# "Стандартное" начало для цепочки INPUT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#
.......
# Пример использования защиты брутфорса
iptables -A INPUT -p tcp -dport 443 -j bruteforce # Если там проверку пользователь не пройдет, то этого злыдня там заблокируют
iptables -A INPUT -p tcp -dport 443 -j ACCEPT
#
# bruteforce
iptables -A bruteforce -j bruteforce_remove # цепочка проверки периода блокировки заблокированных ip
iptables -A bruteforce -m conntrack --ctstate NEW -m recent --name bruteforce --rsource --update --seconds 600 --hitcount 20 -j DROP
iptables -A bruteforce -m conntrack --ctstate NEW -m recent --name bruteforce --rsource --update --seconds 5 --hitcount 5 -j DROP
iptables -A bruteforce -m recent --name bruteforce --rsource --set
#
# bruteforce_remove если злыдень в течении 12 часов не стучался, то разрешаем ему снова попытки соединения
iptables -A bruteforce_remove -m recent --name bruteforce --rsource --rcheck --seconds 43200 -j RETURN
iptables -A bruteforce_remove -m recent --name bruteforce --rsource --remove
#
В общем, если есть вопросы, пишите...