Configuration initiale du serveur avec Ubuntu 18.04

De Get Docs
Aller à :navigation, rechercher

Introduction

Après avoir créé un nouveau serveur Ubuntu 18.04, vous devez suivre certaines étapes de configuration dans le cadre d'une configuration initiale du serveur afin d'augmenter la sécurité et de faciliter la gestion ultérieure.

Ce guide vous guidera à travers quelques procédures que vous devez effectuer dès le début afin de créer une base solide pour votre nouveau serveur, avant de passer à l'installation et à la configuration de tout logiciel ou service.

Étape 1 - Connexion en tant que root

Les serveurs nouvellement installés n'ont généralement qu'un compte root configuré, et c'est le compte que vous utiliserez pour vous connecter à votre serveur pour la première fois.

L'utilisateur root est un utilisateur administratif qui dispose de privilèges très étendus. En raison des privilèges accrus du compte root, vous êtes déconseillé de l'utiliser régulièrement. En effet, une partie du pouvoir inhérent au compte root est la capacité d'apporter des modifications très destructrices, même par accident. Pour cette raison, la pratique recommandée consiste à configurer un utilisateur système standard et à lui accorder les autorisations sudo, afin qu'il puisse exécuter des commandes administratives avec certaines limitations. À l'étape suivante, vous configurerez un tel utilisateur.

Pour commencer, vous devrez vous connecter à votre serveur. Assurez-vous de connaître l'adresse IP publique de votre serveur. Pour vous authentifier, vous aurez besoin du mot de passe du compte ou de la clé privée SSH pour le compte de l'utilisateur root, au cas où vous auriez configuré une clé SSH pour l'authentification au sein du serveur. Si vous n'êtes pas encore connecté à votre serveur, vous pouvez suivre notre guide sur comment se connecter à votre Droplet avec SSH, qui couvre ce processus en détail.

Si vous n'êtes pas déjà connecté à votre serveur, continuez et connectez-vous en tant qu'utilisateur root avec la commande suivante. Assurez-vous de remplacer la partie en surbrillance de la commande par l'adresse IP publique de votre serveur :

ssh [email protected]_server_ip

Acceptez l'avertissement concernant l'authenticité de l'hôte s'il s'affiche. Si vous utilisez l'authentification par mot de passe, fournissez votre mot de passe root pour vous connecter. Sinon, si vous utilisez une clé SSH protégée par une phrase secrète, vous pouvez être invité à saisir la phrase secrète la première fois que vous utilisez la clé à chaque session. De plus, s'il s'agit de votre première connexion au serveur avec un mot de passe, vous pouvez également être invité à modifier le mot de passe root.

À l'étape suivante, vous allez configurer un nouveau compte d'utilisateur système avec des privilèges réduits et configurer cet utilisateur pour exécuter des commandes d'administration via sudo.

Étape 2 - Création d'un nouvel utilisateur

Une fois que vous êtes connecté en tant que root, vous pouvez créer un nouvel utilisateur qui sera désormais votre utilisateur système habituel.

L'exemple suivant crée un nouvel utilisateur appelé sammy, mais vous devez le remplacer par un nom d'utilisateur de votre choix :

adduser sammy

Quelques questions vous seront posées, en commençant par le mot de passe du compte.

Entrez un mot de passe fort et, éventuellement, remplissez les informations supplémentaires si vous le souhaitez. Ce n'est pas obligatoire et vous pouvez simplement appuyer sur ENTER dans n'importe quel champ que vous souhaitez ignorer.

À l'étape suivante, vous configurerez les privilèges sudo pour cet utilisateur. Cela permettra à l'utilisateur d'exécuter des tâches administratives en tant qu'utilisateur root via le programme sudo.

Étape 3 - Octroi de privilèges administratifs

Vous avez maintenant un nouveau compte d'utilisateur avec des privilèges réguliers. Parfois, cependant, vous devrez effectuer des tâches administratives, telles que la gestion de serveurs, la modification de fichiers de configuration ou le redémarrage d'un serveur.

