Introduction
Lorsque vous créez un nouveau serveur Rocky Linux 9, il y a quelques étapes de configuration que vous devez effectuer dès le départ dans le cadre de la configuration initiale. Cela augmentera la sécurité et la facilité d’utilisation de votre serveur et vous fournira une base solide sur laquelle vous pourrez vous appuyer.
Étape 1 — Connexion en tant que Root
Pour vous connecter à votre serveur, vous devrez 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 de l’utilisateur root. Si vous n’avez pas encore ouvert de session sur votre serveur, vous voudrez peut-être suivre notre documentation sur comment se connecter à votre Droplet avec SSH, qui explique en détail ce processus.
Si vous n’êtes pas déjà connecté à votre serveur, connectez-vous maintenant en tant qu’utilisateur root en utilisant la commande suivante (remplacez la partie surlignée de la commande par l’adresse IP publique de votre serveur) :
- ssh root@your_server_ip
Acceptez l’avertissement concernant l’authenticité de l’hôte s’il apparaît. Si vous utilisez une authentification par mot de passe, fournissez votre mot de passe root pour vous connecter. Si vous utilisez une clé SSH protégée par un mot de passe, il se peut que vous deviez entrer le mot de passe la première fois que vous utilisez la clé à chaque session. Si c’est la première fois que vous vous connectez au serveur avec un mot de passe, il se peut également que l’on vous demande de changer le mot de passe root.
A 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û au fait qu’une partie du pouvoir inhérent au compte root est la capacité à 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 toujours bénéficier de privilèges accrus lorsque nécessaire.
Etape 2 — Création d’un Nouvel Utilisateur
Une fois connecté en tant que root, vous pouvez créer un nouveau compte utilisateur que vous utiliserez désormais pour vous connecter.
Cet exemple crée un nouvel utilisateur appelé sammy, mais vous devriez le remplacer par le nom d’utilisateur de votre choix :
- adduser sammy
Ensuite, définissez un mot de passe fort pour l’utilisateur sammy
:
- passwd sammy
Vous serez invité à saisir le mot de passe deux fois. Après cela, votre utilisateur sera prêt à être utilisé, mais d’abord, vous lui donnerez des privilèges supplémentaires pour utiliser la commande sudo
. Cela vous permettra d’exécuter des commandes en tant que root lorsque nécessaire.
Étape 3 — Octroi de privilèges administratifs
Maintenant, vous avez un nouveau compte utilisateur avec les privilèges de compte réguliers. Cependant, vous devrez parfois effectuer des tâches administratives.
Pour éviter de devoir vous déconnecter de votre utilisateur régulier et vous reconnecter en tant que compte root, vous pouvez configurer ce qu’on appelle les privilèges de « superutilisateur » ou root pour votre compte régulier. Cela permettra à votre utilisateur régulier d’exécuter des commandes avec des privilèges administratifs en mettant le mot sudo
devant chaque commande.
Pour ajouter ces privilèges à votre nouvel utilisateur, vous devez ajouter le nouvel utilisateur au groupe wheel. Par défaut, sur Rocky Linux 9, 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 souligné par votre nouveau nom d’utilisateur) :
- 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 superutilisateur.
Étape 4 — Configuration d’un pare-feu
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 les ports/services 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 de firewalld
.
Remarque : Si vos serveurs tournent sur DigitalOcean, vous pouvez éventuellement utiliser les pare-feux cloud DigitalOcean au lieu de firewalld
. Vous ne devez utiliser qu’un seul pare-feu à la fois pour éviter des règles conflictuelles qui pourraient être difficiles à déboguer.
Commencez par installer firewalld
:
- dnf install firewalld -y
La configuration par défaut de firewalld
autorise les connexions ssh
, vous pouvez donc activer le pare-feu immédiatement :
- systemctl start firewalld
Vérifiez le statut du service pour vous assurer qu’il a démarré :
- 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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago
Docs: man:firewalld(1)
Main PID: 15060 (firewalld)
Tasks: 4 (limit: 10938)
Memory: 28.1M
CPU: 6.127s
CGroup: /system.slice/firewalld.service
└─15060 /usr/bin/python3 -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 en cours d’exécution, vous pouvez utiliser l’utilitaire firewall-cmd
pour obtenir et définir des informations de stratégie pour le pare-feu.
Tout d’abord, listons les services déjà autorisés :
- firewall-cmd --permanent --list-all
Outputpublic (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 nom, tapez :
- firewall-cmd --get-services
Pour ajouter un service qui doit être autorisé, utilisez le drapeau --add-service
:
- firewall-cmd --permanent --add-service=http
Cela ajouterait le service http
et autoriserait le trafic TCP entrant sur le port 80
. La configuration se mettra à jour après le rechargement du pare-feu :
- firewall-cmd --reload
N’oubliez pas que vous devrez ouvrir explicitement le pare-feu (avec des services ou des ports) pour tous les services supplémentaires que vous pourriez configurer ultérieurement.
Étape 5 — Activer l’accès externe pour votre utilisateur régulier
Maintenant que vous avez un utilisateur régulier non-root pour un usage quotidien, assurez-vous de pouvoir l’utiliser pour vous connecter en SSH sur votre serveur.
Note: Jusqu’à ce que vous ayez vérifié que vous pouvez vous connecter et utiliser sudo
avec votre nouvel utilisateur, vous devez rester connecté en tant que root. De cette manière, en cas de problèmes, vous pourrez effectuer des diagnostics 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 en tant que root, vous pouvez vous connecter au droplet via la console DigitalOcean.
Le processus de configuration de l’accès SSH pour votre nouvel utilisateur dépend de l’utilisation d’un mot de passe ou de clés SSH pour l’authentification du compte root de votre serveur.
Si le compte root utilise l’authentification par mot de passe
Si vous vous êtes connecté à votre compte root à 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 terminal et en utilisant SSH avec votre nouveau nom d’utilisateur:
- ssh sammy@your_server_ip
Après avoir saisi le mot de passe de votre utilisateur régulier, vous serez connecté. N’oubliez pas, si vous devez exécuter une commande avec des privilèges d’administration, tapez sudo
devant, comme ceci:
- 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, vous devriez configurer des clés SSH au lieu d’utiliser l’authentification par mot de passe. Suivez ce guide sur la configuration des clés SSH sur Rocky Linux 9 pour apprendre comment configurer l’authentification basée sur des clés.
Si le compte Root utilise l’authentification par clés SSH
Si vous vous êtes connecté à votre compte root en utilisant des 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 dans le 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 root sur le serveur, vous pouvez copier ce fichier et cette structure de répertoire vers votre nouveau compte utilisateur.
La manière la plus simple de copier les fichiers avec les bons propriétaires et permissions est d’utiliser la commande rsync
. Cela permettra de copier le répertoire .ssh
de l’utilisateur root, de préserver les permissions et de modifier les propriétaires des fichiers, le tout en une seule commande. Assurez-vous de modifier les parties surlignées 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 se terminant par une barre oblique par rapport à ceux sans barre oblique terminale. Lorsque vous utilisez rsync
ci-dessous, assurez-vous que le répertoire source (~/.ssh
) ne contient pas de barre oblique terminale (vérifiez que vous n’utilisez pas ~/.ssh/
).
Si vous ajoutez accidentellement une barre oblique terminale à la commande, rsync
copiera le contenu du répertoire racine du compte ~/.ssh
vers le répertoire personnel de l’utilisateur sudo
au lieu de copier l’ensemble de la structure du répertoire ~/.ssh
. Les fichiers seront au mauvais emplacement et SSH ne pourra pas les trouver et les utiliser.
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Maintenant, dans un nouveau terminal sur votre machine locale, ouvrez une nouvelle session SSH avec votre utilisateur non racine :
- ssh sammy@your_server_ip
Vous devriez être connecté au nouveau compte utilisateur sans utiliser de mot de passe. N’oubliez pas, si vous avez besoin d’exécuter une commande avec des privilèges administratifs, tapez sudo
devant comme ceci :
- 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 avez une base solide pour votre serveur. Vous pouvez maintenant installer n’importe lequel des logiciels dont vous avez besoin sur votre serveur. Par exemple, vous pouvez commencer par installer le serveur web Nginx.
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-rocky-linux-9