Le ssh est un service très pratique pour travailler sur votre serveur de l'extérieur. Il permet d'avoir accès à la console et au transfert de fichier. Nous allons sécuriser le SSH en modifiant sa configuration de base et mettre une authentification à base de clès.
Voici deux vidéos qui vous présente la manipulation en live.
Partie 1 configuration de base : https://youtu.be/AntCjmScaPk
Partie 2 gestion des clés : https://youtu.be/ulg4gHA7XjE
Le fichier de configuration modifié :
sshd_config
1.1) configuration de base du service SSH
modifier le fichier : /etc/ssh/sshd_config
- Changer la ligne port en mettant un autre port de votre choix pour le post j'ai choisi le port 1021.
# What ports, IPs and protocols we listen for#SEB 20160111 chg du port 22Port 1021
- Passer la ligne PermitRootLogin de yes à no. Cette ligne empêche le user root de se connecter au service
#SEB 20160111 interdiction de connection rootPermitRootLogin no
- Ajouter à la fin du fichier :
AllowUsers <<user name>>
Rebooter la machine ou redémarrer le service
Nous allons mettant configurer le service pour autoriser uniquement les connections par clès d’authentification
Le principe est le suivant : on crée une paire de clés:
Chaque utilisateur du SSH devra avoir sa clé et donc la manipulation des points 12-1,2,3,4 sera à exécuter pour chaque utilisateur.
Le principe est le suivant : on crée une paire de clés:
- une clés privée qui vous authentifie
- une clés publique qui contrôle la véracité de votre clés privé.
Chaque utilisateur du SSH devra avoir sa clé et donc la manipulation des points 12-1,2,3,4 sera à exécuter pour chaque utilisateur.
1.2.1) création du répertoire personnel SSH
On crée le répertoire personnel SSH qui recevra la clés de l'utilisateur et autorisé par ssh. Le répertoire à créer est .ssh (le point désigne un répertoire caché), ici l'utilisateur est sebastien.mkdir /home/sebastien/.ssh
(en fonction de votre login de connexion vous devrez mettre un sudo).1.2.2) On crée la paire de clés sous linux :
Placer vous dans le répertoire précédemment créé puis créer les clés avec la commande ssh-keygen -t rsa
Je vous laisse décider si vous souhaitez mettre une passphrase à votre clès ( si oui vous devrez la tapez à chaque authentification, c'est une protection si une personne vient à voler votre clès)
Vous avez deux clés crées :
La clés publique sera sur le serveur et la clés privée avec vous, c'est elle qui vous authentifiera vis à vis du serveur.
Pour que la clés publique soit reconnu par sshd nous allons la mettre dans le fichier qui sera lu lors de la connexion SSH.
Maintenant sauvegarder votre clés privé & public (id_ras.pub & id_rsa) hors du serveur, elle n'ont plus rien à y faire et mettez les dans un coffre fort :-)
Modifier les autorisations sur le répertoire .ssh et sur le fichier authorized_keys.
En fonction de votre user connexion passer le propriétaire du fichier à l'utilisateur de connexion
- une clés privée ==> id_rsa
- une clés privée ==> id_rsa.pub
La clés publique sera sur le serveur et la clés privée avec vous, c'est elle qui vous authentifiera vis à vis du serveur.
Pour que la clés publique soit reconnu par sshd nous allons la mettre dans le fichier qui sera lu lors de la connexion SSH.
cat id_rsa.pub > authorized_keys (cette manipulation est à faire dans le répertoire .ssh créé au 1.2.1)
Maintenant sauvegarder votre clés privé & public (id_ras.pub & id_rsa) hors du serveur, elle n'ont plus rien à y faire et mettez les dans un coffre fort :-)
Modifier les autorisations sur le répertoire .ssh et sur le fichier authorized_keys.
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
En fonction de votre user connexion passer le propriétaire du fichier à l'utilisateur de connexion
sudo chown sebastien /home/sebastien/.ssh sudo chgrp sebastien /home/sebastien/.ssh sudo chown sebastien /home/sebastien/.ssh/authorized_keys sudo chgrp sebastien /home/sebastien/.ssh/authorized_keys
1.2.3) Configuration définitive uniquement par clés :
sudo nano /etc/ssh/sshd_config
sudo service ssh restart
Aucun commentaire:
Enregistrer un commentaire