1 votes

Bloquer l'adresse IP après l'échec de la connexion SSH

Je suis sous ubuntu et j'ai configuré les règles d'iptable pour que les paquets soient supprimés si j'ai 5 connexions en une minute.

Tout se passe bien, mais au bout de 20 minutes, le hacker recommence à faire du "brute forcing".

Je veux que s'il y a des tentatives de force brute, cette adresse IP soit placée dans hosts.deny.

Est-il possible de le faire sans utiliser de logiciel tiers ?

9voto

jammus Points 1796

Quelle est votre aversion pour les logiciels tiers ?

Denyhosts est un paquetage pour Ubuntu et fonctionne dès sa sortie de la boîte. recommandé ici. Si vous le souhaitez, vous pouvez écrire votre propre script qui fait exactement ce que fait denyhosts, mais quel en serait l'intérêt ?

3voto

mcqwerty Points 2106

Je recommanderais certainement d'utiliser quelque chose comme Fail2ban ou DenyHosts pour faire cela. C'est exactement ce pour quoi ils sont faits, et comme le dit Zoredache, je ne vois pas pourquoi vous auriez un problème avec l'utilisation d'un programme tiers.

Ceci étant dit, vous pourrait utiliser le recent pour IPtables, qui existe dans les versions plus récentes du logiciel. (Je ne sais pas exactement à quel point, mais si vous vous êtes tenu à jour, je pense que vous devriez l'avoir). Il n'est pas aussi facile à configurer ni aussi complet que les programmes tiers, mais c'est une possibilité. Un ensemble de règles comme celles-ci :

iptables -A INPUT -m recent --name nobruteforce --rcheck -j DROP
iptables -A INPUT -m recent <other options> --name nobruteforce --set -j DROP

ajoutera tous les paquets qui correspondent au <other options> à une liste noire et bloquera tous les autres paquets provenant de la même adresse IP source. Vous devez remplacer <other options> avec les options IPtables que vous utilisez normalement pour identifier les attaques par force brute ; par exemple, il pourrait s'agir de quelque chose comme

iptables -A INPUT -m recent -p tcp --dport 22 --name nobruteforce --set -j DROP

Toutefois, il convient de noter que tous qui arrive sur le port 22 (et qui n'a pas été soumis à une règle antérieure) déclencherait ce processus. Soyez prudent avec l'option recent car cela pourrait gravement perturber les choses si vos règles produisaient un faux positif. Si vous devez l'utiliser, pour en limiter les conséquences, je suggérerais d'ajouter une limite de temps et/ou un nombre minimum de coups à la deuxième règle :

iptables -A INPUT -m recent --name nobruteforce --rcheck --seconds 7200 --hitcount 5 -j DROP

Les paquets ne seront bloqués qu'après la réception de 5 paquets de force brute et, au bout de 2 heures (7200 secondes), l'adresse source sera supprimée de la liste noire.

Plus d'informations sur ipt_recent est disponible à l'adresse suivante http://snowman.net/projects/ipt_recent/

0voto

Ben Lever Points 754

Une solution alternative au blocage de l'ip est de déplacer le port sur lequel sshd écoute. La plupart des enfants script ne prendront pas la peine d'essayer de trouver SSH sur un autre port.

Vous pouvez également désactiver l'authentification par mot de passe et n'utiliser que l'authentification par clé publique.

Une autre option est le knocker de port (comme knockd).

Une chose à faire, si ce n'est déjà fait, est de désactiver l'accès à la racine.

0voto

Bond Points 701

Il existe un paquetage connu sous le nom de denyhosts, qui fonctionnera dans votre situation et qui, après avoir trouvé un seuil de tentatives de connexion, bloquera l'attaquant. apt-get install denyhosts fera l'affaire.

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