GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration du serveur Ubuntu - Meilleures pratiques de sécurité

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 😀


Linux
  1. Meilleures pratiques de sécurité OpenSSH

  2. Configurer le serveur Urbackup sur Ubuntu 20.04

  3. Meilleures pratiques de sécurité des serveurs Linux

  4. Meilleures pratiques de sécurité des serveurs Windows

  5. Meilleures pratiques de sécurité Wordpress sous Linux

Procédure :configuration initiale du serveur Fedora 21

Procédure :configuration initiale du serveur Debian 8.2

Configuration du serveur de messagerie Postfix sur Ubuntu 14.04

Configuration initiale du serveur avec Ubuntu 18.04

Configuration du serveur de messagerie Postfix sur Ubuntu 20.04

Comment activer l'utilisateur root dans Ubuntu Server ?