Comme @sufferer l'a mentionné dans une autre réponse, certaines distributions Linux incluent des moniteurs pour se protéger des attaques par force brute sur des services externes visibles comme SSH, par exemple DenyHosts
ou fail2ban
. Ces moniteurs vérifient les fichiers journaux à la recherche de tentatives échouées et ajoutent des filtres pour bloquer les adresses IP qui ont trop d'échecs (le nombre est configurable et indépendant de la configuration de sshd).
Si votre distribution inclut fail2ban
qui protègent les services en ajoutant des règles au pare-feu iptables, vous pouvez vérifier quels services ou "prisons" sont supervisés à l'aide de la commande :
sudo fail2ban-client status
Le jail pour le service SSH est sshd, donc pour vérifier s'il y a des IPs interdites vous pouvez utiliser :
sudo fail2ban-client status sshd
et de débanaliser certaines IP a.b.c.d :
sudo fail2ban-client set sshd unbanip a.b.c.d
Si vous avez DenyHosts
la liste des adresses interdites se trouve dans le fichier /etc/hosts.deny ; vous pouvez modifier ce fichier directement en tant que root. Pour accorder à une IP a.b.c.d un accès permanent, vous pouvez ajouter la ligne suivante sshd:a.b.c.d
au fichier /etc/hosts.allow.
Comme toujours, le man
La commande est votre amie :
man fail2ban
man hosts.deny
Il doit exister d'autres utilitaires similaires, mais je n'ai utilisé que ceux-ci.
Notez que l'augmentation du nombre de tentatives autorisées dans la configuration de sshd ne libère pas les IPs interdites, mais permet seulement plus d'échecs dans la même connexion. Si le nombre autorisé est dépassé, l'utilisateur/attaquant se reconnecte simplement pour essayer n fois de plus.
D'autres services ont intégré la liste de bannissement (comme le montre la réponse de Rajnesh Thakur concernant le redémarrage du serveur VNC).
Remarque : Si vous utilisez fail2ban et utilisez un fichier jail.local pour configurer les prisons, ajoutez ce qui suit en haut du fichier pour empêcher que votre adresse IP soit bannie :
[DEFAULT]
ignoreip = 10.10.1.1 10.0.2.0/24
Redémarrez ensuite fail2ban, par exemple en utilisant systemctl restart fail2ban . Le premier IP autorise une seule adresse, le second autorise tout le sous-réseau 10.0.2.x ; ajustez selon les besoins.