TCP Wrapper

 

Installation et configuration de TCP Wrapper

auteur : Stéphane TRAUMAT
site     : www.amenti.org
date    : 14 mai 2000


But et principe.

TCP Wrapper permet deux choses :

·  Enregistrer les requêtes de services.

·  Filtrer l'accès à ces services.

Voici en quelques mots le principe :
Toutes les applications "TCP/IP" (comme telnet, ftp..) sont en client/serveur. Généralement, sur les systèmes UNIX, on a un daemon qui attend les connexions entrantes. Lorsqu'une connexion s'établie, ce deamon éxecute le programme "serveur" correspondant et recommence à attendre une connexion.

Ce que fait TCP wrapper est simple, au lieu de lancer directement le deamon correspondant, il éffectue quelques vérifications et enregistre certaines données dans les fichiers logs.

Où télécharger TCP Wrapper ?

Le meilleur endroit pour télécharger TCP Wrapper est : http://csrc.nist.gov/tools/tools.htm

Installation

Une fois que vous aurez obtenu le fichier tar qui contient le code source et le makefile, compilez le démon TCPD . Puis placer le dans le même répertoire que les autres démons réseau.

Configuration

La configuration est relativement simple.
Editez le fichier /etc/inetd.conf et remplacez le chemin d'accès de chacun des démons de service réseau devant être sous contrôle par le chemin de TCPD. Par exemple, pour le démon finger, on a :

finger stream tcp nowait nobody /etc/in.fingerd in.fingerd

le 6 ème champs contient le chemin vers le démon finger, pour gérer ce service, il suffira de remplacer /etc/in.fingerd par /etc/tcpd comme cela :

finger stream tcp nowait nobody /etc/tcpd in.fingerd

Bon, je crois qu'il est grand temps que je vous dise comment ça va se passer.
Désormais, lorsque le démon Inetd reçoit une requête pour fingerd, il démarre TCPD à la place. TCPD enregistre alors la requête dans les logs, vérifie si le client est autorisé à utiliser le service et si oui, il démarre le démon finger pour répondre à la requête.

Vous pouvez de la même façon mettre sous contrôle tous les services lancés par inetd.

Les logs

TCP wrapper envoie toutes les informations au démon syslogd (fichier de config de syslogd : /etc/syslogd.conf). Généralement, le log de syslogd se trouve dans le répertoire /var/log/syslog.

Contrôle d'accès

Comme je vous l'ai déja signalé, TCPD permet non seulement d'enregistrer les requêtes mais aussi d'autoriser/interdire l'accès à certains services.
Pour déterminer les droits d'accès aux services, TCPD utilise deux fichiers de configuration :
/etc/hosts.allow qui contient la liste des hôtes autorisés à accéder aux services et /etc/hosts.deny qui est la liste des machines qui n'ont pas accès aux services.
Si les deux fichiers existent, TCPD explore le contenu du fichier /etc/hosts.allow puis le fichier /etc/hosts.deny jusqu'à ce qu'il trouve une règle qui s'applique au client et au service demandé. Un accès accordé par /etc/hosts.allow ne peut être remis en cause par /etc/hosts.deny.

Le format d'une ligne pour les fichiers de configuration est le suivant :

listeServices: listeMachines

listeServices est une liste de services réseau, séparés par des virgules. Ce sont des services auxquels l'accès est accordé ou refusé.
Chaque services est identifié par le nom du processus situé dans le septième champs d'une ligne de /etc/inetd.conf.

listeMachines est une liste de noms de domaines, de machines ou d'adresses IP séparée par des virgules.
Chaque système apparaissant dans cette liste à un accès autorisé ou réfusé aux services spécifiés dans listeServices.

Voici un exemple qui autorise toutes les machines du réseau Amenti.org à accédé aux services Ftp :

ftpd : .amenti.org

Deux mots clés éxistent pour ces fichiers : ALL qui signifie tout (il peut être utilisé dans listeServices ou listeMachines) et LOCAL (qui peut être utilisé seulement dans listeMachines) qui correspond à la machine locale.

Machine utilisée pour cette documentation

Machine : P166, 32 Mo de RAM
Système : Linux (debian)

Conclusion

C'est facile, TCP Wrapper est un daemon qu'il faut absolument installer sur son système :)
Même si vous ne souhaitez pas limiter l'accès aux services, il sera très utile pour enregistrer l'activité de votre serveur et détecter les intrusions.
Si vous avez des remarques, des questions, des demandes n'hésitez pas à m'écrire. Et si vous avez le temps, allez sur www.amenti.org pour d'autres documentations et des liens.
En ésperant vous avoir aidé, à plus !

Stéphane