Embêter les pirates SSH avec Endlessh !
Si vous avez un serveur Linux avec un port SSH exposé sur Internet, vous avez probablement pu constater que celui-ci était en permanence attaqué par des tentatives d'attaque de type force brute utilisant des listes de mots de passe communs.
Comment se protéger des attaques SSH par Bruteforce ?
Pour remédier à ces tentatives attaques, vous avez plusieurs possibilités :
- La première consiste tout simplement à filtrer les adresses IP pouvant accéder au serveur SSH uniquement à une liste d'IP connues (IP box, IP VPN ...).
- La seconde consiste à mettre en place le logiciel Fail2ban pour bannir automatiquement les attaquants après 3 ou 4 tentatives infructueuses d'authentification.
- La troisième est d'utiliser une authentification à base de certificat.
- La dernière consiste à déplacer votre serveur SSH sur un autre port plus exotique et de déployer le logiciel Endless SSH sur le port 22 (ou Portsentry)
Et si vous êtes un paranoïaque de sécurité informatique, vous pouvez aussi réaliser ces 4 solutions.
Comment fonctionne Endlessh ?
Endlessh est un logiciel très simpliste qui expose un faux serveur SSH avec une bannière d'une longueur infinie qui n'offre aucun prompt d'authentification au client du service.
Cette bannière infinie et générée sur la base de caractères aléatoires bloquera les clients SSH qui essaient de vous attaquer. Ces clients attendront pendant plusieurs heures ou jours un prompt d'authentification du service.
Si le logiciel de l'attaquant ne prend en compte de timeout, Endlessh vous permettra d'emmerder tout simplement les personnes qui réalisent des bruteforces SSH sur Internet, et ils sont nombreux ...
Comment installer Endlessh ?
Endlessh est un simple code C de 800 lignes. Un "make" vous permettra de construire le binaire après un git clone du repository GitHub.
Pour installer Endlessh sous forme de service Linux, le projet Endlessh sur Github dispose d'un template de service vous permettant de démarrer automatiquement Endlessh à chaque redémarrage de serveur.
Si vous lancez le binaire en ligne de commande, les options de lancement sont simplistes :
Usage: endlessh [-vhs] [-d MS] [-f CONFIG] [-l LEN] [-m LIMIT] [-p PORT]
-4 Bind to IPv4 only
-6 Bind to IPv6 only
-d INT Message millisecond delay [10000]
-f Set and load config file [/etc/endlessh/config]
-h Print this help message and exit
-l INT Maximum banner line length (3-255) [32]
-m INT Maximum number of clients [4096]
-p INT Listening port [2222]
-s Print diagnostics to syslog instead of standard output
-v Print diagnostics (repeatable)
Voici ma découverte du week-end. N'hésitez pas à rejoindre le serveur Discord Geeek pour venir discuter Cybersécurité avec la communauté Geeek.