Sécuriser SSH sous Ubuntu [débutant]

Plop les loulous,

Aujourd’hui on va un peu s’intéresser à SSH entendez par la « session à distance sécurisée ».

SSH est un protocole sécurisé qui permet de prendre le contrôle d’un ordinateur à distance.
L’avantage de cette méthode par rapport à telnet, est de protéger les informations qui circulent, par un système de cryptographie asymétrique.
Le transit est pour ainsi dire tunnélisé.

Cela vous permet d’administrer votre pc à distance.
Mises à jour, manipulations de fichiers etc etc …

Le tout via une console en ligne de commande ou graphiquement via un navigateur de fichier. Nautilus par exemple.

Bien pratique pour les feignasses qui préfèrent tanner leurs fauteuils, en buvant du coca tout en tuant une pauvre tablette de chocolat. :)
Ils n’auront plus jamais besoin de se lever pour aller bidouiller leurs pc situés dans les autres pièces.
Bien pratique également pour gérer son pc familial depuis le bureau, quand on a envie de glander pas trop de boulot.

SSH existe en deux versions majeures, 1.0 et 2.0 (actuellement 2.1).

Pour utiliser SSH en tant que « client » il n’y a pas d’installation à effectuer, il est déjà installé nativement sur Ubuntu.
Pour transformer votre machine en serveur SSH vous devrez en revanche installer le paquet OpenSSH server. Disponible via la logithèque Ubuntu, Synaptic ou en ligne de commande (apt).

*Bon à savoir, si vous voulez accéder à une machine GNU/Linux depuis Windows via SSH, vous pouvez utiliser PuTTY.

Une fois que vous avez installé OpenSSH, il se lance par défaut au démarrage de l’ordinateur.
Si vous souhaitez pour une raison X ou Y relancer ou stopper le service.
Il suffit de le faire via un shell avec ces deux lignes de commandes.

Lancer le service :

sudo /etc/init.d/ssh start

Stopper le service :

sudo /etc/init.d/ssh stop

Rien de bien compliqué.

On va maintenant sécuriser un peu plus notre serveur SSH en vérifiant et en modifiant quelques options de base. 

Tout d’abord nous allons vérifier que notre distribution utilise bien la version 2 du protocole.
La version 1.0 comportant d’importantes failles de sécurité.
Ensuite nous changerons le port utilisé par défaut, à savoir le port 22, puis nous désactiverons le login root.
Et enfin on se fera un petit script iptables permettant de se protéger d’une éventuelle tentative de bruteforce. (ne sautez pas par la fenêtre il n’est pas nécessaire d’être un gourou Linux pour se faire).

Pour effectuer les changements il suffit de se rendre dans le répertoire /etc/ssh et d’éditer le fichier « sshd_config« .

Il suffit ensuite de se rendre à la bonne ligne et de modifier l’option.

#   Protocol 2,1 (on vérifie la version).
#   Port 22 (on remplace le 22 par un port alternatif pour éviter les attaques via des bots. Ex : 1234)
#   PermitRootLogin yes (on remplace le yes par « no » /!\ important /!\).

Il suffit ensuite de refermer le fichier en enregistrant les modifications et le tour est joué.
Voila on est déjà un peu plus tranquille maintenant.

Pour compléter la chose on va se faire un petit script visant à nous protéger d’un bruteforce.

On va commencer par créer un fichier texte dans /etc/init.d que l’on va nommer bruteforce.sh par exemple. (le .sh est important, il indique au système que ce fichier est executable).
On va ensuite, (enfin vous allez), copier/coller  le contenu du script suivant dans le fichier /etc/init.d.

Script :

#!/bin/bash
# vidage ET destruction des chaines

iptables -F iptables -X

# avant tout : autoriser SSH


iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –set iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –update –seconds 300 –hitcount 3 -j DROP


echo – Autoriser SSH : [OK]

 On referme ensuite le fichier, on enregistre et le tour est joué.

Vous voila maintenant avec un serveur SSH un peu plus sécurisé.

Pour plus d’information sur la manière d’utiliser SSH vous pouvez vous jeter un oeil sur la doc Ubuntu.

Moo !!!

PS: Acune tablette de chocolat n’a été maltraité lors de la rédaction de ce billet.


2 Responses

  1. Noireaude 10 octobre 2011 / 23 h 05 min

    Merci pour le complément d’info ;)

  2. Antares 10 octobre 2011 / 21 h 32 min

    Pour un SSH encore plus sécurisé, et pour les feignasses ultimes qui ont mangé trop de chocolat pour taper leur mot de passe, il existe l’authentification par *clés* plutôt que mot de passe.

    Je me permets donc de compléter cet article en citant une bafouille de Korben, grand mentor devant l’éternel pour notre bovin préféré !
    –> http://korben.info/tuto-ssh-securiser.html

    Remarque au passage, un serveur SSH sur un port alternatif et avec un mot de passe correct, c’est déjà une bonne sécurité :)

Comments are closed.