Monday, May 28, 2018

CentOS (FR) - 04 - systemd et services réseau

English summary: in my previous blog posts, I often had to start and stop various network related services, which led me to take a closer look at managing CentOS services in general. Without leaving the subject of networking entirely (most of the examples below concern network services), I explore the use of the latest tool for service management in CentOS: systemd and the command systemctl.


***

Dans mes articles précédents, j'ai été amené assez souvent à manipuler des services réseau, ce qui m'a donné envie de jeter un coup d’œil sur la gestion des services sous CentOS 7 en général. Sans quitter le domaine de la réseautique tout à fait, je vais présenter l'outil systemd et la commande systemctl.

Depuis sa version 7 donc, l'outil qui sert à gérer les services sous CentOS s'appelle systemd. A une échelle plus large, la plupart des distributions GNU/Linux ont remplacé les outils précédents par ce nouvel outil.

Entrons dans le vif du sujet.

Dans le monde de systemd, les services s'appellent "unité de service" et se terminent par l'extension de fichier ".service".

Par exemple :

NetworkManager.service

Nous pouvons vérifier l'état d'un service avec cette commande (toujours avec l'exemple de NetworkManager) :

systemctl status NetworkManager.service


Remarque : il est possible d'omettre l'extension de fichier pour être un peu plus concis :

systemctl status NetworkManager

C'est ce que je ferai dans le reste de cet article.


L'affichage abonde en détails, entre autres : l'état du service, sa durée d'activité, les fichiers de configuration systemd pour le service, et les éléments du journal les plus récents (coupés dans la capture d'écran ci-dessous) :





Si nous voulons seulement voir si le service s'exécute (s'il est démarré - started) ou s'il est autorisé à tourner (enabled), nous pouvons recourir plutôt à ces deux commandes :

systemctl is-active NetworkManager

systemctl is-enabled NetworkManager




Comme la commande PowerShell "Get-Service" sous Windows, cette commande nous donne une vue d'ensemble des services :

systemctl list-units --type service



Cela nous montre le nom de chaque service (unité de service) et s'il a été...

1. Chargé (LOAD)
2. Activé (ACTIVE)

En plus d'une description.

Par défaut, seuls les services activés sont affichés. Pour les voir tous, quel que soit l'état d'activation, il suffit d'ajouter --all

systemctl list-units --type service --all




Les commandes de base (pour arrêter, lancer, redémarrer, recharger) sont assez simples :

systemctl stop NetworkManager

systemctl start NetworkManager

systemctl restart NetworkManager

systemctl reload NetworkManager



Le dépannage des services

Et des services réseau en particulier... Quelques notes.
  • Si un service réseau ne fonctionne pas, nous devons vérifier si le service s'exécute (voir les exemples plus haut).
  • Même si le service s'exécute, le pare-feu pourrait bloquer les connexions. Nous devons vérifier la zone active de firewalld et les services autorisés.
  • En plus de tenter une simple connexion depuis un ordinateur distant, nous pouvons utiliser netstat au serveur local pour afficher les services qui écoutent (aux ports...) et portqry ou nmap à distance.
  • Le fait d'arrêter un service de réseau n'arrête pas obligatoirement les sessions réseau en cours.

Voici un exemple qui montre les rapports entre différents "services".

Dans mon article précédent, j'ai ajouté le service "https" à la zone par défaut de firewalld, soit "public".



Pourtant, si j'exécute la commande netstat avec les paramètres suivants (pour une présentation plus concise), https ne se trouve pas parmi les services :



A y réfléchir, cela est tout à fait logique puisque notre serveur n'est pas un serveur Apache et aucun service n'écoute au port 443 (bien que les paquets entrants seraient autorisés en raison de la configuration de notre pare-feu) :




Note de la fin : il faudrait voir si, comme sous Windows, le fait d'installer un rôle ouvre automatiquement les ports nécessaires.

No comments:

Post a Comment