Configuration initiale du serveur avec Rocky Linux 8

De Get Docs
Aller à :navigation, rechercher

Introduction

Lorsque vous créez un nouveau serveur Rocky Linux 8 pour la première fois, vous devez suivre quelques étapes de configuration dès le début dans le cadre de la configuration de base. Cela augmentera la sécurité et la convivialité 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 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 de l'utilisateur root. Si vous n'êtes pas encore connecté à votre serveur, vous pouvez suivre notre documentation 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, connectez-vous 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, et il 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 de la puissance inhérente au compte root est la capacité d'apporter des modifications très destructrices, même par accident.

En tant que tel, la prochaine étape consiste à créer un compte utilisateur alternatif avec une portée d'influence réduite pour le travail quotidien. Ce compte pourra toujours obtenir des privilèges accrus si nécessaire.

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

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é à entrer le mot de passe deux fois. Après cela, votre utilisateur sera prêt à l'utiliser, 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.

Étape 3 - Octroi de privilèges administratifs

Maintenant, nous avons 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 habituel et à nous reconnecter en tant que compte root, nous pouvons configurer ce que l'on appelle les privilèges "superutilisateur" ou root pour notre compte habituel. Cela permettra à notre utilisateur habituel d'exécuter des commandes avec des privilèges administratifs en mettant 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 appartenant 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

Désormais, lorsque vous êtes connecté en tant qu'utilisateur habituel, 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 chargées de refuser le trafic vers chaque port de votre serveur, à l'exception des ports/services que vous avez explicitement approuvés. Rocky Linux a un service appelé firewalld pour exécuter cette fonction. Un outil appelé firewall-cmd est utilisé pour configurer les politiques de pare-feu firewalld.

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


Installez d'abord firewalld :

dnf install firewalld -y

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

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 s'agit à la fois de active et de enabled, 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 énumérer 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 devrait ê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 sera mise à 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 tout service supplémentaire que vous pourrez 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 dans notre serveur.

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 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, 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 Rocky Linux 8 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, 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 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 utilisateur.

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, de retour dans un nouveau terminal sur votre ordinateur local, ouvrez une nouvelle session SSH avec votre utilisateur non-root :

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).

Conclusion

À 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.