iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --name sshattack --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshattack --rcheck --seconds 60 --hitcount 4 -j LOG --log-prefix 'SSH REJECT: '
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshattack --rcheck --seconds 60 --hitcount 4 -j REJECT --reject-with tcp-reset
Veja, por exemplo, meu artigo sobre o assunto para obter mais detalhes (incluindo onde em seu regras de firewall para colocar isso, o que importa ).
As recomendações dos outros respondentes para permitir que apenas o ssh baseado em chave finamente endosse, porque ele torna inútil a adivinhação de senha de força bruta; mas você poderia ir ainda mais longe e permitir apenas a autenticação de dois fatores, veja meu artigo no yubikey para mais detalhes sobre isso.