Configuration initiale du serveur avec Rocky Linux 8

Introduction

Lorsque vous créez un nouveau serveur Rocky Linux 8 pour la première fois, il y a quelques étapes de configuration que vous devriez effectuer dès le début dans le cadre de la configuration de base. Cela augmentera la sécurité et la facilité d’utilisation de votre serveur et vous donnera une base solide pour les actions ultérieures.

Étape 1 — Connexion en tant que root

Pour vous connecter à votre serveur, vous aurez besoin de connaître l’adresse IP publique du 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 utilisateur root. Si vous n’êtes pas encore connecté à votre serveur, vous voudrez peut-être suivre notre documentation sur comment se connecter à votre Droplet avec SSH, qui couvre ce processus en détail.

Si vous n’êtes pas encore connecté à votre serveur, connectez-vous maintenant en tant qu’utilisateur root en utilisant la commande suivante (remplacez la partie en surbrillance de la commande par l’adresse IP publique de votre serveur) :

  1. ssh root@your_server_ip

Acceptez l’avertissement concernant l’authenticité de l’hôte s’il apparaît. 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, il se peut que vous deviez saisir la phrase secrète la première fois que vous utilisez la clé à chaque session. Si c’est votre première connexion au serveur avec un mot de passe, il se peut également que vous soyez invité à changer le mot de passe root.

À propos de Root

L’utilisateur root est l’utilisateur administratif dans un environnement Linux, et il dispose de privilèges très étendus. En raison des privilèges accrus du compte root, il est déconseillé de l’utiliser régulièrement. Cela est dû en partie au pouvoir inhérent au compte root, qui permet d’effectuer des modifications très destructrices, même par accident.

Par conséquent, la prochaine étape consiste à configurer un compte utilisateur alternatif avec un champ d’influence réduit pour le travail quotidien. Ce compte pourra tout de même obtenir des privilèges accrus lorsque cela est nécessaire.

Étape 2 — Créer un nouvel utilisateur

Une fois connecté en tant que root, vous pouvez créer le nouveau compte utilisateur que nous utiliserons pour nous connecter désormais.

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

  1. adduser sammy

Ensuite, définissez un mot de passe fort pour l’utilisateur sammy :

  1. passwd sammy

Vous serez invité à saisir le mot de passe deux fois. Après cela, votre utilisateur sera prêt à être utilisé, mais nous allons d’abord donner à cet utilisateur des privilèges supplémentaires pour utiliser la commande sudo. Cela nous permettra d’exécuter des commandes en tant que root si nécessaire.

Étape 3 — Octroi de privilèges administratifs

Maintenant, nous avons un nouveau compte utilisateur avec des privilèges de compte réguliers. Cependant, il peut parfois être nécessaire d’effectuer des tâches administratives.

Pour éviter de devoir fermer notre session utilisateur régulière et nous reconnecter en tant que compte root, nous pouvons configurer ce qu’on appelle les privilèges de « superutilisateur » ou root pour notre compte régulier. Cela permettra à notre utilisateur régulier d’exécuter des commandes avec des privilèges administratifs en plaçant le mot sudo avant chaque commande.

Pour ajouter ces privilèges à notre nouvel utilisateur, nous devons ajouter le nouvel utilisateur au groupe wheel. Par défaut, sur Rocky Linux 8, les utilisateurs qui appartiennent au groupe wheel sont autorisés à utiliser la commande sudo.

En tant que root, exécutez cette commande pour ajouter votre nouvel utilisateur au groupe wheel (remplacez le mot surligné par votre nouveau nom d’utilisateur) :

  1. usermod -aG wheel sammy

Maintenant, lorsque vous êtes connecté en tant qu’utilisateur régulier, vous pouvez taper sudo avant les commandes pour effectuer des actions avec des privilèges de superutilisateur.

Étape 4 — Configuration d’un pare-feu de base

Les pare-feu fournissent un niveau de sécurité de base pour votre serveur. Ces applications sont responsables de refuser le trafic à chaque port de votre serveur, sauf pour ceux que vous avez explicitement approuvés. Rocky Linux dispose d’un service appelé firewalld pour effectuer cette fonction. Un outil appelé firewall-cmd est utilisé pour configurer les politiques de pare-feu firewalld.

Remarque : Si vos serveurs tournent sur DigitalOcean, vous pouvez éventuellement utiliser les Pare-feux Cloud DigitalOcean au lieu de firewalld. Nous recommandons d’utiliser un seul pare-feu à la fois pour éviter les règles conflictuelles qui peuvent être difficiles à déboguer.

Commencez par installer firewalld :

  1. dnf install firewalld -y

