52 votes

Prévenir les attaques par force brute contre ssh ?

Quel outil ou technique utilisez-vous pour empêcher les attaques par force brute contre votre port ssh. J'ai remarqué dans mes journaux de sécurité que j'ai des millions de tentatives de connexion en tant que différents utilisateurs via ssh.

Ceci est fait sur une machine FreeBSD, mais j'imagine que c'est applicable partout.

12voto

samt Points 713

Comme le souligne Chris, utilisez des clés de chiffrement plutôt que des mots de passe.

Ajoutez à cela :

  • utiliser une liste blanche dans la mesure du possible.

Combien de personnes ou de sites (avec des IP publiques flottantes) avez-vous réellement besoin d'accéder à vos connexions ssh publiques ?

En fonction du nombre d'hôtes ssh publics que vous gérez et de la possibilité de réduire vos critères généraux de connexion, il peut être plus simple et plus facile à maintenir de limiter l'accès à un petit nombre d'hôtes externes.

Si cela fonctionne pour vous, cela peut vraiment simplifier vos frais d'administration.

12voto

Grzegorz Gierlik Points 6465

En plus des autres bonnes suggestions, une chose très facile à faire est de limiter le nombre de connexions entrantes. Limitez le nombre de connexions à 3 par minute et par IP :

iptables -A INPUT -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

6voto

David Gardner Points 1499

Utilisez l'option "AllowUsers" dans sshd_config pour vous assurer que seul un petit groupe d'utilisateurs peut se connecter. Tous les autres seront rejetés, même si leur nom d'utilisateur et leur mot de passe sont corrects.

Vous pouvez même restreindre les utilisateurs à des logins de un hôte particulier.

par exemple,

AllowUsers user1 user2@host.example.com

Cela permet de réduire l'espace de recherche et d'éviter les anciens utilisateurs qui ont été accidentellement laissés à la traîne ou activés (bien que ces derniers doivent être désactivés de toute façon, c'est un moyen facile d'empêcher qu'ils soient utilisés pour une entrée basée sur SSH).

Cela n'empêche pas totalement les attaques par force brute, mais permet de réduire le risque.

3voto

Utilisez quelque chose comme cela avec PF :

table <ssh-brute> persister
bloc dans le quick log du label ssh_brute
pass in on $ext_if proto tcp to ($ext_if) port ssh modulate state \N- (passer sur $ext_if proto tcp to ($ext_if) port ssh moduler l'état \N)
(max-src-conn-rate 3/10, overload flush global)

2voto

Russ Cam Points 58168

Le cliquetis des orifices est un moyen assez solide d'empêcher ce genre de choses. C'est un peu compliqué, parfois ennuyeux, mais cela élimine définitivement le problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X