Il existe un certain nombre de packages différents pour bloquer les adresses IP à partir desquelles des attaques SSH par force brute sont lancées sur votre système. Par exemple:
Quels sont les avantages / inconvénients de ceux-ci ou d'autres?
Ma solution actuelle consiste à prendre l'e-mail que logwatch génère chaque jour et à vider les adresses IP flagrantes dans un fichier texte que j'alimente dans un script qui reconstruit ensuite iptables. C'est hacky, chronophage et manuel, et j'aimerais mieux.
(Notez que je n'ai pas demandé quelle était la "meilleure" façon de résoudre le problème, car il n'y a pas de "meilleure" façon de faire quoi que ce soit.)
Une protection simple et efficace contre les attaques basées sur l'analyse consiste à ne pas utiliser le port standard. 443 (le port https) vous expose à différentes attaques par force brute qui ne vont pas casser vos mots de passe faibles et peut éventuellement passer par plus de pare-feu que le port par défaut (22).
La plupart des méthodes pour empêcher les attaques par force brute ssh sont d'excellents moyens de s'auto-faire (oups, j'ai foiré la configuration! , l'attaquant vient de / a subverti une machine dans le même sous-réseau que moi (plage IP dynamique, réseau universitaire ...) et je suis banni aussi!).
Si vous ne vous connectez qu'à partir de quelques endroits, vous pouvez simplement mettre en liste blanche les adresses IP source. Ce n'est évidemment pas bon si vous voulez utiliser votre ordinateur portable ou votre téléphone portable en déplacement.
Avoir un démon ssh qui n'écoute que les connexions IPv6 devrait vous protéger des analyses pendant quelques années encore. Mais de nombreux pare-feu ne vous permettent pas de transporter IPv6 de manière raisonnable.
Une autre méthode que vous ne mentionnez pas est le portage . Il ne souffre pas de problèmes d'auto-DoS (autres qu'une mauvaise configuration), mais il ne traverse pas bien les pare-feu et peut ajouter plusieurs secondes de latence à l'établissement de la connexion.
Si vous avez de bons mots de passe ou si vous pouvez vivre sans authentification par mot de passe, désactivez l'authentification par mot de passe. (Les clés et les mots de passe à usage unique sont suffisants pour la plupart des cas d'utilisation: si vous ne faites pas suffisamment confiance à la machine cliente pour stocker une clé ssh, vous ne lui faites pas confiance non plus pour ne pas avoir un enregistreur de frappe). Ensuite, les attaques par force brute vous coûteront un peu de CPU et de bande passante mais ne vous exposent pas à une intrusion (tant que vous n'avez pas vérifié qu'aucune de vos clés ne provienne d'un OpenSSL Debian à faible entropie ).
Dans l'ensemble, notez que le changement de port ne réduit pas considérablement votre exposition. Vous obtiendrez moins d' analyse , mais tout ce que vous pouvez couper est le fruit bas qui cherche à exploiter les anciennes vulnérabilités et les mots de passe faibles. Tant que vous gardez votre démon à jour et appliquez des mots de passe raisonnables ou des limites de taux de tentatives raisonnables, le changement de port est plus une responsabilité qu'une mesure de sécurité.
la source
.ssh/config
. Le verrouillage est un problème si le pare-feu ne vous laisse pas passer, et la solution la plus simple est de s'en tenir au port 22 et d'écouter également le 443. Je suis d'accord que changer de port n'améliore pas vraiment la sécurité, peut-être devrais-je le préciser . Je ne sais pas pourquoi vous considérez qu'il est impossible pour un démon SSH de ne pas prendre en charge l'authentification par mot de passe: il s'agit simplement d'ajouter une ligne àsshd_config
OpenSSH, l'implémentation la plus courante.