Configuration initiale du serveur avec Ubuntu 20.04
Introduction
Lorsque vous créez un nouveau serveur Ubuntu 20.04 pour la première fois, vous devez effectuer certaines étapes de configuration importantes dans le cadre de la configuration initiale. Ces étapes augmenteront la sécurité et la convivialité de votre serveur et vous donneront une base solide pour les actions ultérieures.
Étape 1 - Connexion en tant que root
Pour vous connecter à votre serveur, vous devez connaître l'adresse IP publique de votre serveur. Vous aurez également besoin du mot de passe ou, si vous avez installé une clé SSH pour l'authentification, de la clé privée du compte d'utilisateur root. Si vous n'êtes pas encore connecté à votre serveur, vous pouvez suivre notre guide sur comment se connecter aux gouttelettes avec SSH, qui couvre ce processus en détail.
Si vous n'êtes pas déjà connecté à votre serveur, connectez-vous maintenant en tant qu'utilisateur root à l'aide de la commande suivante (remplacez 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. 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. 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.
À propos de la racine
L'utilisateur root est l'utilisateur administratif dans un environnement Linux 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, le compte root est capable d'apporter des modifications très destructrices, même par accident.
L'étape suivante consiste à créer un nouveau compte utilisateur avec des privilèges réduits pour une utilisation quotidienne. Plus tard, nous vous montrerons comment obtenir temporairement des privilèges accrus pour les moments où vous en aurez besoin.
Étape 2 - Création d'un nouvel utilisateur
Une fois connecté en tant que root, vous pourrez ajouter le nouveau compte utilisateur. À l'avenir, nous nous connecterons avec ce nouveau compte au lieu de root.
Cet exemple crée un nouvel utilisateur appelé sammy, mais vous devez le remplacer par un nom d'utilisateur que vous aimez :
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.
Étape 3 - Octroi de privilèges administratifs
Nous avons maintenant un nouveau compte d'utilisateur avec des privilèges de compte réguliers. Cependant, nous pouvons parfois être amenés à effectuer des tâches administratives.
Pour éviter d'avoir à nous déconnecter de notre utilisateur normal et à nous reconnecter en tant que compte root, nous pouvons configurer ce que l'on appelle les privilèges superuser ou root pour notre compte normal. Cela permettra à notre utilisateur normal d'exécuter des commandes avec des privilèges administratifs en plaçant le mot sudo
avant la commande.
Pour ajouter ces privilèges à notre nouvel utilisateur, nous devons ajouter l'utilisateur au groupe sudo. Par défaut, sur Ubuntu 20.04, les utilisateurs membres du groupe sudo sont autorisés à utiliser la commande sudo
.
En tant que root, exécutez cette commande pour ajouter votre nouvel utilisateur au groupe sudo (remplacez le nom d'utilisateur en surbrillance par votre nouvel utilisateur) :
usermod -aG sudo sammy
Désormais, lorsque vous êtes connecté en tant qu'utilisateur habituel, vous pouvez taper sudo
avant les commandes pour les exécuter avec les privilèges de superutilisateur.
Étape 4 - Configuration d'un pare-feu de base
Les serveurs Ubuntu 20.04 peuvent utiliser le pare-feu UFW pour s'assurer que seules les connexions à certains services sont autorisées. Nous pouvons configurer un pare-feu de base à l'aide de cette application.
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 ces applications par leur nom. OpenSSH, le service nous permettant de nous connecter à notre serveur maintenant, a un profil enregistré auprès d'UFW.
Vous pouvez le voir en tapant :
ufw app list
OutputAvailable applications: OpenSSH
Nous devons nous assurer que le pare-feu autorise les connexions SSH afin que nous puissions nous reconnecter la prochaine fois. Nous pouvons autoriser ces connexions en tapant :
ufw allow OpenSSH
Ensuite, nous pouvons activer le pare-feu en tapant :
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 le trafic. Vous pouvez apprendre certaines opérations UFW courantes dans notre Guide UFW Essentials.
Étape 5 - Activation de l'accès externe pour votre utilisateur régulier
Maintenant que nous avons un utilisateur régulier pour une utilisation quotidienne, nous devons nous assurer que nous pouvons nous connecter directement en SSH au compte.
Remarque : Jusqu'à ce que vous ayez vérifié que vous pouvez vous connecter et utiliser sudo
avec votre 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 récupérer l'accès aux droplets à l'aide de la console de récupération.
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 root utilise l'authentification par mot de passe
Si vous vous êtes connecté à votre compte racine à l'aide d'un mot de passe, 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 20.04 pour savoir comment configurer l'authentification basée sur les clés.
Si le compte root utilise l'authentification par clé SSH
Si vous vous êtes connecté à votre compte racine à l'aide de clés SSH, l'authentification par mot de passe est 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, nous pouvons copier ce fichier et cette structure de répertoires dans notre nouveau compte d'utilisateur dans notre 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 ci-dessous 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 sur votre ordinateur local et utilisez SSH avec votre nouveau nom d'utilisateur :
ssh [email protected]_server_ip
Vous devez être connecté au nouveau compte utilisateur sans utiliser de mot de passe. 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.