Aller au contenu

Sécurisation des accès SSH

Si vous souhaitez sécuriser un tant soit peu l’accès à distances à vos machines Linux à distance via le protocole SSH ou bien l’échange de fichier par ce même protocole, cette procédure est faite pour vous !

I. Modification du fichier de configuration SSH sous Linux

Il est possible de désactiver le login du root via SSH, et de créer un utilisateur avec les droits root pour se connecter. De cette façon les pirates devrons également trouver le nom d’utilisateur root.
1. Editer le fichier de configuration de SSH
nano +/PermitRootLogin /etc/ssh/sshd_config
2. Décommenter la ligne #PermitRootLogin et mettez le à ‘no’
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

II. Création de clé OpenSSH sous Linux

1. Générer une clé SSH
ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa -N ''
Ici la commande utilise le protocole rsa pour générer une clé de 4096 bytes, la sauvegarde dans le dossier .ssh de root et n’est pas protégée par un mot de passe (il est possible d’ajouter une passkey mais c’est comme avoir un double mot de passe).
Les clés privées et publiques sont stockées sous :
/root/.ssh/id_rsa > pour la clé privée   
/root/ssh/id_rsa.pub > pour la clé publique
2. Copier la clé publique SSH par le réseau et entrer une première fois le mot de passe du serveur
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Connectez vous au serveur, il faudra accepter le certificat et entrer le mot de passe de l’utilisateur lors de la première connexion.
ssh-add /root/.ssh/id_rsa

III. SSH de Windows à Linux avec une clé publique

Cette procédure sert à se connecter depuis une machine Windows vers une machine Linux de façon sécurisée, sans mot de passe par le biais d’une clé publique.

I. Génération du jeu de clés sous Windows

1. Sous Windows, lancer la commande de génération de clé RSA via cette commande :
ssh-keygen -t rsa -b 4096
2. Une fois les clés créés, se rendre dans votre dossier d’utilisateur et ouvrir le fichier nommé id_rsa.pub, ou bien utiliser cette commande :
cat C:\Users\User\.ssh\id_rsa.pub
Il contient votre clé d’authentification publique, c’est celle ci qu’il va falloir coller dans le fichier des clés autorisée dans le serveur auquel nous voulons nous connecter. Il est possible d’ouvrir le fichier avec un bloc note ou bien notepad++.
74defab6 e0d7 49e3 af24 d69870987bb7
3. Copier la clé et se connecter sur le serveur avec le mot de passe avec cette commande :
ssh utilisateur@adresseIP
4. S’il n’est pas présent, il faut créer un dossier .ssh dans le repertoire utilisateur
mkdir ~/.ssh 
5. Créer et éditer un fichier authorized_keys dans ce dossier
nano ~/.ssh/authorized_keys
6. Coller la clé publique que nous avons précédemment généré sur notre poste Windows. Si le fichier existait déjà, il faut simplement ajouter une ligne dans le fichier et de coller la nouvelle clé.
chmod 600 ~/.ssh/authorized_keys

II. Connexion en utilisant la clé privée

Une fois que la clé publique à été ajoutée sur le serveur, on peut s’en déconnecter puis se reconnecter en utilisant cette syntaxe :
ssh -i C:\Users\User\.ssh\id_rsa utilisateur@adresseIP 

IV. Désactivation de la connexion par mot de passe

Il est possible de désactiver la connexion par mot de passe, mais c’est quand même déconseillé car sans accès aux machines enregistrées sur le serveur on perd totalement son accès à distance.
Pour désactiver ce paramètre, il faut lancer cette commande, décocher la ligne et la passer à yes
nano +/PasswordAuthentication /etc/ssh/sshd_config

V. Création d’un utilisateur dans le groupe SU dédié

Créer un nouvel utilisateur et l’ajouter au groupe sudo
sudo adduser username 
sudo usermod -aG sudo username 
Vous pouvez maintenant vous connecter avec le compte que vous avez choisi, et vous pouvez toujours lancer vos commandes root en utilisant sudo. Il est également possible d’ajouter une ligne au fichier de configuration pour autoriser uniquement les utilisateurs que l’on souhaite à se connecter en SSH au serveur.
AllowUsers admin username