Pour éviter d'avoir à vous déconnecter de votre utilisateur habituel et à vous reconnecter en tant que compte root, vous pouvez configurer ce que l'on appelle des privilèges de "superutilisateur" ou root pour votre compte habituel. Cela permettra à votre utilisateur habituel d'exécuter des commandes avec des privilèges administratifs en préfixant chaque commande avec le mot sudo.

Pour ajouter ces privilèges à votre nouvel utilisateur, vous devez ajouter le nouvel utilisateur au groupe sudo. Par défaut sur Ubuntu 18.04, les utilisateurs appartenant au groupe sudo sont autorisés à utiliser la commande sudo.

La commande suivante modifiera les paramètres utilisateur par défaut, y compris le groupe sudo dans la liste des groupes auxquels un utilisateur appartient déjà. Faites attention à l'argument -a, qui signifie append. Sans cette option, les groupes actuels auxquels un utilisateur est lié seraient remplacés par sudo, ce qui entraînerait des conséquences inattendues. L'argument -G indique à usermod de modifier les paramètres de groupe d'un utilisateur.

En tant que root, exécutez cette commande pour ajouter votre nouvel utilisateur au groupe sudo (remplacez le mot en surbrillance par votre nouvel utilisateur) :

usermod -aG sudo sammy

Votre utilisateur système est maintenant configuré. À l'étape suivante, vous configurerez un pare-feu de base pour votre serveur.

Étape 4 - Configuration d'un pare-feu de base

UFW (Uncomplicated Firewall) est un outil de configuration de pare-feu fourni avec les serveurs Ubuntu. Vous pouvez utiliser le pare-feu UFW pour vous assurer que seules les connexions à certains services sont autorisées sur votre serveur.

Remarque : Si vos serveurs s'exécutent sur DigitalOcean, vous pouvez éventuellement utiliser DigitalOcean Cloud Firewalls au lieu du pare-feu UFW. Nous vous recommandons d'utiliser un seul pare-feu à la fois pour éviter les conflits de règles qui peuvent être difficiles à déboguer.


Les applications peuvent enregistrer leurs profils auprès d'UFW lors de l'installation. Ces profils permettent à UFW de gérer les paramètres par application par nom. OpenSSH, le service vous permettant de vous connecter à votre serveur maintenant, a un profil enregistré au sein d'UFW.

Exécutez la commande suivante pour obtenir une liste de tous les profils actuellement disponibles :

ufw app list
OutputAvailable applications:
  OpenSSH

Vous devez vous assurer que le pare-feu autorise les connexions SSH afin que vous puissiez vous reconnecter la prochaine fois. Vous pouvez autoriser ces connexions en tapant :

ufw allow OpenSSH

Ensuite, vous pouvez activer le pare-feu avec :

ufw enable

Tapez "y" et appuyez sur ENTER pour continuer. Vous pouvez voir que les connexions SSH sont toujours autorisées en tapant :

ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Comme le pare-feu bloque actuellement toutes les connexions à l'exception de SSH, si vous installez et configurez des services supplémentaires, vous devrez ajuster les paramètres du pare-feu pour autoriser un trafic acceptable. Vous pouvez apprendre certaines opérations UFW courantes dans ce guide.

Étape 5 - Activation de l'accès externe pour votre utilisateur régulier

Maintenant que vous avez un utilisateur régulier pour une utilisation quotidienne, vous devez vous assurer que vous pouvez vous connecter directement en SSH au compte.

Remarque : Tant que vous n'avez pas vérifié que vous pouvez vous connecter et utiliser sudo comme nouvel utilisateur, nous vous recommandons de rester connecté en tant que root. De cette façon, si vous rencontrez des problèmes, vous pouvez résoudre les problèmes et apporter les modifications nécessaires en tant que root. Si vous utilisez un droplet DigitalOcean et que vous rencontrez des problèmes avec votre connexion SSH racine, vous pouvez vous connecter au droplet à l'aide de la console DigitalOcean.


Le processus de configuration de l'accès SSH pour votre nouvel utilisateur varie selon que le compte root de votre serveur utilise un mot de passe ou des clés SSH pour l'authentification.

Si le compte racine utilise l'authentification par mot de passe

