Proxy transparent sous PFsense

Mise en place d'un proxy transparent sous PFsense (sans filtrage). Nous verrons dans un second temps, la mise en place d'un proxy avec authentification radius.

PFsense 2.2.2 Utilisation de SQUID

Installation des paquets nécessaire :

System - Packages - Available Packages

Rechercher et installer les paquets SARG et Squid

prox1

Configuration de Squid

Services - Proxy server

Proxy server : General settings

Proxy interface : Sélectionner la ou les interfaces qu'utilisera le proxy

Allow users on interface : Si c'est cocher, vous n'avez pas besoin de configurer Access Control, tout les sous réseau de l'interface sont autorisé

Transparent proxy :
Cocher cette option

Enable logging :
Cocher cette option

Log rotate :
Spécifier le nombre de jours avant de faire la rotation des logs

Proxy port : Spécifier le port d'écoute de votre proxy

Visible hostname : Renseigner le nom d'hote à afficher

Language : Spécifier votre langue (ici French)

Suppress Squid Version : Cocher cette option afin de masquer la version de Squid

prox2prox3

Proxy server : Traffic management

Vous pouvez spécifier des limites de Download, Upload, Bande passante alloué ...
prox4

Proxy server : Access control

Si vous n'avez pas cocher la case Allow users on interface dans l'onglet General, vous devez spécifier les réseaux autorisés à utiliser votre proxy de cette façon

prox 5

Test du proxy transparent :

Sur vos poste client, indiquer en passerelle votre par feu PFsense

Aller sur le site http://www.monip.org/

Vous devriez obtenir le résultat suivant :
prox6

 

PFsense 2.2.5 Utilisation de SQUID 3

Installation de SQUID 3

System - Packages - Available Packages

Rechercher et installer le paquet  Squid3

squid3-01

Configuration de Squid 3

Pour la réalisation de cette configuration, j'ai utilisé une pfsense 2.2.5 vierge sans règles de NAT ou firewall.

La configuration étant très proche de celle de SQUID, je ne détaillerai pas les différents choix

/!\ Il est nécessaire d'initialiser le CACHE avant de réaliser la configuration /!\

Service - Squid Proxy Server - Local Cache

Vous pouvez laisser par défaut et cliquer sur SAVE pour initialiser le cache. Une fois l'initialisation réalisée, cliquer sur General

Voici une configuration basique en proxy transparent

squid3-02 squid3-03 squid3-04 squid3-05 squid3-06

Test de la configuration via le site http://www.monip.org

squid3-07

/!\ Aucun règle de NAT/Firewall a été nécessaire /!\

Afin de pouvoir consulter les logs du proxy, il faut configurer SARG :

Configuration de Sarg sous PFsense

Pour mettre en place une authentification RADIUS, lisez l'article suivant :
Configuration d’un serveur RADIUS sous Windows Server 2012

9 commentaires sur “Proxy transparent sous PFsense

  1. Vincent Reply

    Au top, merci pour ce tuto ultra simple mais efficace !

  2. Laurent Reply

    Bonjour,

    Merci pour la mise à jour de votre article, j'avais un problème de dns il fallait que je forward mes dns !!!
    Par contre avec le proxy transparent ça marche bien en http mais en https il faut que j'active le https/ssl interception, mais ça m'oblige à installer un certificat sur les postes clients ça me pose des problèmes c'est un point wifi publique !!!

    Connaissez-vous une solution pour contourner ce type de problème ?

    Merci d'avance
    Laurent

    • AdminPasBete AuteurReply

      Sauf erreur de ma part, pour ne pas installer de certificat sur les postes client, il est nécessaire d'acheter un certificat émanant d'une autorité compétente (pour ne pas avoir d'erreur dans le navigateur).

      Second point, d'un point de vu législation, il me semble qu'il est nécessaire d'en informer vos utilisateurs via une charte informatique et de placer impérativement des exceptions sur certains sites de type "banque en ligne". Ce type de proxy exploite une attaque de type Man In The Middle et décrypte intégralement le trafique Internet (et donc les identifiants de vos utilisateurs).

      • Laurent Reply

        Merci pour votre retour !!!
        Je voulais les informer par le biais du portail captif !!!

        J'ai vu qu'on pouvait aussi utiliser le wpad mais visiblement il faut utiliser un serveur web à coté

        Vous avez déjà testé ?

        Merci Laurent

        • AdminPasBete AuteurReply

          Je n'ai jamais testé en utilisant WPAD (une idée pour un prochain article :)). Le serveur WEB permet juste la publication du fichier de configuration. Si vous travaillez en environnement virtualisé, une simple VM sous Linux DEBIAN & Apache par exemple fera amplement l'affaire.

          Parenthèse sur le sujet, il existe des solutions ayant beaucoup plus de fonctionnalités qu'une pfsense pour réaliser un proxy.
          Pour en cité quelques une : UTM Sophos - Artica

  3. Laurent Reply

    Bonsoir,

    J'utilises Pfsense 2.2.5 avec squid3, j'essaie de mettre en place le proxy transparent.
    J'ai suivi votre procédure mais quand j'ouvre mon navigateur j'ai "cette page ne peut pas s'afficher"
    Donc j'ai fait des recherches sur Google, j'ai vu qu'il fallait aussi faire une règle de nat, qui permet à l'ip du pc avec tout les ports d'être rediriger vers le port du proxy transparent (port 80).
    Mais ça ne marche toujours pas, une petite précision quand je configure à la main l'ip et le port dans mon navigateur ça marche très bien !!!
    Une piste pour m'aider ?

    Merci d'avance
    Laurent

    • AdminPasBete AuteurReply

      Je viens de mettre à jour l’article en montrant une configuration basique de SQUID3. Aucune règle NAT a été nécessaire pour la mise en place du proxy transparent. J’espère que cela vous aidera 🙂

  4. soria Reply

    Bonjour,
    Merci pour ce tuto, quand je coche la case Transparent proxy, quand je me connecte avec IE Chrome ou Firefox, quand je rentre les identifiants sur le portail captif, voici ce qui apparait:
    ERROR
    The requested URL could not be retrieved
    While trying to process the request:
    GET / HTTP/1.1
    Host: http://www.ch-millau.fr
    User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:42.0) Gecko/20100101 Firefox/42.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    The following error was encountered:
    Invalid Request
    Some aspect of the HTTP Request is invalid. Possible problems:
    Missing or unknown request method
    Missing URL
    Missing HTTP Identifier (HTTP/1.0)
    Request is too large
    Content-Length missing for POST or PUT requests
    Illegal character in hostname; underscores are not allowed
    Your cache administrator is webmaster.
    Generated Thu, 19 Nov 2015 07:59:34 GMT by pfSense.localdomain (squid/2.7.STABLE9)

    Merci de pouvoir m'aider, je suis actuellement en stage et c'est pour mon rapport.
    Cordialement.

    • AdminPasBete AuteurReply

      Pouvez vous décrire ce que vous désirez faire plus précisément ainsi que l'infrastructure mise en place ? le portail captif est mis en place sur la pfsense ?

      Je viens de réaliser un test rapide :
      Installation d'une pfsense
      Installation de SQUID
      Configuration de SQUID en transparent (comme sur le tuto)
      Configuration du portail captif avec authentification local
      Le seul problème rencontré -> Si la page de démarrage est en HTTPS, le portail captif ne fonctionne pas

      A part ce détail, l'authentification fonctionne ainsi que le proxy transparent

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *