• Aucun résultat trouvé

Contrôle de l’accès aux services

Chapitre 21.

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

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 unmodedéfini par les services contenus dans le répertoire /etc/rc.d/rc| x} .doù~ x correspond au numéro du niveau d’exécution.

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

0 — Arrêt

1 — Mode mono-utilisateur

2 — Pas utilisé (peut être défini par l’utilisateur)

3 — Mode multi-utilisateurs complet

4 — Pas utilisé (peut être défini par l’utilisateur)

5 — Mode multi-utilisateurs complet (avec un écran de connexion graphique)

6 — Redémarrage

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 commandetelinitsuivi du nu-méro spécifiant le niveau d’exécution. Vous devez être connecté en tant que super-utilisateur afin de pouvoir utiliser cette commande. La commandetelinitne 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.

21.2. Enveloppeurs TCP

De nombreux administrateurs de systèmes UNIX ont l’habitude d’utiliser les enveloppeurs TCP (également appelés TCP wrappers) pour gérer l’accès à certains services réseau. Tout service ré-seau géré parxinetd(ainsi que tous les programmes contenant un support intégré pour libwrap) peuvent utiliser les enveloppeurs TCP pour gérer l’accès. Le démonxinetdpeut utiliser les fichiers /etc/hosts.allowet/etc/hosts.denypour configurer l’accès aux services du système. Comme son nom l’indique, le fichierhosts.allowcontient une liste des clients autorisés à accéder aux services réseau contrôlés parxinetd, alors que le fichierhosts.denycontient lui des règles qui empêchent l’accès. Le fichierhosts.allowest prioritaire par rapport au fichierhosts.deny. Les autorisations pour permettre ou empêcher l’accès peuvent être basées sur des adresses IP individuelles (ou noms d’hôtes) ou sur un modèle de clients. Pour plus d’informations, consultez leGuide de réfé-rence de Red Hat Enterprise Linuxet la page de manuel relative àhosts_accessdans la section 5 des pages de manuel (man 5 hosts_access).

21.2.1.xinetd

Pour contrôler l’accès aux services Internet, vous pouvez utiliserxinetd, un remplaçant plus sûr d’inetd. Le démon xinetdconserve les ressources système, fournit le contrôle d’accès et la connexion et peut être utilisé pour lancer des serveurs à buts spéciaux. Ce démonxinetdpeut être utilisé entre autres pour fournir l’accès à certains hôtes seulement, pour refuser l’accès à d’autres,

Chapitre 21. Contrôle de l’accès aux services 159 pour ne fournir l’accès à un service qu’à un moment donné, pour limiter le nombre de connexions et/ou la charge des connexions

Le démonxinetdfonctionne en permanence et surveille tous les ports des services qu’il gère. Lors de la réception d’une requête de connexion à l’un des services qu’il gère,xinetddémarre le serveur adapté pour ce service.

Le fichier de configuration dexinetdest/etc/xinetd.conf, mais si vous examinez ce fichier vous verrez qu’il contient seulement quelques valeurs par défaut et une instruction pour inclure le répertoire /etc/xinetd.d. Pour activer ou désactiver un servicexinetd, éditez son fichier de configuration dans le répertoire/etc/xinetd.d. Si l’attributdisable(désactiver) a la valeuryes, le service est désactivé. Si au contraire l’attributdisablea la valeurno, le service est dans ce cas activé.

Vous pouvez éditer tout fichier de configurationxinetdou changer le statut d’activation à l’aide de l’Outil de configuration des services, dentsysvou dechkconfig. Pour obtenir une liste des services réseau contrôlés parxinetd, passez en revue le contenu du répertoire/etc/xinetd.dà l’aide de la commandels /etc/xinetd.d.

21.3. Outil de configuration des services

L’application graphique de l’Outil de configuration des servicesa été développée par Red Hat pour permettre de configurer les services SysV contenus dans/etc/rc.d/init.dqui seront lan-cés au démarrage (pour les niveaux d’exécution 3, 4 et 5) et les servicesxinetdqui seront activés.

L’application permet également d’une part, de démarrer, arrêter et redémarrer les services SysV et d’autre part, de redémarrerxinetd.

Pour démarrer l’Outil de configuration des servicesà partir du bureau, sélectionnezMenu princi-pal(sur le panneau) =>Paramètres serveur=>Servicesou tapez la commande redhat-config-servicesà l’invite du shell (par exemple, dans un terminalXTermouGNOME).

Figure 21-1. Outil de configuration des services

L’Outil de configuration des servicesaffiche le niveau d’exécution en cours d’utilisation ainsi que le niveau d’exécution en cours de modification. Pour éditer un autre niveau d’exécution, sélectionnez Modifier le niveau d’exécutiondans le menu et sélectionnez le niveau d’exécution 3, 4 ou 5. Pour une description des niveaux d’exécution, consultez la Section 21.1.

