O SSHd não bane endereços IP. Sempre que encontra uma falha de autenticação, adiciona uma entrada ao seu log e continua. Outros softwares, no entanto, podem ler esses logs posteriormente e banir IPs de acordo com suas regras. O daemon mais comum usado para essa tarefa é o fail2ban.
O Fail2ban funciona com cadeias. Cada cadeia é associada a um serviço, um arquivo de log e segue um conjunto específico de regras. Sempre que um IP entra no escopo das regras de uma cadeia, ele é imediatamente colocado na lista negra por um determinado período de tempo (também especificado nas regras da prisão). Aqui está um exemplo de uma cadeia fail2ban para o serviço SSH (definido em /etc/fail2ban/jail.conf
no meu caso):
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Graças a essa regra, se algum IP falhar no login mais de três vezes em 10 minutos, o fail2ban daemon irá adicioná-lo a uma cadeia de iptables , resultando na perda de todos os pacotes de rede de entrada deste IP.
Agora, se você considerar a seguinte prisão ...
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 1
findtime = 60
bantime = -1
... bem neste caso, qualquer IP que não autentique será banido permanentemente. Observe que, ao usar um filtro personalizado , é totalmente possível segmentar apenas os logins raiz. Lembre-se também que os logins raiz estão desabilitados por padrão por um bom motivo: a conta raiz não deve estar disponível para qualquer pessoa se conectar diretamente. É muito mais seguro fazer login com seu nome de usuário e usar sudo
sempre que você precisar: isso requer intrusos para encontrar o nome de usuário e a senha, enquanto o nome de usuário root já é famoso.