Si vous vous êtes connecté à votre compte racine à l'aide d'un mot de passe, cela signifie que l'authentification par mot de passe est activée pour SSH. Vous pouvez vous connecter en SSH à votre nouveau compte utilisateur en ouvrant une nouvelle session de terminal et en utilisant SSH avec votre nouveau nom d'utilisateur :

ssh [email protected]_server_ip

Après avoir entré votre mot de passe d'utilisateur habituel, vous serez connecté. N'oubliez pas que si vous devez exécuter une commande avec des privilèges administratifs, tapez sudo avant comme ceci :

sudo command_to_run

Vous serez invité à entrer votre mot de passe d'utilisateur habituel lors de la première utilisation de sudo pour la première fois à chaque session (et périodiquement par la suite).

Pour améliorer la sécurité de votre serveur, nous vous recommandons fortement de configurer des clés SSH au lieu d'utiliser l'authentification par mot de passe . Suivez notre guide sur configuration des clés SSH sur Ubuntu 18.04 pour savoir comment configurer l'authentification basée sur les clés.

Si le compte racine utilise l'authentification par clé SSH

Si vous vous êtes connecté à votre compte racine à l'aide de clés SSH, il est probable que l'authentification par mot de passe soit désactivée pour SSH. Vous devrez ajouter une copie de votre clé publique locale au fichier ~/.ssh/authorized_keys du nouvel utilisateur pour vous connecter avec succès.

Étant donné que votre clé publique se trouve déjà dans le fichier ~/.ssh/authorized_keys du compte racine sur le serveur, vous pouvez copier ce fichier et cette structure de répertoires dans votre nouveau compte d'utilisateur dans votre session existante.

Le moyen le plus simple de copier les fichiers avec la propriété et les autorisations correctes consiste à utiliser la commande rsync. Cela copiera le répertoire .ssh de l'utilisateur root, conservera les autorisations et modifiera les propriétaires de fichiers, le tout en une seule commande. Assurez-vous de modifier les parties en surbrillance de la commande suivante pour qu'elles correspondent au nom de votre utilisateur habituel :

Remarque : La commande rsync traite les sources et les destinations qui se terminent par une barre oblique finale différemment de celles sans barre oblique finale. Lorsque vous utilisez rsync ci-dessous, assurez-vous que le répertoire source (~/.ssh) n'inclut pas de barre oblique finale (vérifiez que vous n'utilisez pas ~/.ssh/ ]).

Si vous ajoutez accidentellement une barre oblique à la fin de la commande, rsync copiera le contenu du répertoire ~/.ssh du compte racine vers le [ répertoire personnel de l'utilisateur X161X] au lieu de copier l'intégralité de la structure de répertoires ~/.ssh. Les fichiers seront au mauvais endroit et SSH ne pourra pas les trouver et les utiliser.


rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Maintenant, ouvrez une nouvelle session de terminal et essayez de vous connecter avec votre nouveau nom d'utilisateur :

ssh [email protected]_server_ip

Vous devriez pouvoir vous connecter au nouveau compte d'utilisateur sans être invité à entrer le mot de passe SSH de l'utilisateur distant pour l'authentification. Si votre clé SSH a été configurée avec une phrase clé, vous pouvez être invité à déverrouiller la clé SSH en fournissant ce mot de passe lorsque vous utilisez la clé pour la première fois dans une session de terminal.

N'oubliez pas que si vous devez exécuter une commande avec des privilèges administratifs, tapez sudo avant comme ceci :

sudo command_to_run

Vous serez invité à entrer votre mot de passe d'utilisateur habituel lors de la première utilisation de sudo pour la première fois à chaque session (et périodiquement par la suite).

Où aller en partant d'ici?

À ce stade, vous disposez d'une base solide pour votre serveur. Vous pouvez installer tous les logiciels dont vous avez besoin sur votre serveur dès maintenant.

Si vous souhaitez vous familiariser avec les commandes Linux, vous pouvez consulter notre Linux Command Line Primer. Pour étendre votre configuration, vous pouvez consulter notre page de balise Ubuntu 18.04 pour plus de guides basés sur cette distribution.