160 Chapitre 21. Contrôle de l’accès aux services L’Outil de configuration des servicesrépertorie les services contenus dans/etc/rc.d/init.d ainsi que les services contrôlés parxinetd. Cliquez sur le nom du service figurant dans la liste à gauche de l’application pour afficher une brève description de ce service ainsi que son statut. Si le service n’est pas un servicexinetd, la fenêtre de statut indiquera si le service est actuellement en cours. Si le service est contrôlé parxinetd, la fenêtre de statut affiche la mentionxinetd service. Pour démarrer, arrêter ou redémarrer immédiatement un service, sélectionnez le service à partir de la liste et choisissez le bouton approprié dans la barre d’outils (ou sélectionnez l’action désirée dans le menu déroulant d’Actions). Si le service est un servicexinetd, les boutons d’action ne fonctionne-ront pas car il ne peuvent pas être démarrés ou arrêtés individuellement.

Si vous activez/désactivez un servicexinetden sélectionnant ou dé-sélectionnant la case à cocher placée à coté du nom du service, vous devez choisirFichier=>Sauvegarder les modificationsdans le menu déroulant afin de redémarrerxinetdet d’activer/désactiver immédiatement le service xi-netdque vous avez modifié. Le servicexinetdest également configuré de manière à conserver le paramétrage. Vous pouvez activer/désactiver plus d’un servicexinetdà un moment donné et enre-gistrer les changements lorsque vous avez terminé.

Supposons, par exemple, que vous contrôliezrsyncpour l’activer à un niveau d’exécution 3 et que vous sauvegardiez ensuite vos changements. Le servicersyncsera immédiatement activé. Lors du prochain lancement dexinetd, le servicersyncsera toujours activé.

Avertissement

Lorsque vous sauvegardez des modifications apportées aux servicesxinetd, le démonxinetdest redémarré et les changements sont mis en oeuvre immédiatement. Lorsque vous enregistrez des changements apportés à d’autres services, le niveau d’exécution est reconfiguré, mais les change-ments ne sont pas mis en oeuvre immédiatement.

Pour activer un service non-xinetd afin qu’il démarre au moment de l’amorçage au niveau d’exécution actuellement sélectionné, cochez la case de pointage à côté du nom du service figurant dans la liste. Après avoir configuré le niveau d’exécution, mettez les changements en oeuvre en choisissantFichier=>Sauvegarder les modificationsdans le menu déroulant. La configuration du niveau d’exécution est certes changée, mais le niveau d’exécution n’est pas redémarré ; dans de telles conditions, les changements ne sont pas mis en oeuvre immédiatement.

Supposons, par exemple, que vous configuriez le niveau d’exécution 3. Si vous changez la valeur pour le servicehttpden dé-sélectionnant la case appropriée et que vous choisissiez ensuiteSauvegarder les modifications, la configuration du niveau d’exécution 3 changera afin quehttpdne soit pas lancé lors du démarrage. Le niveau d’exécution 3 n’est toutefois pas réinitialisé ethttpdtourne donc toujours. À ce stade, choisissez l’une des options suivantes :

1. Arrêt du servicehttpd— Arrêtez le service en le sélectionnant dans la liste et en cliquant sur le boutonArrêter. Un message s’affiche indiquant que le service a bien été arrêté.

2. Ré-initialisation du niveau d’exécution — Pour réinitialiser le niveau d’exécution, à l’invite du shell, tapez la commandetelinit 3(où 3 représente le niveau d’exécution choisi). Cette op-tion est conseillée si vous changez la valeur relative àDémarrer à l’amorçagepour de multiples services et si vous souhaitez que ces changements soient mis en oeuvre immédiatement.

3. Terminé! — Vous n’avez pas besoin d’arrêter le servicehttpd. Pour que le service s’arrête, vous pouvez attendre que le système redémarre. Au prochain démarrage, le niveau d’exécution sera initialisé sans que le servicehttpdne tourne.

Pour ajouter un service à un niveau d’exécution, sélectionnez le niveau d’exécution depuis le menu déroulantModifier le niveau d’exécution, puis sélectionnezActions=>Ajouter un service. Pour supprimer un service d’un niveau d’exécution, sélectionnez le niveau d’exécution depuis le menu

Chapitre 21. Contrôle de l’accès aux services 161 déroulantModifier le niveau d’exécution, sélectionnes le service à supprimer dans la liste sur la gauche, puis sélectionnezActions=> Supprimer un service.

21.4. ntsysv

