Chapitre 21. Contrôle de l'accès aux services

Il est extrêmement important de maintenir la sécurité de votre système. Une des manières de garantir la sécurité de votre système est de gérer méticuleusement l'accès aux services. Il se peut que votre système doive fournir un accès ouvert à des services particuliers (comme httpd par exemple, si vous utilisez un serveur Web). Cependant, si vous ne devez pas absolument fournir de service, vous devriez le désactiver. Vous diminuerez ainsi votre exposition à d'éventuels exploits de bogues.

Il existe plusieurs méthodes de gestion d'accès aux services du système. Vous devrez choisir la méthode que vous souhaitez utiliser en fonction du service, de la configuration de votre système et de votre niveau de connaissances sur Linux.

La façon la plus simple de refuser l'accès à un service est de tout simplement le désactiver. Les services gérés par xinetd (dont nous parlerons plus loin) et les services contenus dans la hiérarchie /etc/rc.d peuvent tous les deux être configurés pour démarrer ou s'arrêter en utilisant trois applications différentes :

Vous trouverez peut-être que ces outils sont plus faciles à utiliser que d'autres — comme la modification manuelle des nombreux liens symboliques contenus dans les répertoires sous /etc/rc.d ou celle des fichiers de configuration xinetd contenus dans /etc/xinetd.d.

Vous pouvez également gérer l'accès aux services du système en utilisant iptables pour configurer un pare-feu IP. Si vous êtes un nouvel utilisateur de Linux, iptables n'est pas forcément la meilleure solution pour vous car la configuration de iptables peut être compliquée. Pour cette raison, cette option est plutôt recommandée aux administrateurs de système UNIX/Linux expérimentés.

Ceci étant, iptables a l'avantage d'être très flexible. Si vous avez par exemple besoin d'une solution personnalisée pour donner à certains hôtes l'accès à certains services, iptables est l'outil dont vous avez besoin. Pour plus d'informations au sujet d'iptables, consultez le Guide de référence de Red Hat Enterprise Linux et le Guide de sécurité de Red Hat Enterprise Linux.

Autrement, si vous cherchez un utilitaire permettant d'instaurer des règles générales d'accès pour votre ordinateur personnel et/ou si vous êtes un nouvel utilisateur de Linux, essayez l'Outil de configuration du niveau de sécurité (redhat-config-securitylevel), qui vous permet de sélectionner le niveau de sécurité de votre système, d'une façon similaire à celle utilisée dans l'écran Configuration du pare-feu du programme d'installation.

Reportez-vous au Chapitre 20 pour de plus amples informations sur le sujet. Si vous avez besoin de règles de pare-feu plus spécifiques, reportez-vous au chapitre sur iptables du Guide de référence de Red Hat Enterprise Linux.

21.1. Niveaux d'exécution

Avant de pouvoir configurer l'accès aux services, vous devez comprendre les niveaux d'exécution de Linux. Un niveau d'exécution est un mode défini par les services contenus dans le répertoire /etc/rc.d/rc<x>.d<x> correspond au numéro du niveau d'exécution.

Les niveaux d'exécution (ou runlevels) suivants existent :

Si vous utilisez un écran de connexion texte, vous activez le niveau d'exécution 3. Si vous utilisez un écran de connexion graphique, vous activez le niveau d'exécution 5.

Le niveau d'exécution par défaut peut être changé en modifiant le fichier /etc/inittab, qui, au tout début, contient une ligne qui ressemble à celle figurant ci-dessous :

id:5:initdefault:

Remplacez le numéro de cette ligne par le numéro du niveau d'exécution désiré. Ce changement ne sera pas mis en oeuvre tant que vous ne redémarrerez pas le système.

Afin de changer immédiatement le niveau d'exécution, utilisez la commande telinit suivi du numéro spécifiant le niveau d'exécution. Vous devez être connecté en tant que super-utilisateur afin de pouvoir utiliser cette commande. La commande telinit ne modifie pas le fichier /etc/inittab ; elle change seulement le niveau d'exécution actuellement utilisé. Lors du redémarrage du système, l'opération est effectuée au niveau d'exécution spécifié dans /etc/inittab.