Chapter 15. Les enveloppeurs TCP et xinetd

Le contrôle de l'accès aux services du réseau est l'une des tâches de sécurité les plus importantes à laquelle un administrateur de serveur doit faire face. Heureusement, sous Red Hat Linux il existe un certain nombre d'outils conçus pour cette tâche. Par exemple, le pare-feu basé sur iptables filtre les paquets réseau indésirables à partir de la pile réseau du noyau. Pour les services de réseau qui l'utilisent, des enveloppeurs TCP ajoutent une couche de protection supplémentaire en déterminant les hôtes autorisés ou non à se connecter à des services de réseau "enveloppés". Parmi ces services de réseau enveloppés figure le super-serveur xinetd. Ce service est baptisé super-serveur parce qu'il contrôle les connexions à un sous-réseau de services et raffine encore plus, le contrôle de l'accès.

La Figure 15-1 est une illustration élémentaire de la manière dont ces outils fonctionnent de concert pour protéger des services de réseau.

Figure 15-1. Contrôle de l'accès aux services de réseau

Ce chapitre examine d'une part, le rôle des enveloppeurs TCP et de xinetd dans le processus de contrôle de l'accès aux services du réseau et, d'autre part, analyse la manière dont ces outils peuvent être utilisés afin d'améliorer aussi bien la gestion des connexions que celle de l'utilisation du système. Pour des informations sur la création de pare-feu avec iptables, reportez-vous au Chapter 16 iptables.

15.1. Les enveloppeurs TCP

Le paquetage des enveloppeurs TCP (tcp_wrappers) est installé par défaut sous Red Hat Linux et fournit un contrôle de l'accès aux services du réseau, basé sur l'hôte. La bibliothèque /usr/lib/libwrap.a représente l'élément le plus important du paquetage. D'une manière générale, un service enveloppé avec TCP est un service qui a été compilé avec la bibliothèque libwrap.a.

Lorsqu'une tentative de connexion à un service enveloppé avec TCP est effectuée, le service cherche d'abord les fichiers d'accès des hôtes (hosts access) (/etc/hosts.allow et /etc/hosts.deny) afin de déterminer si l'hôte client est autorisé ou non à se connecter. Il utilise ensuite le démon syslog (syslogd) pour écrire le nom de l'hôte envoyant la requête et le nom du service demandé dans /var/log/secure ou /var/log/messages.

Si un hôte client a la permission de se connecter, les enveloppeurs TCP cèdent le contrôle de la connexion au service demandé et n'interfèrent plus entre l'hôte client et le serveur dans le processus de communication .

Outre le contrôle d'accès et la connexion, les enveloppeurs TCP peuvent activer des commandes afin d'interagir avec le client avant de de refuser ou de céder le contrôle de la connexion au service de réseau demandé.

Étant donne que les enveloppeurs TCP représentent une précieuse adjonction à la panoplie des outils de sécurité de tout administrateur de serveur, la plupart des services de réseau sous Red Hat Linux sont étroitement liés à la bibliothèque libwrap.a. Parmi ces applications figurent /usr/sbin/sshd, /usr/sbin/sendmail et /usr/sbin/xinetd.

NoteRemarque
 

Afin de déterminer si un binaire de service de réseau est lié à libwrap.a, tapez la commande suivante en étant connecté en tant que super-utilisateur (ou root):

strings -f <nom-binaire> | grep hosts_access

en remplaçant bien <nom-binaire> par le nom du binaire du service de réseau.

15.1.1. Avantages des enveloppeurs TCP

Les enveloppeurs TCP offrent deux avantages de base par rapport à d'autres techniques de contrôle de services de réseau:

  • La transparence des opérations aussi bien pour l'hôte client que pour le service de réseau enveloppé. — Ni le client établissant la connexion, ni le service de réseau enveloppé ne remarqueront que des enveloppeurs TCP sont utilisés. Les utilisateurs légitimes sont connecté et branchés au service demandé alors que les connexions provenant de clients non-authorisés sont refusées.

  • Une gestion centrale de protocoles multiples. — étant donné que les enveloppeurs TCP fonctionnent indépendemment des services de réseau qu'ils protègent, ils permettent à de nombreuses applications serveurs de partager un jeu de fichiers de configuration commun offrant ainsi une gestion simplifiée.