Http bloquée par le proxy



  • Je suis en train d'essayer de mettre en place un hotspot public ouvert dans un espace d'exposition. Firewall et Proxy sont sur la même machine parce qu'il y aura peu de connectés en même temps. En plus c'est un réseau uniquement dédié à ça. Le réseau de l'entreprise est ailleurs.
    J'ai installé Pfsense, installé le firewall : jusque là tout allait bien. J'ai installé ensuite squid et squidguard avec la blacklist de toulouse et là plus moyen d'accéder au web. A force de chercher j'ai compris d'une part que ce n'était pas un problème de firewall puisque si je désactive squid la navigation redevient possible. Ce n'est pas non plus la blacklist puisque si je l'enlève rien ne change.
    Par contre on peut naviguer sur les pages en https même si c'est extrêmement lent.
    Je suis allée voir dans les fichiers et voici la config proxy :

    
    # Do not edit manually !
    http_port 192.168.1.1:3128
    http_port 127.0.0.1:3128 transparent
    icp_port 0
    
    pid_filename /var/run/squid.pid
    cache_effective_user proxy
    cache_effective_group proxy
    error_directory /usr/local/etc/squid/errors/French
    icon_directory /usr/local/etc/squid/icons
    visible_hostname localhost
    cache_mgr admin@localhost
    access_log /var/squid/logs/access.log
    cache_log /var/squid/logs/cache.log
    cache_store_log none
    logfile_rotate 365
    shutdown_lifetime 3 seconds
    # Allow local network(s) on interface(s)
    acl localnet src  192.168.1.0/255.255.255.0
    uri_whitespace strip
    
    cache_mem 2000 MB
    maximum_object_size_in_memory 200 KB
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    cache_dir ufs /var/squid/cache 3000 16 256
    minimum_object_size 0 KB
    maximum_object_size 4 KB
    offline_mode off
    cache_swap_low 90
    cache_swap_high 95
    
    # No redirector configured
    
    # Setup some default acls
    acl all src 0.0.0.0/0.0.0.0
    acl localhost src 127.0.0.1/255.255.255.255
    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901  3128 1025-65535 
    acl sslports port 443 563 80
    acl manager proto cache_object
    acl purge method PURGE
    acl connect method CONNECT
    acl dynamic urlpath_regex cgi-bin ?
    cache deny dynamic
    http_access allow manager localhost
    
    # Allow external cache managers
    acl ext_manager_1 src 127.0.0.1 
    http_access allow manager ext_manager_1
    acl ext_manager_2 src 192.168.1.1 
    http_access allow manager ext_manager_2
    
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !safeports
    http_access deny CONNECT !sslports
    
    # Always allow localhost connections
    http_access allow localhost
    
    request_body_max_size 0 KB
    reply_body_max_size 0 deny all
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 -1/-1 -1/-1
    delay_initial_bucket_level 100
    delay_access 1 allow all
    
    # Custom options
    redirect_program /usr/local/bin/squidGuard -c /usr/local/etc/squidGuard/squidGuard.conf
    redirector_bypass off
    url_rewrite_children 5
    # Setup allowed acls
    # Allow local network(s) on interface(s)
    http_access allow localnet
    # Default block all to be sure
    http_access deny all
    
    

    J'ai ajouté à la main le port 80 dans ssl ports, ce qui n'est peut être pas bien et qui en plus n'a rien changé. je faisais des tests.
    La dernière ligne pose problème. Mais quoi qu'il arrive, pourquoi je n'arrive pas à paramétrer tout ça avec l'interface web de pfsense?
    Si vous aviez une solution, ce serait pas de refus. Même directement dans le fichier de conf, finalement c'est sûrement plus simple à partir de là.
    Merci d'avance



  • Une chose toute bête. Transparent ou pas votre proxy ? ET la configuration du navigateur avec le proxy ? Pas le temps pour l'instant de lire le détail de votre fichier de conf.



  • Proxy transparent.
    Le navigateur n'a pas de configuration particulière vu qu'il faut que les visiteurs puissent se connecter sans réglage particulier, automatiquement.



  • Un proxy transparent ne permet pas … https !
    Donc il faut une règle spécifique pour https ! (Et c'est laxiste)

    Evidemment, il faut tester "à la main" avec un proxy explicite. (ccnet l'indique)
    Ensuite on passe à "pas de proxy".

    Squid doit autoriser le réseau interne :
    acl localnet src 192.168.1.0/255.255.255.0
    http_access allow localnet
    Il faut donc supposer que c'est bien votre réseau interne (LAN) !
    Et il faut espérer que le WAN est différent !



  • Effectivement ça doit être :

     http_access allow localnet
    

    mais je continue à me demander ce qui est censé générer cette ligne dans l'interface web. Je ne vois pas.
    Par contre j'ai essayé de modifier un truc ou deux dans le fichier de conf que j'ai mis dans le premier message qui est stocké ici :
    usr/local/etc/squid/squid.conf
    mais si je le modifie et que je l'enregistre il revient à sa version précédente dès que je reviens après avoir validé.
    Comment peut-on modifier ce fichier? Je ne comprends pas du tout

    Sinon oui c'est bien sur le LAN et le WAN est différent.



  • Les lignes sont bien dedans !
    Je suppose que la case "Allow users" (ou quelque chose comme ça) en haut de l'écran créé les 2 lignes.
    Sinon, le fichier est généré par l'interface web et c'est prévu pour …

    Attention à une réflexion assez sous évaluée :
    Dans le cadre d'un portail, un cache peut permettre de voir "un peu" ce qu'un autre a cherché sur internet.
    Donc le cache est plutôt à ne pas utiliser ...



  • Bon, je tourne en rond  ???
    L'accès http_access allow localnet est déjà autorisé, j'avais pas trop vu donc ce n'est pas ça.
    Proxy transparent + Allow user on interface cochée = http ne fpnctionne pas mais https si
    Si je décoche Allow user on interface : tout passe même les sites porno alors qu'il y  a une blacklist : on dirait que le proxy ne fonctionne plus.
    Si je renseigne le proxy dans le navigateur à la main = plus de web du tout ni http ni https.
    Ça m'est complètement incompréhensible.  :-
    Quelqu'un a t'il déjà été confronté à ça. J'ai dû oublier de cocher quelque chose, je ne sais pas.



  • Si je décoche Allow user on interface : tout passe même les sites porno alors qu'il y  a une blacklist : on dirait que le proxy ne fonctionne plus.

    Le proxy et le filtrage d'url sont deux choses différentes. Méfiez vous des conclusions hâtives. Il faut regarder les logs.



  • Bon, après une semaine à faire autre chose, je me repenche sur mon problème de proxy.
    Alors je résume :
    1. Avec le firewall configuré, le proxy transparent en place, la blacklist et la case "allow users on interface" cochée : le https fonctionne mais très lentement mais rien en http. Rien de significatif dans les logs, je ne sais pas ce que Suid et SquidGuard sont censés y stocker. Les logs du firewall stockent des informations par contre. Le problème étant apparu après l'installation du proxy, ce n'est pas le firewall qui semble bloquer.
    2. Si je décoche "allow users on interface", tout passe sans problème : http, https, et porno. Pas de log sur les sites bloqués forcément et rien de très particulier dans les logs du proxy.
    3. Je décoche proxy transparent et configure le proxy manuellement avec l'@ ip du pfsense et le port 3128 et là tout est bloqué : pas de http, pas de https, plus d'accès à l'interface web de pfsense.

    Je remets le fichier de configuration

    
    # Do not edit manually !
    http_port 192.168.1.1:3128
    http_port 127.0.0.1:3128 transparent
    icp_port 0
    
    pid_filename /var/run/squid.pid
    cache_effective_user proxy
    cache_effective_group proxy
    error_directory /usr/local/etc/squid/errors/French
    icon_directory /usr/local/etc/squid/icons
    visible_hostname localhost
    cache_mgr admin@localhost
    access_log /var/squid/logs/access.log
    cache_log /var/squid/logs/cache.log
    cache_store_log none
    logfile_rotate 365
    shutdown_lifetime 3 seconds
    # Allow local network(s) on interface(s)
    acl localnet src  192.168.1.0/255.255.255.0
    uri_whitespace strip
    
    cache_mem 1500 MB
    maximum_object_size_in_memory 200 KB
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    cache_dir ufs /var/squid/cache 3000 16 256
    minimum_object_size 0 KB
    maximum_object_size 4 KB
    offline_mode off
    cache_swap_low 90
    cache_swap_high 95
    
    # No redirector configured
    
    # Setup some default acls
    acl all src 0.0.0.0/0.0.0.0
    acl localhost src 127.0.0.1/255.255.255.255
    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901  3128 1025-65535 
    acl sslports port 443 563  
    acl manager proto cache_object
    acl purge method PURGE
    acl connect method CONNECT
    acl dynamic urlpath_regex cgi-bin ?
    cache deny dynamic
    http_access allow manager localhost
    
    # Allow external cache managers
    acl ext_manager_1 src 127.0.0.1 
    http_access allow manager ext_manager_1
    acl ext_manager_2 src 192.168.1.1 
    http_access allow manager ext_manager_2
    
    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !safeports
    http_access deny CONNECT !sslports
    
    # Always allow localhost connections
    http_access allow localhost
    
    request_body_max_size 0 KB
    reply_body_max_size 0 deny all
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 -1/-1 -1/-1
    delay_initial_bucket_level 100
    delay_access 1 allow all
    
    # Custom options
    redirect_program /usr/local/bin/squidGuard -c /usr/local/etc/squidGuard/squidGuard.conf
    redirector_bypass off
    url_rewrite_children 5
    # Setup allowed acls
    # Allow local network(s) on interface(s)
    http_access allow localnet
    # Default block all to be sure
    http_access deny all
    
    

    J'ai essayé plein de trucs et impossible de trouver ce qui cloche. J'ai pourtant parcouru les forums, en vain!



  • Est-ce que cela pose problème si le Pfsense est aussi serveur DHCP, DNS et passerelle? Je ne suis pas sûre d'avoir compris mais en parcourant le forum en anglais j'ai cru voir que ça posait un problème que Pfsense soit à la fois proxy transparent et passerelle.
    Qu'en est-il?
    :'(



  • Si ça peut intéresser quelqu'un j'ai eu la réponse à mon problème sur le forum anglophone.

    Hi,
    I struggled for many days with the same issue. Here is how I succeeded.

    Make sure it is a new install.

    DO NOT INSTALL SQUID.

    Install squidguard. Squidguard seems to install squid components again and breaks squid.

    Now install squid3

    Configure squid, enable captive portal patch and save

    Configure squidguard, save and apply

    Go back to squid and save again.

    Go to Status>Services and start squid then squidguard if not started.

    Configure captive portal.

    Other solutions are offered on-line but none of them were successful for me. Every time I installed squid first squid failed.
    Even removing the packages and re-installing in this order does not work as well.
    I have been able to duplicate this process numerous times. I hope it works for you

    Je traduis grossièrement : faire une installation à partir de rien
    Ne pas commencer par installer squid mais squidguard parce que squidguard modifie des fichiers de squid et casse le packet squid.
    Installer squid (3 ou l'autre : moi j'ai installé la version précédente)
    Configurer squid et sauvegarder
    Configurer squidguard, sauvegarder et appliquer
    Retourner à squid et sauvegarder de nouveau
    Aller à status>services et démarrer squid et squidguard s'ils ne le sont pas.
    Configurer le portail captif
    Configure captive portal.

    Et effectivement je suis repartie de zéro et ça a résolu tous mes problèmes.  ;D


Locked