La configuration par défaut de firewalld autorise les connexions ssh, donc nous pouvons activer le pare-feu immédiatement :

  1. systemctl start firewalld

Vérifiez l’état du service pour vous assurer qu’il a démarré :

  1. systemctl status firewalld
Output
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago Docs: man:firewalld(1) Main PID: 13180 (firewalld) Tasks: 2 (limit: 5059) Memory: 22.4M CGroup: /system.slice/firewalld.service └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Notez qu’il est à la fois actif et activé, ce qui signifie qu’il démarrera par défaut si le serveur est redémarré.

Maintenant que le service est opérationnel, nous pouvons utiliser l’utilitaire firewall-cmd pour obtenir et définir des informations de politique pour le pare-feu.

Commençons par lister les services déjà autorisés :

  1. firewall-cmd --permanent --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Pour voir les services supplémentaires que vous pouvez activer par leur nom, tapez :

  1. firewall-cmd --get-services

Pour ajouter un service qui doit être autorisé, utilisez le drapeau --add-service :

  1. firewall-cmd --permanent --add-service=http

Cela ajoutera le service http et autorisera le trafic TCP entrant sur le port 80. La configuration sera mise à jour après le rechargement du pare-feu :

  1. firewall-cmd --reload

N’oubliez pas que vous devrez ouvrir explicitement le pare-feu (avec des services ou des ports) pour tout service supplémentaire que vous pourriez configurer ultérieurement.

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

Maintenant que nous avons un utilisateur régulier non root pour une utilisation quotidienne, nous devons nous assurer que nous pouvons l’utiliser pour SSH vers notre serveur.

Remarque : Jusqu’à ce que vous puissiez vérifier 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 pourrez diagnostiquer et apporter les modifications nécessaires en tant que root. Si vous utilisez un Droplet DigitalOcean et rencontrez des problèmes avec votre connexion SSH en tant que root, vous pouvez vous connecter au Droplet en utilisant la console DigitalOcean.

Le processus de configuration de l’accès SSH pour votre nouvel utilisateur dépend de savoir si 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 root en utilisant un mot de passe, alors 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 :

  1. ssh sammy@your_server_ip

Après avoir saisi le mot de passe de votre utilisateur régulier, vous serez connecté. N’oubliez pas que si vous devez exécuter une commande avec des privilèges administratifs, saisissez sudo devant comme ceci :

  1. sudo command_to_run

Vous serez invité à saisir le mot de passe de votre utilisateur régulier lors de l’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 recommandons vivement de configurer des clés SSH au lieu d’utiliser l’authentification par mot de passe. Suivez notre guide sur la configuration des clés SSH sur Rocky Linux 8 pour apprendre 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 root à l’aide de clés SSH, alors l’authentification par mot de passe est désactivée pour SSH. Vous devrez ajouter une copie de votre clé publique au fichier ~/.ssh/authorized_keys du nouvel utilisateur pour vous connecter avec succès.

Étant donné que votre clé publique est déjà dans le fichier ~/.ssh/authorized_keys du compte root sur le serveur, nous pouvons copier ce fichier et la structure du répertoire vers notre nouveau compte utilisateur.

La manière la plus simple de copier les fichiers avec les propriétaires et les autorisations corrects est d’utiliser la commande rsync. Cela copiera le répertoire .ssh de l’utilisateur root, préservera les autorisations et modifiera les propriétaires des fichiers, le tout en une seule commande. Assurez-vous de modifier les parties en surbrillance de la commande ci-dessous pour correspondre au nom de votre utilisateur régulier :

Remarque : La commande rsync traite différemment les sources et les destinations qui se terminent par une barre oblique par rapport à celles sans barre oblique. Lors de l’utilisation de rsync ci-dessous, assurez-vous que le répertoire source (~/.ssh) ne contient pas de barre oblique finale (vérifiez que vous n’utilisez pas ~/.ssh/).

Si vous ajoutez accidentellement une barre oblique à la commande, rsync copiera les contenus du répertoire ~/.ssh du compte root vers le répertoire personnel de l’utilisateur sudo au lieu de copier l’intégralité de la structure du répertoire ~/.ssh. Les fichiers seront dans le mauvais emplacement et SSH ne pourra pas les trouver et les utiliser.

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

Revenez maintenant dans un nouveau terminal sur votre machine locale, ouvrez une nouvelle session SSH avec votre utilisateur non-root :

  1. ssh sammy@your_server_ip

Vous devriez être connecté au nouveau compte utilisateur sans utiliser de mot de passe. Rappelez-vous, si vous avez besoin d’exécuter une commande avec des privilèges administratifs, saisissez sudo avant comme ceci :

  1. sudo command_to_run

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

Conclusion

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

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-8