Introduction
Quand vous obtenez un serveur ubuntu 20.04 auprès de votre hébergeur. Voici les étapes à suivre pour améliorer sa sécurité et qui vous donnent une base solide pour vos prochaines configurations.
Étape 1 - Connexion en tant que root
Votre hébergeur vous a forcement donné un IP public et un mot de passe root lié à votre serveur. Pour y accédez, il vous suffit d'utiliser la commande SSH suivante:
ssh root@ip_public
Acceptez l'avertissement sur l'authenticité de l'hôte s'il apparaît. Ensuite, le terminal vous demande votre mot de passe.
Étape 2 - Création d'un nouvel utilisateur capable de se comporter en tant que root
On sait bien qu'un utlilisateur root peut faire n'importe quelle action dans le système d'exploitation. C'est décourageant de s'y mettre en permanent car ça vous risque de tomber dans un accident. Pour diminuer ce risque, nous se mettons en root seulement lorsque l'on a besoin.
Pour créer un utilisateur, il suffit de taper:
adduser john
Pour accorder l'accès root à cet utilisateur, entrer cette commande:
usermod -aG sudo john
Maintenant lorsque vous connectez avec cet utilisateur, vous pouvez taper sudo
devant les commandes pour se comporter comme root.
Étape 3 - Mise en place d'un pare-feu
On peut utiliser le pare-feu UFW pour s'assurer que seules les applications autorisées ont l'accès au système. UFW est déjà embarqué dans Ubuntu mais il est désactivé par défaut.
Attention, avant de l'activer, il faut que vous rajoutez d'abord le service SSH qui vous sert à se connecter de votre serveur via le SSH, sinon vous serez bloqué. Pour autoriser l'accès SSH de votre serveur:
ufw allow OpenSSH
On peut ensuite activer le pare-feu avec:
ufw enable
Le terminal vous demande la confirmation alors tapez y puis Entrer pour continuer.
Le service SSH est maintenant autorisé, vous pouvez voir le status du pare-feu UFW en tapant:
ufw status verbose
Étape 4 - Changement du port SSH
Le changement du port SSH est une sécurité supplémentaire à votre serveur face aux attaques automatisées.
Pour effectuer la modification, ouvrez le fichier de configuration sshd_config avec un éditeur de texte par exemple vi:
vi /etc/ssh/sshd_config
Recherchez l'entrée Port 22 et remplacez le port 22 par un port plus de 1024:
Port 2021 # par exemple
Assurez-vous que le port sélectionée n'est pas utilisé par d'autres services.
Vous pouvez voir la liste des ports utilisés dans /etc/services
.
Redémarrez le service:
service ssh restart
Pour établir une connexion SSH après le changement, vous devez spécifier le port:
ssh user@ip_public -p2021
Essayez de reconnecter à votre serveur pour voir si le changement était effectué. Si la modification n'est pas encore prise en compte, redémarrez votre serveur.
Étape 5 - Connexion avec un SSH Key
Il est recommandé d'utiliser l'authentification via le SSH key plutôt que l'authentification avec le mot de passe. Si vous n'avez pas encore généré un clé SSH dans votre machine local, entrez cette commande:
ssh-keygen
Le terminal va vous demander le nom que aimerez donner à votre clé:
Generating public/private rsa key pair.
Enter file in which to save the key (/votre_home/.ssh/id_rsa):
Entrer une phrase secrète à votre clé:
Enter passphrase (empty for no passphrase):
Enfin, vous devrez avoir quelque chose de similaire:
Your identification has been saved in /votre_home/.ssh/id_rsa
Your public key has been saved in /votre_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:I5QzXvUbJUM7LcEePKw8Do/YwycJt/CgYxoUe8brCUw pc@host
The key\'s randomart image is:
+---[RSA 3072]----+
| .== . |
| . . . .*B |
| + = .. o*o. |
| E +o++o + .= |
| + o ooXSB .. |
| + = ..X.+ |
| \* o + |
| . o |
| |
+----[SHA256]-----+
Il faut maintenant copier votre clé public généré /votre_home/.ssh/id_rsa.pub
dans le fichier ~/.ssh/authorized_keys
de votre serveur.
Le port SSH devient maintenant le port de votre choix, 2021 dans l'exemple.
La manière la plus simple de le faire c'est d'utiliser la commande ssh-copy-id
qui est déjà intégrée dans la plupart des distributions
linux. Tapez juste cette commande pour faire la copie:
ssh-copy-id john@ip_public -p2021
john est ici notre exemple mais il correspond à l'utilisateur que vous aimerez avoir un authentification par SSH Key.
Vous serez maintenant en mesure de se connecter sans mot de passe avec:
ssh user@ip_public -p2021