Controle acces web avec squid ne fonctionne pas

Bonjour,

je me résouds a demande de l’aide ( please !!!) après avoir passé une éternité à lire des posts sur le web pour essayer de mettre en place un contrôle parental sur un pi400. je ne suis pas du tout autonome et d’habitude, je m’en sors en recherchant la solution sur un tuto mais la je n’y arrive pas.
j’ai installé squid et squidguard et je n’arrive pas à interdire l’accès au moindre site web.
j’ai normalement interdit l’accès a facebook et espn pour test…mais j’ai accès à tout !
mon adresse IP est 192.168.1.13/24

je vous met ci dessous mon fichier de configuration squid.conf :

#port d’ecoute du proxy
http_port 3128

#integration du module squidguard
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

#nom affiché dans le navigateur
visible_hostname proxyserveur

#emplacement des fichiers LOG
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

#mail du responsable du proxy
cache_mgr he********h@yahoo.fr

#### definition des ACL######

#ACL designant toutes les adresses IP
#acl all src all

#ACL designant le poste qui heberge le proxy
#acl localhost src 127.0.0.1/32

#acl to_localhost dst 127.0.0.0/8
#acl manager proto cache_object
acl localnet src 192.168.1.13

#ACL designant le reseau local
#acl NOM_RESEAU src 127.0.0.1

#ACL designant les ports autorisés

acl SSL_ports port 443
acl SSL_ports port 563

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 563 # ssl
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # swat

#ACL designant la purge
acl purge method PURGE

#ACL designant une connexion directe sur le proxy
acl CONNECT method CONNECT

acl blacklisted_domain dstdomain .facebook.com espn.com

#regles d’accès

http_access allow localnet

http_access allow manager localhost
http_access deny manager

http_access deny localhost

http_access allow purge localhost
http_access deny purge

http_access deny blacklisted_domain

http_access allow all

#empeche les personnes extérieures au réseau de passer par le proxy.
#ATTENTION mettre cette acl à la fin
#http_access deny all

#on rejete tous les ports differents de ceux déclarer dans les acl
http_access deny !Safe_ports

#autorise les reponses pour tout le monde (par defaut)
http_reply_access allow all

#autorise le protocole icp pour tout le monde (par defaut)
icp_access allow all

coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern . 0 20% 4320

et le résultat de la commande « systemctl status squid.service » :

● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-11-21 16:33:47 CET; 15min ago
Docs: man:squid(8)
Process: 1789 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
Process: 1792 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
Main PID: 1793 (squid)
Tasks: 3 (limit: 4915)
CGroup: /system.slice/squid.service
├─1793 /usr/sbin/squid -sYC
├─1795 (squid-1) --kid squid-1 -sYC
└─1815 (squidGuard) -c /etc/squid/squidGuard.conf

nov. 21 16:33:47 jadou squid[1795]: HTCP Disabled.
nov. 21 16:33:47 jadou squid[1795]: Pinger socket opened on FD 14
nov. 21 16:33:47 jadou squid[1795]: Squid plugin modules loaded: 0
nov. 21 16:33:47 jadou squid[1795]: Adaptation support is off.
nov. 21 16:33:47 jadou squid[1795]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD
nov. 21 16:33:48 jadou squid[1795]: storeLateRelease: released 0 objects
nov. 21 16:33:49 jadou squid[1795]: Starting new redirector helpers…
nov. 21 16:33:49 jadou squid[1795]: helperOpenServers: Starting 1/20 ‹ squidGuard › processes
nov. 21 16:33:49 jadou squid[1795]: Recv recv: (111) Connection refused
nov. 21 16:33:49 jadou squid[1795]: Closing Pinger socket on FD 14

si une bonne ame peut m’aider ??

je vous remercie

hello,

tu ne précises pas si tu as paramétré le navigateur avec le proxy !
désolé si ma question te parait évidente mais c’est quant même important :wink:

sinon les règles
. l’alternance http_access allow localnet avec http_access deny localhost et autres doublons ; il faudra choisir deny ou allow
. http_access allow all placé en dernier semble indiqué que l’accès http est autorisé pour tous …

peut être un truc comme ça devrait suffire :

#regles d’accès
http_access allow localnet
http_access allow manager localhost
http_access deny manager
http_access deny blacklisted_domain
http_access deny all

si j’ai bien compris :roll_eyes: ça se traduirait par:
autoriser le localhost
autoriser le localhost pour le manager
interdire le manager aux autres
interdire les sites figurant ds blacklisted
interdire l’accès au proxy pour tous les autres ordinateurs

je me suis servi de cette doc : Access Controls in Squid | Squid Web Cache wiki

ERRATUM ben en fait non le couple :

acl blacklisted_domain dstdomain .facebook.com
http_access deny blacklisted_domain

servirait juste a empêcher la mise en cache des pages provenant de facebook… mais pas leur transmission aux clients .

pour le bloquer on peu utiliser :

acl blacklisted_facebook url_regex facebook
http_access deny all blacklisted_facebook

