Lorsque vous créez un nouveau serveur CentOS 8, il y a quelques étapes de configuration que vous devez suivre dès le départ 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 des actions ultérieures.
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 utilisateur root. Si vous n’êtes pas encore connecté à votre serveur, vous pouvez suivre notre documentation sur Comment vous connecter à votre Droplet avec SSH, qui couvre ce processus en détail.
Si vous n’êtes pas encore connecté à votre serveur, connectez-vous 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 l’authentification par mot de passe, fournissez votre mot de passe root pour vous connecter. Si vous utilisez une clé SSH qui est protégée par une phrase de passe, il se peut que vous soyez invité à entrer la phrase 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, vous pouvez également être invité à changer le mot de passe root.
L’utilisateur root est l’utilisateur administratif dans un environnement Linux, et il dispose de privilèges très larges. En raison des privilèges accrus du compte root, il est déconseillé de l’utiliser régulièrement. En effet, une partie du pouvoir inhérent au compte root est sa capacité à effectuer des changements très destructeurs, même par accident.
L’étape suivante consiste donc à créer 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 si nécessaire.
Une fois que vous êtes connecté en tant que root, vous pouvez créer le nouveau compte utilisateur que nous utiliserons pour nous connecter à partir de maintenant.
Cet exemple crée un nouvel utilisateur appelé sammy, mais vous devez le remplacer par le nom d’utilisateur que vous préférez :
- 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, mais nous lui donnerons d’abord 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.
Maintenant, nous avons un nouveau compte utilisateur avec des privilèges de compte ordinaires. Cependant, nous devons parfois effectuer des tâches administratives.
Pour éviter de devoir se déconnecter de notre utilisateur normal et se reconnecter en tant que compte root, nous pouvons configurer ce que l’on appelle des “super-utilisateurs” ou des privilèges 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 chaque commande.
Pour ajouter ces privilèges à notre nouvel utilisateur, nous devons ajouter le nouvel utilisateur au groupe wheel. Par défaut, sur CentOS 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 en surbrillance 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 de super-utilisateur.
Les pare-feux offrent un niveau de sécurité de base pour votre serveur. Ces applications sont chargées de refuser le trafic à chaque port de votre serveur, à l’exception des ports/services que vous avez explicitement approuvés. CentOS dispose d’un service appelé firewalld
pour remplir 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 de DigitalOcean au lieu du pare-feu firewalld
. Nous recommandons de n’utiliser qu’un seul pare-feu à la fois pour éviter les règles contradictoires qui peuvent être difficiles à déboguer.
Tout d’abord, installez firewalld
:
- dnf install firewalld -y
La configuration par défaut de firewalld
autorise les connexions ssh
, de sorte que nous pouvons immédiatement activer le pare-feu :
- systemctl start firewalld
Vérifiez l’état 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 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 Active
et active
, 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 les informations de politique pour le pare-feu.
Commençons par énumérer les services qui sont 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 devrait être autorisé, utilisez le drapeau --add-service
:
- firewall-cmd --permanent --add-service=http
Cela ajoutera le service http
et permettra au trafic TCP entrant d’accéder au port 80
. La configuration sera mise à jour après avoir rechargé le pare-feu :
- firewall-cmd --reload
N’oubliez pas que vous devrez ouvrir explicitement le pare-feu (avec les services ou les ports) pour tous les services supplémentaires que vous serez amené à configurer ultérieurement.
Maintenant que nous avons un utilisateur ordinaire non root pour une utilisation quotidienne, nous devons nous assurer que nous pouvons l’utiliser en SSH sur notre serveur.
Remarque : tant que vous n’avez pas vérifié que vous pouviez 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 avez des problèmes, vous pouvez les résoudre et apporter les changements nécessaires en tant que root. Si vous utilisez une Droplet DigitalOcean et que vous rencontrez des problèmes avec votre connexion SSH root, vous pouvez vous connecter à la Droplet en utilisant la Console DigitalOcean.
Le processus de configuration de l’accès SSH pour votre nouvel utilisateur dépend du fait que le compte root de votre serveur utilise un mot de passe ou des clés SSH pour l’authentification.
Si vous vous êtes connecté à votre compte root à l’aide d’un mot de passe, l’authentification par mot de passe est alors activée pour SSH. Vous pouvez accéder à votre nouveau compte utilisateur en ouvrant une nouvelle session de terminal et en utilisant SSH avec votre nouveau nom d’utilisateur :
- ssh sammy@your_server_ip
Après avoir saisi votre mot de passe d’utilisateur habituel, vous serez connecté. N’oubliez pas que si vous devez gérer une commande avec des privilèges administratifs, tapez sudo
devant comme ceci :
- sudo command_to_run
Votre mot de passe d’utilisateur habituel vous sera demandé lors de la première utilisation de sudo
à chaque session (et périodiquement par la suite).
Pour renforcer la sécurité de votre serveur, nous vous recommandons vivement de configurer des clés SSH plutôt que d’utiliser une authentification par mot de passe. Suivez notre guide sur la Configuration des clés SSH sur CentOS 8 pour apprendre comment configurer l’authentification par clé.
Si vous vous êtes connecté à votre compte root en utilisant des clés SSH, 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.
Comme votre clé publique se trouve déjà dans le fichier ~/.ssh/authorized_keys
du compte root sur le serveur, nous pouvons copier ce fichier et la structure des répertoires dans notre nouveau compte utilisateur.
La commande rsync
représente la façon la plus simple de copier les fichiers avec la propriété et les autorisations correctes. Cela permet de copier le répertoire .ssh
de l’utilisateur root, de préserver les permissions et de modifier les propriétaires de fichiers, le tout en une seule commande. Veillez à modifier les parties surlignées de la commande ci-dessous pour qu’elles correspondent à votre nom d’utilisateur habituel :
Remarque : la commande rsync
traite différemment les sources et les destinations qui se terminent par une barre oblique et celles sans barre oblique. Lorsque vous utilisez rsync
ci-dessous, assurez-vous que le répertoire source (~/.ssh
) ne comporte pas de barre oblique (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 root
dans le répertoire personnel de l’utilisateur sudo
au lieu de copier toute la structure du répertoire ~/.ssh
. Les fichiers se trouveront au mauvais endroit et les SSH ne seront pas en mesure de les trouver et de les utiliser.
- rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Maintenant, de retour sur le nouveau terminal de votre machine locale, ouvrez une nouvelle session SSH avec votre utilisateur non root :
- ssh sammy@your_server_ip
Vous devez être connecté au nouveau compte utilisateur sans utiliser de mot de passe. N’oubliez pas que si vous devez gérer une commande avec des privilèges administratifs, tapez sudo
devant comme ceci :
- sudo command_to_run
Votre mot de passe d’utilisateur habituel vous sera demandé lors de la première utilisation de sudo
à chaque session (et périodiquement par la suite).
À ce stade, vous disposez d’une base solide pour votre serveur. Vous pouvez désormais installer tous les logiciels dont vous avez besoin sur votre serveur.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!