5.  tcp_wrapper

tcp_wrapper est une bibliothèque qui peut vous aider à protéger vos services contre les usages abusifs.

5.1.  Les capacités de filtrage

Vous pouvez utiliser tcp_wrapper pour

  • Le filtrage à partir des adresses source (IPv4 ou IPv6)

  • Le filtrage des utilisateurs (réclame un démon ident en état de fonctionnement sur le client)

5.2.  Les programmes utilisant tcp_wrapper

Les suivants sont connus:

  • Chaque service appelé par xinetd (si xinetd est compilé en utilisant la bibliothèque tcp_wrapper)

  • sshd (si compilé en utilisant tcp_wrapper)

5.3.  Utilisation

tcp_wrapper est contrôlé par deux fichiers nommés /etc/hosts.allow et /etc/hosts.deny. Pour plus d'information voir

$ man hosts.allow

   

5.3.1.  Exemple de fichier /etc/hosts.allow

Dans ce fichier, chaque service qui doit être positivement filtré (i.e., dont les connexions doivent être acceptées) a besoin d'une ligne.

sshd:           1.2.3. [3ffe:ffff:100:200::]/64
daytime-stream: 1.2.3. [3ffe:ffff:100:200::]/64

    

Note: ils existent des implémentations cassées qui utilisent la mauvaise description réseau IPv6 suivante: [3ffe:ffff:100:200::/64].

Heureusement, de telles versions seront rapidement corrigées.

5.3.2.  Exemple de fichier /etc/hosts.deny

Ce fichier contient toutes les entrées de filtre négative et devrait dénier l'accès à tout le reste en utilisant

ALL: ALL

    

Si ce noeud est très sensible, vous pouvez remplacer la ligne stantard ci-dessus par celle-ci, mais cela peut être cause d'attaque DoS (charge de serveur de courrier et répertoire spool), si trop de connexions sont réalisées en un temps très bref. Peut-être un observateur de journaux (a logwatch) serait-il meilleur dans de tels cas.

ALL: ALL: spawn (echo "Attempt from %h %a to %d at `date`" 
 | tee -a /var/log/tcp.deny.log | mail root@localhost)

    

5.4.  La journalisation

Selon l'entrée du fichier de configuration du démon syslog /etc/syslog.conf, la journalisation de tcp_wrapper se fait normalement dans /var/log/secure.

5.4.1.  Connexion refusée

Une connexion refusée via IPv4 au service daytime, couvert par xinetd, produit des lignes telles que celles de l'exemple suivant

Jan 2 20:40:44 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap
¬ from=::ffff:1.2.3.4
Jan 2 20:32:06 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap 
 from=3ffe:ffff:100:200::212:34ff:fe12:3456

    

Une connexion refusée via IPv4 à sshd en double écoute produit des lignes telles que celles de l'exemple suivant

Jan 2 20:24:17 gate sshd[12345]: refused connect from ::ffff:1.2.3.4
¬ (::ffff:1.2.3.4)
Jan 2 20:39:33 gate sshd[12345]: refused connect 
 from 3ffe:ffff:100:200::212:34ff:fe12:3456
¬ (3ffe:ffff:100:200::212:34ff:fe12:3456)

    

5.4.2.  Connexion autorisée

Une connexion autorisée via IPv4 vers le service daytime, couvert par xinetd, produit des lignes telles que celles de l'exemple suivant

Jan 2 20:37:50 gate xinetd-ipv6[12346]: START: daytime-stream pid=0
¬ from=::ffff:1.2.3.4 
Jan 2 20:37:56 gate xinetd-ipv6[12346]: START: daytime-stream pid=0 
 from=3ffe:ffff:100:200::212:34ff:fe12:3456

    

Une connexion autorisée via IPv4 vers sshd en double écoute produit des lignes telles que celles de l'exemple suivant

Jan 2 20:43:10 gate sshd[21975]: Accepted password for user from ::ffff:1.2.3.4
¬ port 33381 ssh2
Jan 2 20:42:19 gate sshd[12345]: Accepted password for user 
 from 3ffe:ffff:100:200::212:34ff:fe12:3456 port 33380 ssh2

    

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:36