Sécuriser SSH VPS
Endlessh : Le « Trou Noir » pour les Hackers (Sécuriser SSH VPS)
Nos VPS sont constamment attaqué par les tentatives de connexion SSH brutes (Brute Force)… Dans cette article on va voir comment installer Endlessh. Ce n’est pas un pare-feu classique, c’est un « SSH Tarpit » : un piège qui garde les bots de scan connectés indéfiniment en leur envoyant des bannières SSH sans fin, très lentement. Résultat ? Ils s’épuisent et ne peuvent plus attaquer personne d’autre.

1. Pourquoi c’est génial ?

Contrairement à Fail2Ban qui bannit l’IP (et que le hacker peut changer), Endlessh utilise les ressources de l’attaquant pour Sécuriser SSH VPS. Il croit qu’il va réussir à se connecter, mais il reste bloqué dans une boucle infinie.
2. Étape cruciale : Changer le port SSH réel
Avant de poser le piège sur le port standard (22), il faut impérativement déplacer le vrai accès SSH sur un autre port (par exemple 2222).
Attention : Si on loupe cette étape, on est enfermer dehors !
sudo nano /etc/ssh/sshd_config
On modifie la ligne Port 22 en Port 2222. On sauvegarde, puis redémarrez le service :
sudo systemctl restart ssh
Pour être sur d’avoir un accès avec le nouveau port, sans fermer la première fenêtre ssh, on démarre un deuxième terminal ssh (Kitty, Putty ou similaire) et on se connecte au VPS avec le nouveau port. Si ça marche alors on peut passer à la suite.
3. L’installation d’Endlessh
On passe aux choses sérieuses. On installe les outils de compilation et on récupère le bébé.
sudo apt updatesudo apt install build-essential gitsudo git clone https://github.com/skeeto/endlesshcd endlesshsudo makesudo cp endlessh /usr/local/bin/
Ensuite, on crée le fichier de configuration :
sudo mkdir -p /etc/endlessh ; sudo nano /etc/endlessh/config
On colle ceci à l’intérieur :
Port 22
Delay 10000
MaxLineLength 32
MaxClients 4096
LogLevel 1
4. Le piège du port bloqué (Vécu !)
C’est là que ça devient formateur. Lors de l’installation, il est possible qu’Endlessh refuse de démarrer. Pourquoi ? Parce que sur beaucoup de systèmes, un service non-root ne peut pas « binder » (écouter) sur un port inférieur à 1024.
Si vous voyez une erreur de type bind: Permission denied, il faut donner l’autorisation spécifique à l’exécutable :
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
5. Au secours, je n’ai plus d’accès ! (Le mode KVM)
Il se peut que malgré vos précautions, le pare-feu (UFW ou autre) bloque le nouveau port 2222 ou que vous ayez fait une erreur dans le fichier de config SSH. Résultat : Connexion refusée, impossible de se reconnecter.
La solution chez OVH :
5.1. Connectez-vous à votre interface client OVH.
5.2. Allez dans la partie VPS, puis l’onglet IPMI ou KVM.
5.3. Lancez la console. C’est un accès direct « écran/clavier » virtuel.
5.4. Identifiez-vous et vérifiez vos ports.
6. Automatisation au démarrage
On veut que le piège tourne tout seul, même après un reboot. On crée un service Systemd :
sudo nano /etc/systemd/system/endlessh.service
[Unit]
Description=Endlessh SSH Tarpit
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/endlessh -f /etc/endlessh/config
[Install]
WantedBy=multi-user.target
Puis on active le tout :
sudo systemctl enable endlesshsudo systemctl start endlessh
Conclusion
Votre port 22 est maintenant un enfer pour les bots, et votre vrai accès est caché sur le port 2222. Simple, efficace, et surtout : ça rend le web un peu plus sûr en occupant les ressources des hackers.
sources:
https://github.com/skeeto/endlessh
https://github.com/fail2ban/fail2ban