Ce document se veut être une introduction à Portsentry et à TCPWrapper


Portsentry & TCP wrapper




TCP Wrapper


C'est un utilitaire qui permet en fonction des demandes de services qu'il reçoit soit de les autoriser soit de refuser.

On peut par exemple offfir le service ftp que à certaines adresses IP seulement et ne pas l'offrir à d'autres.

Il existe plusieurs manières de configurer TCPwrappers. L'une d'elle est de refuser à tout le monde en spécifiant ALL: ALL dans le fichier /etc/hosts.deny et ouvrir les services au compte goutte aux personnes autorisées dans le fichier /etc/hosts.allow

Si maintenant l'ip 192.168.1.101 essaie de se connecter sur le serveur ftp sans que son adresse ip ait été spécifiée dans /etc/hosts.allow, laors

vinci:~# ftp 192.168.1.1
Connected to 192.168.1.1.
421 Service not available, remote server has closed connection



Si dans /etc/hosts.all on autorise 192.168.1.101 à utiliser le service ftp, alors il suffit d'ajouter dans /etc/hosts.allow:

## Le service ftp limité au localhost et à 192.168.1.101
wu-ftpd: localhost 192.168.1.101


Ensuite un ftp 192.168.1.1 donne ceci



Connecté à 192.168.1.101
220 ProFTPD 1.2.0pre10 Server (Debian)
Utilisateur (192.168.1.101:(none)) :


Attention : TCPWrapper ne saurait n'est qu'être une rempart en plus dans la défense contre les envahisseurs!



Mais que fait portsentry ????

L'idéé : un IDS (très) actif !

    Portsentry est un logiciel libre qui permet de détecter des scans de port qu'ils soient furtifs ou non Sa force de réaction est basée sur l'algorithme suivant :
  1. Si détecte un scan que la règle de configuration /etc/portsentry/portsentry.conf a défini alors étape 2
  2. 3 Types de réactions (immédiates)

    1. Soit il ajoute dans /etc/hosts.deny l'adresse IP du scanner et lui interdit tous les services

      ALL: $TARGET : DENY

      $TARGET représente l'adresse IP de l'attaquant

    2. Soit il ajoute une règle dans le firewall iptables

      debian:~# iptables -I INPUT -s $TARGET -j DENY

    3. Soit il lui ajoute une route
      Cette route est en fait une route de rejet !

      debian:~# route add -host $TARGET reject



      Table de routage IP du noyau
      Destination Passerelle Genmask Indic Metric Ref Use Iface
      192.168.1.101 - 255.255.255.255 !H 0 - 0-
      212.198.129.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
      192.168.1.0 0.0.0.0255.255.255.0 U 0 0 0 eth0
      0.0.0.0 gw 0.0.0.0 UG 0 0 0 eth1

La première ligne nous indique bien que pour aller vers le host $TARGET, c'est impossible ! :)





Nota :Ce document a été écrit avec emacs21