Tutos geek

Tutoriaux linux, debian, android et autres

Sécurisation de votre VPS

Il y a quelque temps j'ai constaté des tentatives d'intrusion sur mon serveur, venant de chine, russie, thaïlande, ...
Mon VPS ne contenant rien de bien folichon je n'ai eu affaire qu'à des robots assez basiques, cherchant probablement à enrichir une armée de zombies spammeur ou DDoSeur.
Ils se sont donc cassé les dents sur mes défenses rudimentaires.

Comment les détecter ?

Chaque tentative de connexion SSH est consignée dans le fichier /var/log/xconsole.log

less /var/log/xconsole.log

Jan 14 11:21:31 vps12345 sshd[4050]: Failed password for mike from 212.123.45.67 port 22 ssh2
Un utilisateur dont l'adresse IP publique est 212.123.45.67 a essayé de se connecter en SSH à mon VPS sur le port 22 avec le nom d'utilisateur 'mike' mais a échoué.

Jan 14 11:22:02 vps12345 sshd[4050]: Accepted password for pumbaa from 212.123.45.67 port 1234 ssh2
Jan 14 11:22:02 vps12345 sshd[4050]: pam_unix(sshd:session): session opened for user pumbaa by (uid=0)
Nom d'utilisateur, port et mot de passe correct.

Donc quand vous avez votre fichier de log pourri par des milliers de "Failed password for XXX" c'est qu'on tente de pénétrer chez vous.

Comment les empêcher d'entrer ?

Mot de passe

Avoir des mots de passe très fort, surtout celui de 'root'.
Et quand je dis très fort je pense à minimum 20 caractères.
Comme ça devient dur à retenir (surtout si vous mettez des caractères spéciaux dedans, comme c'est recommandé) je vous conseil le très bon logiciel KeePass qui se souviendra pour vous de tous vos mots de passe. Je ferai probablement un billet là-dessus un jour.

su - #Pour passer en root
passwd

Configuration du SSH

vi /etc/ssh/sshd_config

Changer le port
Port 1234

Interdire la connexion en SSH à l'utilisateur 'root'
PermitRootLogin no

Maintenant le seul moyen de se connecter en 'root' est de se connecter avec un autre compte puis de lancer la commande
su -

Vérifier la version du protocole utilisée
Protocol 2

Redémarrer SSH
/etc/init.d/ssh restart

/!\ ATTENTION /!\
Ne fermez pas le terminal à ce moment. Ouvrez-en un nouveau et vérifiez que vous arrivez bien à vous connecter avec votre utilisateur habituel.
Souvenez-vous que le port à changé et que 'root' ne peut plus se connecter.

La suite

Les robots ne pourront - probablement - pas rentrer sur votre serveur mais ça ne va pas les empêcher d'essayer en boucle.
Pour les bannir définitivement l'utilisation de Fail2ban semble être intéressante.
Ça sera l'objet d'un prochain billet, quand je l'aurai installé chez moi.


Source : http://forum.ovh.com/showthread.php?102599-Attaque-SSH-sur-mon-VPS


Debian version : 6.0.10

Cedric :

Si on utilise des clés pour se connecter en ssh,
on peut mettre:
PermitRootLogin wihtout-password
comme ça root peut se connecter mais uniquement avec votre clé.

Pumbaa :

Tout à fait, c'était d'ailleurs aussi spécifié dans le forum que j'ai linké.
Je n'en ai pas parlé car je n'ai pas implémenté cette solution moi-même, mais je n'exclu pas de le faire dans le futur.