# Administration réseau sous Linux/TCP Wrapper

* Configuration réseau
* NFS
* Samba
* Apache
* ProFTPD
* DHCP
* Netfilter
* TCP Wrapper
* Tcpdump
* SSH
* Routage
* TP VDN
* TP Configuration réseau
* TP NFS
* TP Samba
* TP Apache
* TP FTP
* TP TCP Wrapper
* TP Tcpdump
* TP SSH
* TP DHCP
* TP Global
* TP Netfilter
* TP Licence - Configuration réseau
* TP Licence - Deux sites web derrière un firewall
* TP Licence - Serveur intranet
* Configuration réseau
* NFS
* Samba
* Apache
* ProFTPD
* DHCP
* Netfilter
* TCP Wrapper
* Tcpdump
* SSH
* Routage
* TP VDN
* TP Configuration réseau
* TP NFS
* TP Samba
* TP Apache
* TP FTP
* TP TCP Wrapper
* TP Tcpdump
* TP SSH
* TP DHCP
* TP Global
* TP Netfilter
* TP Licence - Configuration réseau
* TP Licence - Deux sites web derrière un firewall
* TP Licence - Serveur intranet
[ Modifier le sommaire ]
Le super service inetd permet de contrôler et de restreindre l'accès à certains services réseau. Ceux-ci sont gérés par inetd et ne sont plus en mode dit "standalone".
Inetd utilise le démon tcpd qui intercepte les demandes de connexion à un service et vérifie par le biais des fichiers hosts.allow et hosts.deny si le client est autorisé à utiliser ce service. Sur les versions de linux actuelles, il est installé par défaut. Par contre il n'est pas actif dans sa partie contrôle d'accès.
Inetd est un élément à mettre en œuvre pour sécuriser une machine sous linux, il ne peut toutefois pas remplacer complétement un vrai firewall.

## Le principe

Lorsque vous souhaitez vous connecter sur une machine distante avec la commande telnet par exemple, le démon inetd intercepte votre demande de connexion et vérifie dans le fichier inetd.conf si le service telnet est utilisable. Si la réponse est positive, votre demande est passée à tcpd qui vérifie dans les fichiers hosts.allow et hosts.deny si vous avez le droit de vous connecter en telnet, si cela est le cas votre demande de connexion sera autorisée, sinon vous serez rejeté. Dans tous les cas de figure et cela est l'autre fonction de TCP_wrappers, tcpd transmettra à syslogd (démon de log) votre demande (cette demande se retrouvera dans les logs, fichier /var/log/securite).

## L'installation

Par défaut il est installé avec la plupart des distributions, mais au cas où, le paquet à installer est : tcp_wrappers-x.....rpm. TCP_wrappers utilise les fichiers suivants : tcpd, inetd, inetd.conf, hosts.allow, hosts.deny, tcpdchk, tcpdmatch.

## Configuration : le fichier inetd.conf

Ce fichier se trouve dans le répertoire /etc. Vous pouvez activer ou désactiver ici des services, en plaçant un # devant la ligne ou en l'enlevant, puis en obligeant la relecture du fichier avec la commande killall -HUP inetd. Il est possible d'ajouter d'autres services dans ce fichier.
En voici un commenté:
Le # devant une ligne rend la ligne inactive, donc le service non disponible. Si vous ne devez pas utiliser un service, rendez le inactif.
Voici un descriptif de quelques options. Considérons la ligne suivante:
* ftp: nom du service, tel qu'il est déclaré dans /etc/services
* stream: type de service de transport de données (il existe stream pour tcp, dgram pour udp, raw pour IP)
* tcp: nom du protocole tel qu'il existe dans /etc/protocols
* wait: état d'attente, si l'état est wait inetd doit attendre que le serveur ait restitué la socket avant de se remettre à l'écoute. On utilise wait plutôt avec les types dgram et raw. l'autre possibilité est nowait qui permet d'allouer dynamiquement des sockets à utiliser avec le type stream.
* root: Nom de l'utilisateur sous lequel le daemon tourne
* /usr/sbin/tcpd in.ftpd Chemin d'accès au programme in.ftpd lancé par inetd (il est possible ici d'ajouter les options de démarrage du programme.

## Hosts.allow et Hosts.deny

Vous trouverez ces deux fichiers dans le répertoire /etc.
Le premier fichier lu est hosts.allow , puis hosts.deny. Si une requête est autorisée dans le fichier hosts.allow alors elle est acceptée, quel que soit le contenu du fichier hosts.deny. Si une requête ne satisfait aucune règle, que ce soit dans hosts.allow ou hosts.deny alors elle est autorisée. En un mot si vous ne mettez rien dans hosts.deny, alors vous n'avez rien fait.
Voici un petit exemple qui dans des cas simples est suffisant :
fichier hosts.allow
On autorise tous les ports depuis un accès local, et on autorise ftp pour les machines venant du réseau 192.168.0.0, ainsi que les machines du réseau 10.194.168.0 avec une autre notation et enfin la seule machine qui a pour adresse 192.168.1.1
fichier hosts.deny
Le fichier hosts.deny est simple à comprendre, il interdit tout par défaut. Le fichier hosts.allow indique les services que je veux autoriser (Le nom du service doit être identique au nom qui se trouve dans inetd.conf). la syntaxe est la suivante :
Cette syntaxe est identique dans les deux fichiers, hosts.allow et hosts.deny.

## Les utilitaires de tcp wrappers

* tcpdchk -av : permet de voir la configuration de tcp wrappers
* tcpdmatch in.ftpd localhost pour simuler une connexion sur in.ftpd
voir aussi xinetd un équivalent de tcp_wrappers, mais avec plus d'options.