L’utilitairentsysvfournit une interface simple pour activer et désactiver les services. Vous pouvez utiliserntsysvpour activer ou désactiver un service géré parxinetd. Vous pouvez également uti-liserntsysvpour configurer des niveaux d’exécution. Par défaut, seul le niveau d’exécution courant est configuré. Pour configurer un niveau d’exécution différent, spécifiez un ou plusieurs niveau(x) d’exécution à l’aide de l’option--level. La commandentsysv --level 345par exemple, confi-gure les niveaux d’exécution 3, 4 et 5.

L’interfacentsysvfonctionne de la même manière que le programme d’installation en mode texte.

Utilisez les flèches haut et bas pour faire défiler la liste. La barre espace permet de sélectionner/dé-sélectionner les services et sert également à appuyer sur les boutonsValideretAnnuler. Pour passer de la liste des services aux boutonsValideretAnnuler, utilisez la touche [Tab]. Un astérisque (*) signifie que le service est activé. Appuyez sur la touche [F1] pour afficher une brève description du service sélectionné.

Avertissement

Les changements apportés aux services gérés parxinetdau moyen dentsysvsont mis en oeuvre immédiatement. Pour tous les autres services, les changements ne sont pas mis en oeuvre immé-diatement. Vous devez arrêter et démarrer le service spécifique à l’aide de la commandeservice démon stop. Dans l’exemple précédent, remplacezdémonpar le nom du service que vous désirez arrêter ; par exemple,httpd. Remplacezstopparstartourestartpour démarrer ou redémarrer le service.

21.5.

chkconfig

La commandechkconfigpeut également être utilisée pour activer et désactiver les services. Si vous utilisez la commandechkconfig --list, une liste des services du système apparaîtra et indiquera si les services sont activés (on) ou arrêtés (off) aux niveaux d’exécution s’échelonnant entre 0 et 6.

À la fin de la liste figure une section pour les services gérés parxinetd.

Si vous utilisezchkconfig --listpour envoyer une requête à un service géré parxinetd, vous verrez si le servicexinetdest activé (on) ou désactivé (off). La commandechkconfig --list fingerpar exemple, renverra la sortie suivante :

finger on

L’exemple ci-dessus montre quefingerest activé comme un servicexinetd. Sixinetdest en cours d’exécution,fingerest activé.

Si vous utilisezchkconfig --listpour envoyer une requête à un service dans/etc/rc.d, vous verrez les paramètres du service pour chaque niveau d’exécution. La commandechkconfig --list httpdrenverra par exemple, la sortie suivante :

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

La commandechkconfigpeut également servir à configurer un service de façon à ce qu’il démarre (ou pas) dans un niveau d’exécution spécifique. Par exemple, pour désactivernscddans les niveaux d’exécution 3, 4 et 5, utilisez la commande suivante :

162 Chapitre 21. Contrôle de l’accès aux services chkconfig --level 345 nscd off

Avertissement

Les services gérés parxinetdsont immédiatement mis en oeuvre parchkconfig. Si par exemple, xinetdest en cours d’exécution,fingerest désactivé, la commandechkconfig finger onest exécutée,fingerest immédiatement activé et vous n’avez pas besoin de redémarrerxinetd ma-nuellement. Les modifications concernant les autres services ne prennent pas effet immédiatement après l’utilisation dechkconfig. Vous devez arrêter ou démarrer le service spécifique à l’aide de la commandeservice démon stop. Dans l’exemple précédent, remplacezdémonpar le nom du ser-vice que vous voulez arrêter, commehttpdpar exemple. Remplacezstopparstartourestart pour démarrer ou redémarrer le service.

21.6. Ressources supplémentaires

Pour obtenir plus d’informations, consultez les ressources énumérées ci-dessous.

21.6.1. Documentation installée

Les pages de manuel relatives àntsysv,chkconfig,xinetdetxinetd.conf.

man 5 hosts_access— La page de manuel pour le format des fichiers de contrôle de l’accès des hôtes (dans la section 5 des pages de manuel).

21.6.2. Sites Web utiles

http://www.xinetd.org — Page Web relative àxinetd. Elle contient une liste plus détaillée des fonctionnalités et des exemples de fichiers de configuration.

21.6.3. Livres sur le sujet

Guide de référence de Red Hat Enterprise Linux, Red Hat, Inc. — Ce manuel complémentaire contient des informations détaillées d’une part sur la manière dont les enveloppeurs TCP etxinetd autorisent ou refusent l’accès et d’autre part, sur la façon de configurer l’accès réseau en les utilisant.

Il fournit également des instructions sur la création de règles de pare-feuiptables.

Guide de sécurité de Red Hat Enterprise LinuxRed Hat, Inc. — Ce manuel examine la sécurisa-tion de services à l’aide d’enveloppeurs TCP et dexinetdcomme l’enregistrement de refus de connexion.

Chapitre 22.