next up previous contents
suivant: TCP wrapper version 7.6 monter: Affiner la configuration de précédent: Le fichier /etc/networks   Table des matières

TCP wrapper

Il existe un système de sécurité nommé tcp wrapper. Ce système permet de spécifier quelles machines de notre réseau ou d'ailleurs sont autorisées à utiliser les services locaux de notre machine, lancés par le serveur /usr/sbin/tcpd.

Tous les démons en attente (comme telnet, ftp, ...) sont appelés par inetd4, un super démon qui écoute sur tous les ports au lieu de centaine de démons écoutant une un seul port. Le fichier /etc/inetd.conf dit ce qu'il faut faire lorsqu'une demande de connexion intervient sur un port particulier, par exemple pour le port de telnet :

telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

La commande exécutée sera /usr/sbin/tcpd, le TCP wrapper, qui effectura des vérifications de sécurité avant d'appeller in.telnetd proprement dit.

La commande pstree permet de voir comment cela se passe pour une session telnet :

# telnet localhost
Trying ::1...
telnet: connect to address ::1: Connexion refusée
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Welcome to SuSE Linux 7.0 (i386) - Kernel 2.2.16 (4).

tarsier login: mdecore
Password:
You have old mail in /var/spool/mail/mdecore.
Last login: Sun Mar 10 07:18:32 from console

Bienvenue sur Tarsier !

Pour des raisons évidentes de sécurités, les ports ftp, rsh, pop, telnet, ssh,
smtp et irc ont été coupés. Merci de votre compréhension.

Pour toute remarques, suggestions veuillez écrire un mail (si vous le pouvez)
à l'administrateur système à <admin@tarsier.chez.moi>

                                                L'administrateur système.
Last login time was mar 10 07:31.
$ pstree
init-+-atd
[...]
     |-inetd---in.telnetd---login---bash---pstree
[...]
$

On voit que inetd a lancé in.telnetd, qui lui même a lancé login qui a lancé un shell bash qui a appellé pstree.

Jusqu'à la version 7.6, TCP wrapper consulte deux fichiers, /etc/hosts.allow (hôtes autorisés) puis /etc/hosts.deny (hôtes interdits), et la recherche d'un hote s'arrete à la première occurence trouvée. Un accès accordé par /etc/hosts.allow ne peut être remis en cause par /etc/hosts.deny. Depuis la version 7.6, TCP wrapper ne consulte qu'un fichiers /etc/hosts.allow, qui regroupe les hôtes autorisés et interdits.

Pour savoir si le fichier /etc/hosts.deny est utilisé, essayer la commande suivante :

$ strings /usr/sbin/tcpd | grep deny
/etc/hosts.deny
deny
$

Si on voit apparaître la ligne deny, ce que ce mot-cléf sera utilisé par tcpd via le fichier /etc/hosts.allow, donc on a une version $ > 7.6$ .



Sous-sections
next up previous contents
suivant: TCP wrapper version 7.6 monter: Affiner la configuration de précédent: Le fichier /etc/networks   Table des matières
2004-07-17