Proxy squid transparent + pfsense



  • Bonjour,

    Je suis entrain de tester pfsense, et j'aurai aimé créer un proxy transparent à part (sur une autre machine que pfsense, car il n'est pas conseiller d'utiliser SQUID sur pfsense si il y a beaucoup de postes clients).

    voila mon architecture de test:

    FREEBOX  (GW 192.168.1.254)
          |
          | WAN IP 192.168.1.1
    PFSENSE
          | LAN IP 10.0.0.200
          |
      –--------------------
      |                        |
    PC1              Proxy Squid
    10.0.0.1        10.0.0.100

    Comment je peux faire pour que toutes les trames du PC1 passant par le port 80 soient rediriger sur le proxy Squid, ensuite le proxy squid demande la page internet et la renvoi au PC1?

    J'ai fait une regle (NAT:IP Forward) pour rediriger toutes les trames du PC1 passant par le port 80 sur le proxy Squid via le port 3128, mais le probleme c'est que le proxy squid repond directement au PC1 (vu par wireshark) au lieu de demander la page internet puis la renvoyer au PC1.

    Je ne vois pas comment je peux faire pour utiliser le proxy Squid en transparent ? si qq1 peut m'aider ? je ne sais pas si j'ai été clair ^^

    --
    N3j1



  • Le placement de Squid en dmz est hautement préférable en terme de sécurité. Au passage cela réglerai votre problème facilement.

    Le comportement de la machine Squid est parfaitement normal pour le retour des paquets puisque la source et la destination sont sur le même sous réseau il n'y a pas de raison d'employer la passerelle par défaut.



  • OK merci de ta réponse … je vais donc me renseigner plus comment faire une DMZ, et comment y placer mon proxy squid de maniere sécurisé.

    --
    N3j1



  • Il suffit d'ajouter une carte réseau à la machine Pfsense, ensuite on ajoute les règles voulues (filtrage, et, ou nat).



  • re,

    Voila j'ai rajouté une carte réseau sur mon pfsense. j'ai ajouter l'interface DMZ en 192.168.2.1 et j'ai placer mon proxy squid en 192.168.2.2

    Dans un premier temps j'ai autorisé l'accés du LAN vers la DMZ et j'ai interdi l'inverse (de la DMZ vers le LAN).

    Maintenant je vois pas bien comment faire pour que toutes les trames du PC1 via le port 80, passe par le proxy de la DMZ? et puisse revenir sur le PC1?



  • Maintenant je vois pas bien comment faire pour que toutes les trames du PC1 via le port 80, passe par le proxy de la DMZ? et puisse revenir sur le PC1?

    En lisant la documentation sur le site squid-cahe.org !



  • Dsl de vous embêter encore un peu … je suis donc allé me renseigner comment faire un proxy transparent et qu'elles règles du firewall fallé mettre en place.

    Cependant je n'y arrive toujours pas.

    Pour l'instant je configure mon navigateur en mettant l'adresse proxy 192.168.2.2 : 3128.

    Puis j'ai les règles de firewall suivante :

    pour le LAN:
    Proto    Source      Port            Destination          Port        Gateway    Schedule    Description
    ----------------------------------------------------------------------------------------------   
    PASS    LAN net        *              192.168.2.2          3128            *              *              *
            (10.0.0.0/24)              (IP Proxy dans la DMZ)

    pour la DMZ:
    Proto  Source          Port  Destination  Port            Gateway    Schedule    Description
    ----------------------------------------------------------------------------------------------   
    UDP  DMZ net        *     DNS_IP      53 (DNS)  *        *          Autoriser UDP 53 (DNS) 
    TCP  192.168.2.2  *      *      80 (HTTP)  *        *          Autoriser TCP 80 (HTTP) 
    TCP  192.168.2.2  *      *      443 (HTTPS)  *        *          Autoriser TCP 443 (HTTPS) 
    TCP  192.168.2.2  3128  LAN net      *          *        *          Autoriser DMZ To LAN via 3128

    Pour WAN:
    Rien changer

    Pour le NAT:
    rien changer -> NAT outbound auto

    J'ai donc bien internet dans mon LAN via le proxy, mais je me demande si c'est règles sont bien sécure?

    De plus j'aimerai donc ne pas avoir à configurer mon navigateur pour passer par le proxy, il faut donc que je fasse une regles du style:
    iptables -t nat -A PREROUTING -s 10.0.0.0/255.255.255.0
                        -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.2:3128

    Mais je ne comprend pas bien comment faire cette règles dans PFsense, est ce que vous pouvez m'aider?



  • Rapidement, j'ai peu de temps.
    Sur DMZ :

    TCP      192.168.2.2  3128  LAN net      *              *              *          Autoriser DMZ To LAN via 3128

    Cette règle ne sert à rien. Pfsense est stateful. l'état des connexions en cours est suivi. Un paquet retour est toujours autorisé.

    De plus j'aimerai donc ne pas avoir à configurer mon navigateur pour passer par le proxy, il faut donc que je fasse une regles du style:
    iptables -t nat -A PREROUTING -s 10.0.0.0/255.255.255.0
                        -p tcp -m tcp –dport 80 -j DNAT --to-destination 192.168.2.2:3128

    Iptable c'est Linux. Pfsense c'est BSD donc pf.

    Pouvez vous poster la règle de NAT active actuellement ?



  • d'abord merci de prendre un peu de temps pour moi.

    Donc premierement, j'ai essayé de supprimer la regle de filtrage sur la DMZ, mais cela ne marche plus.
    Je regarde avec wireshark et la trame de 192.168.2.2 vers 10.0.0.1 n'est pas afficher, elle est donc surement bloqué.
    Si je rétabli la regle, la trame 192.168.2.2 vers 10.0.0.1 est visible et j'ai accés à internet.

    Je ne sais pas pourquoi les paquets retour sont pas autorisés si je ne met pas la regle sur la DMZ ? une idée ?

    Au niveau du NAT, je n'ai mis aucune regles dans port forward et 1.1, et j'ai laissé en "Automatic outbound NAT rule generation (IPsec passthrough)" dans outbound.



  • Re,

    Alors voila ma dernière config:

    Pour la DMZ
    Proto  Source          Port  Destination  Port            Gateway    Schedule    Description
    –-------------------------------------------------------------------------------------------- 
    UDP      DMZ net        *        DNS_IP      53 (DNS)      *              *          Autoriser UDP 53 (DNS)
    TCP      192.168.2.2  *          *          80 (HTTP)      *              *          Autoriser TCP 80 (HTTP)
    TCP      192.168.2.2  *          *          443 (HTTPS)  *              *          Autoriser TCP 443 (HTTPS)

    (ccnet avait raison la regle suivante était inutile :
    TCP      192.168.2.2  3128  LAN net      *              *              *          Autoriser DMZ To LAN via 3128 )

    pour le LAN:
    Proto    Source      Port            Destination          Port        Gateway    Schedule    Description
    –-------------------------------------------------------------------------------------------- 
    UDP      DMZ net        *        DNS_IP      53 (DNS)      *              *          Autoriser UDP 53 (DNS)
    PASS    LAN net        *              192.168.2.2          3128            *              *              *
            (10.0.0.0/24)              (IP Proxy dans la DMZ)

    Pour WAN:
    Rien changer

    Pour NAT:
    port forward :
    If  Proto   Ext. port range  NAT IP  Int. port range  Description 
    –--------------------------------------------------------------------------------------------
    LAN TCP     80 (HTTP)     192.168.2.2 3128          NAT LAN (80) To Proxy (3128) 
                                                  (ext.: any)

    1.1 :
    rien changer

    outbound :
    Automatic outbound NAT rule generation (IPsec passthrough)

    Voila avec cette config j'arrive bien à accéder au net via mon proxy transparent, si ca peut aider d'autres personnes ^^
    Bon pour l'instant je ne peux pas accéder a des pages https, mais je travail pour résoudre ce problème, d'ailleurs si vous avez une idée ca m'intéresse ?

    Si jamais vous avez le temps ccnet et les autres est ce que vous pourriez me dire si vous voyez des failles de sécurités ou si vous auriez fait autrement ? au niveau de certaines regles ?

    Merci en tout cas pour le coup de main…

    --
    N3j1


Log in to reply