bash: blocage de l'user après plusieurs tentatives infructueuses de connection

J'ai un problème.

Quelqu'un tente d'entrer dans mon server, et cela arrive trop souvent. Par exemple:

Aug 19 14:11:42 oplot sshd[18373]: input_userauth_request: invalid user oracle Aug 19 14:11:42 oplot sshd[18372]: pam_unix(sshd:auth): check pass; user unknown Aug 19 14:11:42 oplot sshd[18372]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.38.137.44 Aug 19 14:11:44 oplot sshd[18372]: Failed password for invalid user oracle from 211.38.137.44 port 36 841 ssh2 Aug 19 14:11:45 oplot sshd[18373]: Received disconnect from 211.38.137.44: 11: Bye Bye Aug 19 14:11:47 oplot sshd[18374]: Invalid user test from 211.38.137.44 Aug 19 14:11:47 oplot sshd[18375]: input_userauth_request: invalid user test Aug 19 14:11:47 oplot sshd[18374]: pam_unix(sshd:auth): check pass; user unknown Aug 19 14:11:47 oplot sshd[18374]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.38.137.44 

Et aussi celui-ci

 Aug 19 14:58:51 oplot sshd[19543]: Failed password for root from 202.117.56.29 port 43025 ssh2 Aug 19 14:58:52 oplot sshd[19544]: Received disconnect from 202.117.56.29: 11: Bye Bye Aug 19 14:58:55 oplot sshd[19546]: reverse mapping checking getaddrinfo for 56h29.xjtu.edu.cn [202.117.56.29] failed - POSSIBLE BREAK-IN ATTEMPT! 

Pouvez-vous m'expliquer ce que signifie "cartographie inverse en vérifiant getaddrinfo"?

Et comment puis-je bloquer les IP après plusieurs de ces tentatives?

fail2ban est un moyen populaire de bloquer beaucoup de fausses tentatives de connection ssh. Je vous conseille de vous concentrer sur l'arrêt des personnes de marteler votre port ssh au lieu de vous soucier de mauvaises searchs DNS inverses.

Ce que ssh appelle «tentative de coupure possible» est juste un signal que l'adresse en question est mal configurée. Tu peux vérifier:

 ~% host 202.117.56.29 29.56.117.202.in-addr.arpa domain name pointer 56h29.xjtu.edu.cn. ~% host 56h29.xjtu.edu.cn Host 56h29.xjtu.edu.cn not found: 3(NXDOMAIN) 

Les loggings DNS PTR sont une sorte de problème de security, car il n'y a absolument rien qui vous empêche de dire que votre nom d'hôte d'adresse est tout ce que vous voulez, même "google.com" ou "nsa.gov". Ainsi, SSH effectue cette vérification supplémentaire pour s'assurer qu'il existe une relation bidirectionnelle correcte entre l'adresse et le nom d'hôte.

N'essayez pas de bloquer plusieurs tentatives sans avoir préalablement protégé votre port de service SSH. Vous devriez envisager de désactiver le service SSH, ou tout au less de le protéger par pare-feu. Si vous ne pouvez pas le détwigr, essayez d'utiliser une solution de blocage de port pour le cacher contre les attaques randoms. En outre, désactivez l'authentification par mot de passe et forcez tout le monde à utiliser l'authentification par key publique.

Découvrez DenyHost . C'est une excellente façon d'interdire les IP qui tentent de bruler les connections SSH. Vous bénéficiez également d'une list de blocs partagée d'adresses IP qui a tenté la cascade sur d'autres hôtes dans le monde entier.

Si vous préférez une solution plus légère, vous pouvez utiliser iptables pour bloquer les tentatives répétées de ssh. En supposant que vos règles iptables ont déjà été configurées avec une politique DROP par défaut et ne permettent que des ports spécifiques, la règle suivante supprimera le port 22 (ssh) afin de bloquer temporairement les connections SSH à partir d'une adresse IP spécifique une fois qu'il y a plus de 3 connections par minute:

 iptables -A INPUT -m hashlimit --hashlimit 3/min --hashlimit-burst 3 --hashlimit-mode srcip --hashlimit-name inputssh -p tcp --dport 22 -j ACCEPT 

Notez que cela empêchera également les connections réussies si elles dépassent le seuil de fréquence, donc vous devrez choisir une valeur appropriée.

Pour plus d'informations, vous pouvez essayer "man iptables" ou "iptables -m hashlimit –help" . De plus, le googling pour "tutoriel iptables" et "iptables hashlimit" devrait fournir un bon sharepoint départ si vous n'êtes pas familier avec iptables.