Recherche de site Web

Installation et configurations initiales du serveur sur RHEL 7


Dans ce didacticiel, nous aborderons les premières étapes de configuration à suivre après une nouvelle installation de Red Hat Enterprise Linux 7 sur un serveur nu ou sur un serveur privé virtuel.

Exigences

  1. Installation minimale de RHEL 7

Important : les utilisateurs de CentOS 7 peuvent suivre cet article pour effectuer une configuration initiale du serveur sur CentOS 7.

Mettre à jour le système RHEL 7

Dans la première étape, connectez-vous à la console de votre serveur RHEL avec un compte avec les privilèges root ou directement en tant que root et exécutez la commande ci-dessous afin de mettre à jour complètement les composants de votre système, tels que les packages installés, le noyau ou appliquez d'autres correctifs de sécurité.

yum check-update
yum update

Afin de supprimer tous les packages téléchargés localement et autres caches YUM associés, exécutez la commande ci-dessous.

yum clean all

Installer les utilitaires système sur RHEL 7

Les utilitaires suivants peuvent s'avérer utiles pour l'administration système quotidienne : nano (éditeur de texte pour remplacer l'éditeur vi), wget, curl (utilitaires utilisés pour télécharger des packages sur le réseau principalement) net-tools, lsof (utilitaires de gestion des réseaux locaux) et bash-completion (complétion automatique en ligne de commande).

Installez-les tous en une seule fois en exécutant la commande ci-dessous.


yum install nano wget curl net-tools lsof bash-completion

Configurer la mise en réseau dans RHEL 7

RHEL 7 dispose d'une large gamme d'outils qui peuvent être utilisés pour configurer et gérer le réseau, depuis la modification manuelle du fichier de configuration réseau jusqu'à l'utilisation de commandes telles que ip, ifconfig, nmtui, nmcli ou route.

L'utilitaire le plus simple qu'un débutant puisse utiliser pour gérer et modifier les configurations réseau est la ligne de commande graphique nmtui.

Afin de modifier le nom d'hôte du système via l'utilitaire nmtui, exécutez la commande nmtui-hostname, définissez le nom d'hôte de votre machine et appuyez sur OK pour terminer, comme illustré. dans la capture d'écran ci-dessous.


nmtui-hostname

Pour manipuler une interface réseau, exécutez la commande nmtui-edit, choisissez l'interface que vous souhaitez modifier et sélectionnez Modifier dans le menu de droite, comme indiqué dans la capture d'écran ci-dessous.

Une fois que vous êtes dans l'interface graphique fournie par l'utilitaire nmtui, vous pouvez configurer les paramètres IP de l'interface réseau comme illustré dans la capture d'écran ci-dessous. Lorsque vous avez terminé, accédez à OK à l'aide de la touche [tab] pour enregistrer la configuration et quitter.

Afin d'appliquer la nouvelle configuration de l'interface réseau, exécutez la commande nmtui-connect, sélectionnez l'interface que vous souhaitez gérer et cliquez sur l'option Désactiver/Activer pour la mettre hors service et la réactiver. l'interface avec les paramètres IP, comme présenté dans les captures d'écran ci-dessous.


nmtui-connect

Afin d'afficher les paramètres de l'interface réseau, vous pouvez inspecter le contenu du fichier d'interface ou émettre les commandes ci-dessous.


ifconfig enp0s3
ip a
ping -c2 google.com

D'autres utilitaires utiles qui peuvent être utilisés pour gérer la vitesse, l'état des liens ou obtenir des informations sur les interfaces réseau des machines sont ethtool et mii-tool.


ethtool enp0s3
mii-tool enp0s3

Créer un nouveau compte utilisateur

À l'étape suivante, lorsque vous êtes connecté en tant que root à votre serveur, créez un nouvel utilisateur avec la commande ci-dessous. Cet utilisateur sera utilisé ultérieurement pour se connecter à votre système et effectuer des tâches administratives.

adduser tecmint_user

Après avoir ajouté l'utilisateur à l'aide de la commande ci-dessus, configurez un mot de passe fort pour cet utilisateur en exécutant la commande ci-dessous.

passwd tecmint_user

Dans les cas où vous souhaitez forcer ce nouvel utilisateur à changer son mot de passe lors de la première tentative de connexion, exécutez la commande ci-dessous.

chage -d0 tecmint_user

Ce nouveau compte utilisateur dispose pour le moment des privilèges de compte habituels et ne peut pas effectuer de tâches administratives via la commande sudo.

Afin d'éviter l'utilisation du compte root pour exécuter des privilèges administratifs, accordez à ce nouvel utilisateur des privilèges administratifs en l'ajoutant au groupe système « wheel ».

Les utilisateurs appartenant au groupe « wheel » sont autorisés, par défaut dans RHEL, à exécuter des commandes avec les privilèges root en utilisant l'utilitaire sudo avant d'écrire la commande nécessaire à l'exécution.

Par exemple, pour ajouter l'utilisateur « tecmint_user » au groupe « wheel », exécutez la commande ci-dessous.

usermod -aG wheel tecmint_user

Ensuite, connectez-vous au système avec le nouvel utilisateur et essayez de mettre à jour le système via la commande « sudo yum update » pour tester si l'utilisateur dispose des pouvoirs root accordés.

su - tecmint_user
sudo yum update

Configurer l'authentification par clé publique SSH sur RHEL 7

À l'étape suivante, afin d'augmenter la sécurité de votre service RHEL, configurez l'authentification par clé publique SSH pour le nouvel utilisateur. Afin de générer une paire de clés SSH, la clé publique et privée, exécutez la commande suivante sur la console de votre serveur. Assurez-vous que vous êtes connecté au système avec l'utilisateur pour lequel vous configurez la clé SSH.

su - tecmint_user
ssh-keygen -t RSA

Pendant la génération de la clé, vous serez invité à ajouter une phrase secrète afin de sécuriser la clé. Vous pouvez saisir une phrase secrète forte ou choisir de laisser la phrase secrète vide si vous souhaitez automatiser les tâches via le serveur SSH.

Une fois la clé SSH générée, copiez la paire de clés publiques sur un serveur distant en exécutant la commande ci-dessous. Pour installer la clé publique sur le serveur SSH distant, vous aurez besoin d'un compte utilisateur disposant des informations d'identification pour vous connecter à ce serveur.

ssh-copy-id [email 

Vous devriez maintenant essayer de vous connecter via SSH au serveur distant en utilisant la clé privée comme méthode d'authentification. Vous devriez pouvoir vous connecter automatiquement sans que le serveur SSH ne vous demande de mot de passe.

ssh [email 

Pour voir le contenu de votre clé publique SSH si vous souhaitez installer manuellement la clé sur un serveur SSH distant, exécutez la commande suivante.

cat ~/.ssh/id_rsa

SSH sécurisé sur RHEL 7

Afin de sécuriser le démon SSH et d'interdire l'accès SSH à distance au compte root via un mot de passe ou une clé, ouvrez le fichier de configuration principal du serveur SSH et apportez les modifications suivantes.

sudo vi /etc/ssh/sshd_config

Recherchez la ligne #PermitRootLogin yes, décommentez la ligne en supprimant le signe # (hashtag) du début de la ligne et modifiez la ligne pour qu'elle ressemble à celle ci-dessous. extrait.

PermitRootLogin no

Ensuite, redémarrez le serveur SSH pour appliquer les nouveaux paramètres et testez la configuration en essayant de vous connecter à ce serveur avec le compte root. L'accès au compte root via SSH devrait désormais être restreint.

sudo systemctl restart sshd

Il existe des situations dans lesquelles vous souhaiterez peut-être déconnecter automatiquement toutes les connexions SSH distantes à votre serveur après une période d'inactivité.

Afin d'activer cette fonctionnalité à l'échelle du système, exécutez la commande ci-dessous, qui ajoute la variable bash TMOUT au fichier bashrc principal et force la déconnexion ou l'abandon de chaque connexion SSH. après 5 minutes d'inactivité.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

Exécutez la commande tail pour vérifier si la variable a été correctement ajoutée à la fin du fichier /etc/bashrc. Désormais, toutes les connexions SSH suivantes seront automatiquement fermées après 5 minutes d'inactivité.

tail /etc/bashrc

Dans la capture d'écran ci-dessous, la session SSH distante de la machine Drupal vers le serveur RHEL s'est déconnectée automatiquement après 5 minutes.

Configurer le pare-feu sur RHEL 7

À l'étape suivante, configurez le pare-feu afin de sécuriser davantage le système au niveau du réseau. RHEL 7 est livré avec l'application Firewalld pour gérer les règles iptables sur le serveur.

Tout d’abord, assurez-vous que le pare-feu est exécuté sur votre système en exécutant la commande ci-dessous. Si le démon Firewalld est arrêté, vous devez le démarrer avec la commande suivante.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Une fois le pare-feu activé et exécuté sur votre système, vous pouvez utiliser l'utilitaire de ligne de commande firewall-cmd pour définir les informations de stratégie de pare-feu et autoriser le trafic vers certains ports réseau spécifiques, tels que le démon SSH, la connexion établie. à un serveur Web interne ou à d’autres services réseau associés.

Étant donné que nous exécutons actuellement simplement un démon SSH sur notre serveur, nous pouvons ajuster la politique de pare-feu pour autoriser le trafic sur le port de service SSH en exécutant la commande suivante.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Pour ajouter une règle de pare-feu à la volée, sans appliquer la règle au prochain démarrage du serveur, utilisez la syntaxe de commande ci-dessous.

sudo firewall-cmd --add-service=sshd

Si vous installez d'autres services réseau sur votre serveur, tels qu'un serveur HTTP, un serveur de messagerie ou d'autres services réseau, vous pouvez ajouter des règles pour autoriser les connexions spécifiques comme suit.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

Pour répertorier toutes les règles de pare-feu, exécutez la commande ci-dessous.

sudo firewall-cmd --permanent --list-all

Supprimer les services inutiles dans RHEL 7

Afin d'obtenir une liste de tous les services réseau (TCP et UDP) exécutés par défaut sur votre serveur RHEL, exécutez la commande ss, comme illustré dans l'exemple ci-dessous.

sudo ss -tulpn

La commande ss révélera certains services intéressants qui sont démarrés et exécutés par défaut sur votre système, tels que le service maître Postfix et le serveur responsable du protocole NTP.

Si vous ne prévoyez pas de configurer ce serveur comme serveur de messagerie, vous devez arrêter, désactiver et supprimer le démon Postfix en exécutant les commandes ci-dessous.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Récemment, de vilaines attaques DDOS sur le protocole NTP ont été signalées. Si vous n'envisagez pas de configurer votre serveur RHEL pour qu'il s'exécute en tant que serveur NTP afin que les clients internes synchronisent l'heure avec ce serveur, vous devez complètement désactiver et supprimer le démon Chrony en exécutant les commandes ci-dessous.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Encore une fois, exécutez la commande ss pour identifier si d'autres services réseau sont en cours d'exécution sur votre système, puis désactivez-les et supprimez-les.

sudo ss -tulpn

Afin de fournir l'heure précise de votre serveur et de synchroniser l'heure avec un serveur homologue supérieur, vous pouvez installer l'utilitaire ntpdate et synchroniser l'heure avec un serveur NTP public, en exécutant les commandes ci-dessous.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

Pour automatiser l'exécution quotidienne de la commande de synchronisation de l'heure ntpdate sans aucune intervention de l'utilisateur, planifiez l'exécution d'une nouvelle tâche crontab à minuit avec le contenu suivant.

sudo crontab -e

Extrait du fichier Crontab :

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

C'est tout! Désormais, votre serveur RHEL est prêt à installer les logiciels supplémentaires nécessaires aux services ou applications réseau personnalisés, tels que l'installation et la configuration d'un serveur Web, d'un serveur de base de données, d'un service de partage de fichiers ou d'autres applications spécifiques.

Pour sécuriser et renforcer davantage le serveur RHEL 7, consultez ces articles suivants.

  1. Le méga guide pour renforcer et sécuriser RHEL 7 – Partie 1
  2. Le méga guide pour renforcer et sécuriser RHEL 7 – Partie 2

Si vous envisagez de déployer des sites Web sur ce système RHEL 7, découvrez comment installer et configurer la pile LAMP ou la pile LEMP.