d’autres parts si tu veux protéger des jeunes enfants, le plus sur est certainement d’avoir une « whitelist » c’est à dire qu’au lieu d’interdir des sites ( la liste est souvent trop longue et jamais completement a jour… ) il vaut peut être mieux en autorisé que ceux dont on est sur …
le problème étant de savoir lesquels ( un site en demandant souvent d’autres pour fonctionner correctement ) pour déterminer lesquels les outils de développement de firefox ( onglet réseau ) peut en donner une liste. ( clair c’est un peu pénible ! )

acl whitelist_wiki url_regex wikipedia.org
acl whitelist_google url_regex google.fr
http_access deny !whitelist_wiki !whitelist_google

pour que squid prenne en compte les acl elles devront être toutes sur la même ligne http_access

pour finir si ton proxy ne sert qu’a ton Rpi, le localhost serait aussi bien sur 127.0.0.1

http_port 127.0.0.1:3128

Merci pour ton retour.
en effet je n’ai pas précisé mais oui j’ai bien paramétré le navigateur avec le proxy mais je ne vois pas de différence avec ou sans puisque j’ai accès a tout pour l’instant.
je suis en déplacement cette semaine mais dès que je rentre j’essaye et te dis si ça marche.

Merci

Tu sais que si ton PC connais le IP du host que tu demandes, il va s’en servir, proxy ou non (fait véécu avec proxy Squid et Windows 7 Chrome) …

Pour éviter ça, faut définir le Proxy dans les paramètres internet global du PC, sous Windows 7 et antérieur, suffi de configurer Internet Explorer et le proxy pour que tout Windows l’utilise, sous Windows 8 et plus récent, je ne sais pas ou es l’option. Un proxy cause plus de trouble que d’autres choses (les sites voit ton vrai IP, détecte le proxy et même certain refuse la connection à cause du proxy détecté), alors j’ai arrêté de « Gosser » la dessus.

Désactive le IPv6 aussi.


Je crois que sous Windows, quand un host retourne « null », il va alors chercher dans le host local (cache DNS) et même sous Chrome, c’est le navigateur qui va autre-passer le proxy pour contacter le DNS de Google. Alors vaut mieux définir un IP au lieu de BLACKLISTER, genre tout pointer les sites sur le IP de disney.com ou le fameux localhost (127.0.0.1).

Sous linux le premier fichier que la résolution de nom interroge est le fichier /etc/hosts.
Le dig ou le nslookup ( et squid aussi ! ) passe par le server DNS mais les commandes (ping,wjget … ) ainsi que firefox et chrome ( sans squid ) commence par utiliser le hosts donc c’est là que l’on peut forcer une adresse « bidon »
/etc/hosts

127.0.0.1           fr-fr.facebook.com
127.0.0.1           www.facebook.com
.....

bonjour, j’ai modifié comme indiqué dans vos conseils, mais rien n’y fait ! je n’arrive toujours pas à bloquer une page web…
j’utilise firefox, dans les préférences je coche bien « manual proxy configuration », dans la case HTTP proxy j’y met mon adresse ip « 192.168.1.13 » et dans le port j’y met « 3128 ». je coche aussi la case « Also use this proxy for FTP and HTTPS ».

ensuite mon squid.conf actuellement est écrit ainsi:

#port d’ecoute du proxy
http_port 3128

#integration du module squidguard
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

#nom affiché dans le navigateur
visible_hostname proxyserveur

#emplacement des fichiers LOG
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log

#mail du responsable du proxy
cache_mgr he********h@yahoo.fr

#### definition des ACL######

#ACL désignant le poste qui héberge le proxy
acl localnet src 192.168.1.13

#ACL désignant les ports autorisés

acl SSL_ports port 443
acl SSL_ports port 563

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 563 # ssl
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # swat

#ACL designant la purge
acl purge method PURGE

#ACL designant une connexion directe sur le proxy
acl CONNECT method CONNECT

acl blacklisted_domain dstdomain .facebook.com espn.com
acl blacklisted_facebook url_regex www.facebook.com

#regles d’accès

http_access allow localnet

http_access allow manager localhost
http_access deny manager

#http_access allow purge localhost
#http_access deny purge

http_access deny blacklisted_domain
http_access deny blacklisted_facebook
http_access deny all

#on rejete tous les ports differents de ceux déclarer dans les acl
http_access deny !Safe_ports

#autorise les reponses pour tout le monde (par defaut)
http_reply_access allow all

#autorise le protocole icp pour tout le monde (par defaut)
icp_access allow all

coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern . 0 20% 4320

avec la commande " systemctl status squid.service " , voicii ce que j’obtiens :

● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-11-28 13:32:37 CET; 6s ago
Docs: man:squid(8)
Process: 32550 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
Process: 32553 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
Main PID: 32554 (squid)
Tasks: 3 (limit: 4915)en avant ddernière ligne est ce normal d’avoir « Recv recv: (111) Connection refused » ?
CGroup: /system.slice/squid.service
├─32554 /usr/sbin/squid -sYC
├─32556 (squid-1) --kid squid-1 -sYC
└─32584 (squidGuard) -c /etc/squid/squidGuard.conf

