Une fois l'installation réussie de votre serveur Debian / Ubuntu, quelques étapes de configuration sont essentielles pour améliorer la sécurité et les fonctionnalités du serveur. Dans ce guide, nous vous expliquerons les étapes de base de la configuration initiale du serveur Debian 9 / Ubuntu 18.04. Ces étapes de base renforceront votre serveur et permettront l'exécution des opérations ultérieures de manière transparente.
Se connecter en tant qu'utilisateur root
La première étape de la configuration de votre serveur consiste à vous connecter en tant qu'utilisateur root. Mais d'abord, vous devez avoir l'adresse IP de votre serveur et le mot de passe ou une clé privée pour l'authentification. Pour vous connecter, ouvrez votre terminal Linux et exécutez la commande ci-dessous. Assurez-vous de remplacer l'adresse IP du serveur par votre adresse IP.
ssh user@ip-address
Dans ce guide, nous utilisons le serveur Ubuntu 18.04 avec une adresse IP publique 38.76.11.180
.
Pour se connecter en ssh via le terminal, la commande est
ssh [email protected]
Si vous vous connectez pour la première fois, vous devrez vérifier l'authenticité du serveur.
Tapez "Oui" et appuyez sur Entrée. Vous serez alors invité à entrer le mot de passe du serveur. Fournissez le mot de passe correct et appuyez sur Entrée.
Cela vous déposera dans l'invite du shell du serveur comme indiqué ci-dessous
Super! Maintenant que nous nous sommes connectés avec succès à notre serveur, passons à la deuxième étape
Créer un nouvel utilisateur
Pour les meilleures pratiques de sécurité, l'utilisation du compte root pour les tâches administratives est fortement déconseillée. Pourquoi est-ce le cas? L'exécution de votre serveur en tant que root vous expose à des erreurs involontaires et coûteuses qui peuvent être préjudiciables à votre serveur. Vous pouvez facilement faire quelque chose de nocif pour votre système qui peut causer des dommages irréversibles à votre système.
Pour cette raison, nous allons créer un nouvel utilisateur non root et lui accorder plus tard des privilèges administratifs. De cette façon, chaque fois que vous essayez d'exécuter une tâche de niveau racine, vous serez invité à entrer le mot de passe. Cela vous donnera le temps de faire une pause et de réfléchir aux conséquences de l'exécution de la commande et de vous arrêter si vous remarquez une erreur coûteuse dans l'exécution de la commande.
Pour créer une nouvelle exécution utilisateur
adduser user_name
Nous allons ajouter un nouvel utilisateur 'james'
adduser james
Vous serez invité à entrer le mot de passe de l'utilisateur et quelques questions supplémentaires. fournir les informations nécessaires
Parfait! pour vérifier la création de l'utilisateur consulter le /etc/passwd
et confirmez l'existence de l'utilisateur.
cat /etc/passwd
Exemple de sortie
La dernière ligne ci-dessus affiche les informations de l'utilisateur nouvellement créé.
Accorder des privilèges administratifs au nouvel utilisateur
Jusqu'à présent, le nouvel utilisateur dispose des privilèges de compte habituels. Nous devons configurer les privilèges root pour notre utilisateur nouvellement créé afin qu'il puisse effectuer des tâches administratives en ajoutant sudo
avant toute opération.
Pour ce faire, nous devons ajouter l'utilisateur au sudo groupe pour éviter de se déconnecter et de se reconnecter en tant que root à chaque fois lors de l'exécution de tâches administratives.
La syntaxe pour y parvenir est
usermod -aG sudo user_name
Dans ce cas, la commande permettant d'accorder les privilèges sudo à l'utilisateur "james" sera
usermod -aG sudo james
Vous pouvez maintenant vous déconnecter et vous connecter avec le nouvel utilisateur en utilisant la commande comme indiqué précédemment
ssh [email protected]
Après une connexion réussie en vérifiant l'authenticité du serveur et en fournissant le mot de passe correct, vous pouvez maintenant exécuter toutes les tâches de superutilisateur en faisant précéder la commande de sudo
Par exemple, pour mettre à jour le système à l'aide du compte, exécutez la commande ci-dessous
sudo apt update
Vous serez invité à entrer un mot de passe et après l'avoir fourni, l'opération commencera.
Configurer un pare-feu de base
Les serveurs Debian et Ubuntu utilisent le pare-feu UFW pour autoriser ou refuser le trafic entrant ou sortant du serveur.
Pour afficher la connexion existante dans le pare-feu, exécutez
sudo ufw app list
Comme prévu, OpenSSH sera affiché car nous utilisons actuellement ssh pour nous connecter au serveur
Sortie
Pour autoriser une connexion via le pare-feu, exécutez la commande suivante.
ufw allow service_name
Par exemple, pour autoriser les connexions SSH pour une nouvelle exécution de serveur :
sudo ufw allow OpenSSH
Sortie
Pour ouvrir un port spécifique sur le pare-feu, utilisez la syntaxe
sudo ufw allow port/protocol
Par exemple
sudo ufw allow 80/tcp
Sortie
Pour vérifier l'état du pare-feu, exécutez
sudo ufw status
Sortie
Pour activer le pare-feu, exécutez la commande suivante.
sudo ufw enable
Lorsque vous y êtes invité, tapez yes
et appuyez sur 'ENTER' pour activer le pare-feu et effectuer les modifications
Pour afficher à nouveau l'état du pare-feu et les connexions existantes/ports ouverts, exécutez la commande
Activer l'authentification sans mot de passe pour le nouvel utilisateur
Pour le moment, nous nous connectons à notre serveur en utilisant le protocole SSH avec authentification par mot de passe. Pour les meilleures pratiques de sécurité, la configuration de clés SSH sans authentification par mot de passe est fortement recommandée. Les clés SSH vont par paire :une clé publique et une clé privée.
La clé privée réside sur la machine cliente tandis que la clé publique réside sur le serveur auquel nous nous connectons. Une fois l'authentification par clé SSH configurée, l'authentification par mot de passe doit être désactivée. Cela garantit que seul l'utilisateur disposant de la clé privée peut se connecter au serveur sur lequel réside la clé publique.
Étape 1. Générer la clé publique
Pour générer la paire de clés, exécutez la commande ci-dessous sur la machine client
ssh-keygen
Vous obtiendrez la sortie comme indiqué
Appuyez sur ENTER pour enregistrer la paire de clés est .ssh/
sous-répertoire de votre répertoire personnel. Alternativement, vous pouvez spécifier votre propre chemin.
Ensuite, vous serez invité à saisir une phrase de passe sécurisée, ce qui est fortement recommandé pour ajouter une couche de protection supplémentaire. Si vous souhaitez vous passer d'une phrase de passe, appuyez sur ENTER.
Enfin, vous obtiendrez la sortie suivante
À ce stade, vous disposez à la fois de la clé privée et de la clé publique. Ils ont été enregistrés dans le .ssh
répertoire dans votre répertoire personnel. Dans ce cas, le chemin est /root.ssh
cat /root/.ssh
Sortie
id_rsa
est la clé privée
id_rsa_pub
est la clé publique
Étape 2. Copiez la clé publique
Pour copier la clé publique sur le serveur, nous allons utiliser le ssh-copy-id
commande.
La syntaxe sera
ssh-copy-id user@remote-server
Dans ce cas, nous exécuterons
ssh-copy-id [email protected]
Vous obtiendrez une sortie similaire à celle ci-dessous
Le id_rsa.pub
la clé qui est la clé publique a été copiée sur le serveur.
Maintenant, si vous essayez de vous connecter en utilisant la syntaxe ssh user@server-ip
, aucun mot de passe ne vous sera demandé !
Désactiver l'authentification par mot de passe
Quelqu'un peut toujours se connecter à notre serveur s'il a obtenu le mot de passe. Pour éliminer ce risque, nous devons désactiver l'authentification par mot de passe SSH.
Pour cela, nous allons ouvrir le fichier de configuration de SSH
sudo vim /etc/ssh/sshd_config
Recherchez la section indiquée comme PasswordAuthentication
.
Commentez la ligne et définissez la valeur sur non
Sauvegardez et quittez.
Pour mettre en œuvre les modifications, redémarrez le démon SSH
sudo systemctl restart ssh
Vous pouvez maintenant lancer un nouveau terminal et essayer de vous connecter en utilisant le mot de passe et voir si l'authentification par mot de passe a été désactivée.
Le dernier mot
À ce stade, vous devriez avoir accès au serveur en utilisant l'authentification basée sur la clé SSH configurée sur votre serveur distant et non en utilisant le mot de passe SSH.
Votre serveur est maintenant entièrement configuré et dispose d'une base de sécurité solide. Assurez-vous de garder votre clé publique en sécurité. Loin des regards indiscrets 😀