Topologie

Ce dont nous disposons

Voici l'architecture sur laquelle nous allons monter ce système :

Nous disposons d'un ou de plusieurs postes de travail, qui accèdent à l'internet via un routeur NAT, faisant également office de pare-feu.

La solution triviale serait d'installer notre proxy POP3 sur le routeur lui-même, mais ce n'est pas forcément une bonne solution, d'abord parce que nous verrons que Clamav consomme énormément de ressources, ensuite parce que ce routeur peut très bien être une “boite noire” spécialisée, sur laquelle nous ne pouvons rien installer.

La solution qui reste est donc d'ajouter sur notre réseau local une machine dédiée au serveur mandataire et à l'antivirus. Nous trouverons bien un moyen d'y envoyer les flux POP3 à destination d'hôtes de l'internet.

Cette architecture pourrait suffire, nous allons cependant faire plus riche en ajoutant encore une nouvelle machine :

La passerelle « miroir » va être configurée comme un routeur, mais avec une seule patte. En gros, tout flux sortant du ou des postes de travail vers l'internet sera dirigé dessus, à charge pour ce miroir de re-diriger les flux :

  • directement sur le routeur NAT en temps normal,
  • sur le proxy P3scan pour les flux POP3.

Les chemins empruntés par les flux seront quelque chose de ce genre :

en temps normal pour les flux POP3

Rappelons qu'un serveur mandataire joue en quelque sorte le rôle d'une passerelle, mais au niveau de l'application et non au niveau IP. Le fait qu'il soit transparent va faire que :

  • le client du LAN va croire qu'il s'adresse directement au serveur cible (pop.free.fr par exemple),
  • les requêtes POP3 sont interceptées par le proxy, celui-ci les retransmettant pour son propre compte au vrai serveur POP3.
  • les réponses du vrai serveur POP3 arrivent donc tout naturellement sur le proxy,
  • celui-ci effectue le filtrage antivirus sur les messages entrants,
  • les retransmet au client du LAN comme s'ils arrivaient directement du vrai serveur POP3, si et seulement s'il n'y a pas eu de virus reconnu dans le message. Sinon, le proxy enverra au client un message d'alerte à la place du message original, qui sera gardé en quarantaine sur le serveur ou purement et simplement détruit.

Le client, en temps normal n'y verra que du feu, n'aura pas besoin de la moindre modification dans sa configuration. Tout se fait dans son dos.

L'intérêt d'ajouter cette passerelle intermédiaire a un double avantage :

  • ça permet de mieux comprendre comment le système fonctionne,
  • ça permettra d'ajouter facilement d'autres serveurs mandataires pour d'autres protocoles comme FTP ou HTTP ou même de permettre une répartition de la charge sur plusieurs serveurs, si le trafic est très important.

Pratiquement, nous verrons, lorsque nous aurons bien compris le mécanisme, que la fonction de routage intermédiaire dévolue à cette machine peut être reportée sur le mandataire POP3 lui-même, si l'on veut faire plus simple.

Dans la suite de cet exposé, la passerelle miroir et le proxy POP3 sont des machines Linux. Le routeur NAT aussi, mais ça n'a aucune importance dans la suite. Le ou les postes de travail peuvent être n'importe quoi, pourvu que ces n'importe quoi sachent exploiter un réseau TCP/IP.

Le routeur NAT, qui permet « in fine » d'atteindre l'internet sera vu comme un simple routeur, nous ne nous occuperons pas le moins du monde de sa configuration qui est supposée être déjà opérationnelle. Si vous voulez plus de détails sur la façon de réaliser un tel routeur, reportez-vous aux chapitres :

  • Partage de connexion pour le principe du NAT,
  • Netfilter et IPtables pour approfondir les règles de filtrage de paquets,
  • La sécurité pour mieux comprendre ce que l'on risque à se connecter à l'internet.

La distribution utilisée est une Debian Sarge (avec un noyau 2.6.8), encore en statut testing à l'heure où ces lignes sont écrites, mais qui finira bien un jour pas être déclarée « stable » à la place de la Woody vieillissante.