nov. 28 13:32:37 jadou squid[32556]: HTCP Disabled.
nov. 28 13:32:37 jadou squid[32556]: Pinger socket opened on FD 14
nov. 28 13:32:37 jadou squid[32556]: Squid plugin modules loaded: 0
nov. 28 13:32:37 jadou squid[32556]: Adaptation support is off.
nov. 28 13:32:37 jadou squid[32556]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::]
nov. 28 13:32:38 jadou squid[32556]: storeLateRelease: released 0 objects
nov. 28 13:32:40 jadou squid[32556]: Starting new redirector helpers…
nov. 28 13:32:40 jadou squid[32556]: helperOpenServers: Starting 1/20 ‹ squidGuard › processes
nov. 28 13:32:40 jadou squid[32556]: Recv recv: (111) Connection refused
nov. 28 13:32:40 jadou squid[32556]: Closing Pinger socket on FD 14

en avant dernière ligne est ce normal d’avoir « Recv recv: (111) Connection refused » ?

et avec la commande "journalctl -xe " , voici ce que j’obtiens:

nov. 28 13:32:37 jadou squid[32556]: Starting Squid Cache version 4.6 for arm-unknown-linux-gnueabihf.
nov. 28 13:32:37 jadou squid[32556]: Service Name: squid
nov. 28 13:32:37 jadou squid[32556]: Process ID 32556
nov. 28 13:32:37 jadou squid[32556]: Process Roles: worker
nov. 28 13:32:37 jadou squid[32556]: With 1024 file descriptors available
nov. 28 13:32:37 jadou squid[32556]: Initializing IP Cache…
nov. 28 13:32:37 jadou squid[32556]: DNS Socket created at [::], FD 5
nov. 28 13:32:37 jadou squid[32556]: DNS Socket created at 0.0.0.0, FD 9
nov. 28 13:32:37 jadou squid[32556]: Adding domain 8.8.8.8 from /etc/resolv.conf
nov. 28 13:32:37 jadou squid[32556]: Adding nameserver 8.8.8.8 from /etc/resolv.conf
nov. 28 13:32:37 jadou squid[32556]: helperOpenServers: Starting 0/20 ‹ squidGuard › processes
nov. 28 13:32:37 jadou squid[32556]: helperOpenServers: No ‹ squidGuard › processes needed.
nov. 28 13:32:37 jadou squid[32556]: Logfile: opening log /var/log/squid/access.log
nov. 28 13:32:37 jadou squid[32556]: WARNING: log name now starts with a module name. Use 'stdio:/var/
nov. 28 13:32:37 jadou squid[32556]: Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
nov. 28 13:32:37 jadou squid[32556]: Logfile: opening log /var/log/squid/store.log
nov. 28 13:32:37 jadou squid[32556]: WARNING: log name now starts with a module name. Use 'stdio:/var/
nov. 28 13:32:37 jadou squid[32556]: Swap maxSize 0 + 262144 KB, estimated 20164 objects
nov. 28 13:32:37 jadou squid[32556]: Target number of buckets: 1008
nov. 28 13:32:37 jadou squid[32556]: Using 8192 Store buckets
nov. 28 13:32:37 jadou squid[32556]: Max Mem size: 262144 KB
nov. 28 13:32:37 jadou squid[32556]: Max Swap size: 0 KB
nov. 28 13:32:37 jadou squid[32556]: Using Least Load store dir selection
nov. 28 13:32:37 jadou squid[32556]: Set Current Directory to /var/spool/squid
nov. 28 13:32:37 jadou squid[32556]: Finished loading MIME types and icons.
nov. 28 13:32:37 jadou squid[32556]: HTCP Disabled.
nov. 28 13:32:37 jadou squid[32556]: Pinger socket opened on FD 14
nov. 28 13:32:37 jadou squid[32556]: Squid plugin modules loaded: 0
nov. 28 13:32:37 jadou squid[32556]: Adaptation support is off.
nov. 28 13:32:37 jadou squid[32556]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::]
nov. 28 13:32:38 jadou squid[32556]: storeLateRelease: released 0 objects
nov. 28 13:32:40 jadou squid[32556]: Starting new redirector helpers…
nov. 28 13:32:40 jadou squid[32556]: helperOpenServers: Starting 1/20 ‹ squidGuard › processes
nov. 28 13:32:40 jadou squid[32556]: Recv recv: (111) Connection refused
nov. 28 13:32:40 jadou squid[32556]: Closing Pinger socket on FD 14

idem, en avant dernière ligne est ce normal d’avoir « Recv recv: (111) Connection refused » ?

Merci pour votre aide !

avec squidguard c’est encore une autre paire de manche !

dans ton log il doit te dire que squidguard n’est pas lancé !
après un rapide test squid+squidguard fonctionnaient si je lançait squidguard puis ensuite squid (?)

bonjour,
ca marche !!! en effet il y avait un souci avec squidguard qui plantait…cependant j’ai réussi a bloquer facebook en activant le dossier réseau sociaux de squidguard et non avec l’acl blacklisted…tel que je l’ai écrit dans squid…
je ne saurai pas pourquoi mais ça marche !