{"id":765,"date":"2025-03-13T14:11:27","date_gmt":"2025-03-13T13:11:27","guid":{"rendered":"https:\/\/lcendamo.aristeecampus.org\/?page_id=765"},"modified":"2025-03-13T14:11:46","modified_gmt":"2025-03-13T13:11:46","slug":"proxy-squid","status":"publish","type":"page","link":"http:\/\/lcendamo.aristeecampus.org\/index.php\/proxy-squid\/","title":{"rendered":"Proxy Squid"},"content":{"rendered":"<h1>Proxy Squid \/ SquidGuard<\/h1>\n<p>Pr\u00e9sentation du contexte :<\/p>\n<p>GSB (Galaxy Swiss Bourdin) est cr\u00e9\u00e9 en 2009 par la fusion de Galaxy, expert en maladies virales, et Swiss Bourdin, sp\u00e9cialis\u00e9 dans les m\u00e9dicaments classiques. Le si\u00e8ge administratif est \u00e0 Paris, le social \u00e0 Philadelphie. L\u2019objectif est d\u2019optimiser les co\u00fbts et la production en combinant leurs forces. L\u2019entreprise compte 480 visiteurs m\u00e9dicaux en m\u00e9tropole et 60 en outre-mer, r\u00e9partis en 6 zones.<\/p>\n<p>Le besoin :<\/p>\n<p>La DSI a d\u00e9cid\u00e9 de mettre en place dans son infrastructure une solution de filtrage web pour contr\u00f4ler l\u2019acc\u00e8s \u00e0 Internet, am\u00e9liorer la s\u00e9curit\u00e9 du r\u00e9seau. Cette solution doit permettre de bloquer l\u2019acc\u00e8s \u00e0 des sites inappropri\u00e9s ou non professionnels, tout en offrant une gestion fine des politiques d\u2019acc\u00e8s.<\/p>\n<p>Solutions envisageables et retenues :<\/p>\n<p>Diff\u00e9rentes solutions sont possibles :<\/p>\n<ul>\n<li>DansGuardian\u00a0: Une solution open source de filtrage de contenu.<\/li>\n<li>Untangle\u00a0: Une plateforme de s\u00e9curit\u00e9 r\u00e9seau compl\u00e8te.<\/li>\n<li>Squid + SquidGuard\u00a0: Une combinaison puissante et flexible pour le filtrage web.<\/li>\n<\/ul>\n<p>La solution retenue est\u00a0Squid + SquidGuard, car elle est open source, hautement configurable, et b\u00e9n\u00e9ficie d\u2019une grande communaut\u00e9.<\/p>\n<p>Principe de fonctionnement :<\/p>\n<p>Squid\u00a0est un serveur proxy open source qui permet de g\u00e9rer le trafic web. Il agit comme un interm\u00e9diaire entre les utilisateurs et Internet, en filtrant les acc\u00e8s selon des ACL.<\/p>\n<p>SquidGuard\u00a0est un outil compl\u00e9mentaire \u00e0 Squid, sp\u00e9cialis\u00e9 dans le filtrage web. Il permet de bloquer l\u2019acc\u00e8s \u00e0 des sites web en fonction de listes noires(par exemple, sites malveillants, contenus inappropri\u00e9s), compil\u00e9es en base de donn\u00e9es Berkeley(ce qui permet d\u2019am\u00e9liorer les performances, par rapport \u00e0 des listes au format texte). SquidGuard permet de facilement g\u00e9rer des listes d\u2019URLS en plus des domaines, contrairement \u00e0 Squid seul.<\/p>\n<p>Squid + SquidGuard fonctionne de la mani\u00e8re suivante :<\/p>\n<ol>\n<li>Squid\u00a0re\u00e7oit les requ\u00eates HTTP\/HTTPS des utilisateurs.<\/li>\n<li>Squid\u00a0redirige ces requ\u00eates vers\u00a0SquidGuard\u00a0pour analyse.<\/li>\n<li>SquidGuard\u00a0applique les r\u00e8gles de filtrage d\u00e9finies (listes noires, URLs..).<\/li>\n<li>Si la requ\u00eate est autoris\u00e9e,\u00a0Squid\u00a0la transmet \u00e0 Internet. Si la requ\u00eate est bloqu\u00e9e,\u00a0SquidGuard\u00a0renvoie une page d\u2019erreur \u00e0 l\u2019utilisateur.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"447\" height=\"416\" class=\"wp-image-767\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/c-users-lcendamo-downloads-4d1ceace026046cba5d96e.png\" alt=\"C:\\Users\\lcendamo\\Downloads\\4d1ceace026046cba5d96eaae457a3baaaa9bb40.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/c-users-lcendamo-downloads-4d1ceace026046cba5d96e.png 447w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/c-users-lcendamo-downloads-4d1ceace026046cba5d96e-300x279.png 300w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/><\/p>\n<p>Mise en \u0153uvre :<\/p>\n<p>La mise en place de Squid + SquidGuard implique les \u00e9tapes suivantes :<\/p>\n<ol>\n<li>Installation et configuration de Squid pour g\u00e9rer le trafic web.<\/li>\n<li>Installation et configuration de SquidGuard pour d\u00e9finir les r\u00e8gles de filtrage.<\/li>\n<li>Cr\u00e9ation de listes noires ou utilisation de listes existantes pour bloquer les sites ind\u00e9sirables.<\/li>\n<li>Configuration des politiques d\u2019acc\u00e8s par utilisateur ou groupe (par exemple, restrictions sp\u00e9cifiques pour les visiteurs m\u00e9dicaux).<\/li>\n<li>Test et validation de la solution pour s\u2019assurer que le filtrage fonctionne correctement.<\/li>\n<\/ol>\n<p>Conclusion :<\/p>\n<p>La combinaison de Squid et SquidGuard r\u00e9pond parfaitement aux besoins de GSB en mati\u00e8re de filtrage web. Elle offre une solution performante, s\u00e9curis\u00e9e et flexible, tout en \u00e9tant \u00e9conomique gr\u00e2ce \u00e0 son mod\u00e8le open source. Cette solution permettra \u00e0 GSB de mieux contr\u00f4ler l\u2019acc\u00e8s \u00e0 Internet, d\u2019optimiser l\u2019utilisation de la bande passante, et de renforcer la s\u00e9curit\u00e9 du r\u00e9seau.<\/p>\n<h2>Sch\u00e9ma r\u00e9seau actuel\u00a0:<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1050\" height=\"539\" class=\"wp-image-768\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-2.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-2.png 1050w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-2-300x154.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-2-1024x526.png 1024w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-2-768x394.png 768w\" sizes=\"(max-width: 1050px) 100vw, 1050px\" \/><\/p>\n<h2>Sch\u00e9ma r\u00e9seau attendu\u00a0:<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"951\" height=\"451\" class=\"wp-image-769\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-3.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-3.png 951w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-3-300x142.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-3-768x364.png 768w\" sizes=\"(max-width: 951px) 100vw, 951px\" \/><\/p>\n<p>Installation\u00a0:<\/p>\n<p>L\u2019installation se fait en installant les paquets Squid, et SquidGuard.<\/p>\n<p>Il faudra par la suite importer les listes de domaines et d\u2019URL depuis une source s\u00fbre, nous utiliserons les listes de dsi.ut-caputole.fr.<\/p>\n<p>Puis il faudra configurer les fichiers Conf de Squid et de SquidGuard.<\/p>\n<p>Nous utiliserons une machine vierge Debian 12.<\/p>\n<h4>Installation des paquets<\/h4>\n<p>Pour commencer, faire\u00a0:<\/p>\n<p><strong>apt update &amp;&amp; apt upgrade<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"257\" class=\"wp-image-770\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-4.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-4.png 825w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-4-300x93.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-4-768x239.png 768w\" sizes=\"(max-width: 825px) 100vw, 825px\" \/><\/p>\n<p>Puis\u00a0:<\/p>\n<p><strong>apt install squid<\/strong><\/p>\n<p>Une fois l\u2019installation faite, nous pouvons v\u00e9rifier la version install\u00e9e avec la commande\u00a0<strong>:<\/strong><\/p>\n<p><strong> squid \u2013version<\/strong><\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" width=\"376\" height=\"76\" class=\"wp-image-771\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-5.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-5.png 376w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-5-300x61.png 300w\" sizes=\"(max-width: 376px) 100vw, 376px\" \/><\/strong><\/p>\n<p>Ensuite, nous pouvons installer SquidGuard\u00a0:<\/p>\n<p><strong>apt install squidguard<\/strong><\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" width=\"868\" height=\"328\" class=\"wp-image-772\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-6.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-6.png 868w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-6-300x113.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-6-768x290.png 768w\" sizes=\"(max-width: 868px) 100vw, 868px\" \/><\/strong><\/p>\n<h4>Importation des blacklists\u00a0:<\/h4>\n<p>Pour importer les blacklists, se rendre dans le dossier ou nous allons t\u00e9l\u00e9charger et extraire l\u2019archive contenant les blacklists, que nous allons r\u00e9cup\u00e9rer sur le site de ut-capitole\u00a0:<\/p>\n<p><strong>cd \/var\/lib\/squidguard\/db<\/strong><\/p>\n<p>Puis\u00a0t\u00e9l\u00e9charger l\u2019archive\u00a0:<\/p>\n<p><strong>wget -c http:\/\/dsi.ut-capitole.fr\/blacklists\/download\/blacklists.tar.gz<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"955\" height=\"157\" class=\"wp-image-773\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-7.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-7.png 955w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-7-300x49.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-7-768x126.png 768w\" sizes=\"(max-width: 955px) 100vw, 955px\" \/><\/p>\n<p>Puis l\u2019extraire\u00a0:<\/p>\n<p><strong>tar -xzf blacklists.tar.gz<\/strong><\/p>\n<p>Nous pouvons voir avec la commande ls, que nous avons maintenant deux \u00e9l\u00e9ments dans le dossier \/var\/lib\/squidguard\/db\u00a0:<\/p>\n<p><strong>blacklists\u00a0<\/strong>: le dossier extrait de l\u2019archive<\/p>\n<p><strong>blacklists.tar.gz<\/strong>\u00a0: l\u2019archive que nous avons t\u00e9l\u00e9charg\u00e9e depuis us-capitole<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"66\" class=\"wp-image-774\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-8.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-8.png 579w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-8-300x34.png 300w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><\/p>\n<p>Voici le contenu du dossier blacklists\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1276\" height=\"201\" class=\"wp-image-775\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-9.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-9.png 1276w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-9-300x47.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-9-1024x161.png 1024w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-9-768x121.png 768w\" sizes=\"(max-width: 1276px) 100vw, 1276px\" \/><\/p>\n<p>Chaque dossier contient des fichiers texte contenant des listes d\u2019urls et de domains.<\/p>\n<h4>Configuration des fichiers conf de squid et de squidguard\u00a0:<\/h4>\n<p>Nous allons maintenant \u00e9diter le fichier squidGuard.conf afin de param\u00e9trer les r\u00e8gles de filtrage\u00a0:<\/p>\n<p><strong>Nano \/etc\/squidguard\/squidGuard.conf<\/strong><\/p>\n<p>Et le modifier comme suit\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"925\" height=\"519\" class=\"wp-image-776\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-10.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-10.png 925w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-10-300x168.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-10-768x431.png 768w\" sizes=\"(max-width: 925px) 100vw, 925px\" \/><\/p>\n<p>dbhome\u00a0: le r\u00e9pertoire ou se trouvent les blacklists<\/p>\n<p>logdir\u00a0: la ou se trouve le fichier log de squidguard<\/p>\n<p>src bar-clients\u00a0: acl contenant le vlan users de notre r\u00e9seau. Il est possible d\u2019en cr\u00e9er plusieurs afin de d\u00e9finir diff\u00e9rentes r\u00e8gles pour un groupe de machine sp\u00e9cifique, tel que des r\u00e8gles d\u2019horaire par exemple.<\/p>\n<p>dest\u00a0: acl pour indiquer les diff\u00e9rentes listes que l\u2019on veut utiliser, ainsi que le liens de redirection pour les domaines ou url bloqu\u00e9e.<\/p>\n<p>acl\u00a0: acl pour les restrictions proxy, ici on interdit l\u2019acc\u00e8s aux site, url et expressions contenue dans les diff\u00e9rentes listes indiqu\u00e9es pour un vlan particulier, en l\u2019occurrence, le vlan users pour l\u2019acl \u00ab\u00a0bar-clients\u00a0\u00bb. SquidGuard var parcourir une \u00e0 une les listes indiqu\u00e9es dans l\u2019acl et appliquer la r\u00e8gle d\u00e9finie. Bloquer, ou autoriser le passage. (le\u00a0! indique le blocage) Il va donc parcourir les listes adult, pishing et warez. Si l\u2019url demand\u00e9 par le client est contenue dans une de ses listes, Squid va bloquer l\u2019acc\u00e8s et rediriger l\u2019utilisateur sur l\u2019url de redirection d\u00e9fini. Si l\u2019url demand\u00e9e n\u2019est dans aucune des trois listes, il va autoriser la connexion, gr\u00e2ce \u00e0 la r\u00e8gle \u00ab\u00a0all\u00a0\u00bb qui autorise tout ce qui n\u2019a pas \u00e9t\u00e9 bloqu\u00e9 par les r\u00e8gles pr\u00e9c\u00e9dentes.<\/p>\n<p>Maintenant, nous devons lancer la compilation des bases. Pour ce faire, nous avons la commande suivante\u00a0:<\/p>\n<p><strong>squidGuard -d -b -P -C all <\/strong><\/p>\n<p>Le \u2013c suffit mais cette commande nous permet de voir la base se faire en temps r\u00e9el\u00a0comme ci-dessous\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"124\" class=\"wp-image-777\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-11.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-11.png 765w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-11-300x49.png 300w\" sizes=\"(max-width: 765px) 100vw, 765px\" \/><\/p>\n<p>Voici le r\u00e9sultat\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"878\" height=\"537\" class=\"wp-image-778\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-12.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-12.png 878w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-12-300x183.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-12-768x470.png 768w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/><\/p>\n<p>Nous allons maintenant configurer Squid pour qu\u2019il utilise SquidGuard.<\/p>\n<p>Pour ce faire, il faut \u00e9diter le fichier \/etc\/squid\/squid.conf afin d\u2019ajouter les lignes suivantes\u00a0:<\/p>\n<p><strong>acl lan src 192.168.110.0\/24<\/strong><\/p>\n<p><strong>http_access allow lan<\/strong><\/p>\n<p><strong>url_rewrite_program \/usr\/bin\/squidGuard<\/strong><\/p>\n<p><strong>url_rewrite_children 20 <\/strong><\/p>\n<p>Puis r\u00e9gler les droits d\u2019acc\u00e8s aux r\u00e9pertoire pour que Squid puisse correctement fonctionner\u00a0:<\/p>\n<p><strong>chown -R proxy:proxy \/var\/lib\/squidguard<\/strong><\/p>\n<p><strong>chown -R proxy:proxy \/var\/log\/squidguard<\/strong><\/p>\n<p>Cela va nous permettre d\u2019indiquer \u00e0 Squid d\u2019utiliser SquidGuard.<\/p>\n<p>Status du service Squid avant modification de son fichier conf\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"804\" height=\"254\" class=\"wp-image-779\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-13.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-13.png 804w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-13-300x95.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-13-768x243.png 768w\" sizes=\"(max-width: 804px) 100vw, 804px\" \/><\/p>\n<p>Status apr\u00e8s modification et relance du service\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"828\" height=\"302\" class=\"wp-image-780\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-14.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-14.png 828w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-14-300x109.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-14-768x280.png 768w\" sizes=\"(max-width: 828px) 100vw, 828px\" \/><\/p>\n<p>Nous pouvons constater que Squid utilise bien SquidGuard<\/p>\n<h4>Configuration du proxy sur une machine afin de tester le bon fonctionnement\u00a0:<\/h4>\n<p>Nous param\u00e9trons le proxy comme suis sur la machine windows\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"506\" height=\"219\" class=\"wp-image-781\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-15.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-15.png 506w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-15-300x130.png 300w\" sizes=\"(max-width: 506px) 100vw, 506px\" \/><\/p>\n<p>Nous lan\u00e7ons un navigateur afin de tester l\u2019acc\u00e8s \u00e0 internet aux pages non bloqu\u00e9es par une des acl\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" class=\"wp-image-782\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-16.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-16.png 1024w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-16-300x158.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-16-768x404.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Cela fonctionne bien, testons maintenant avec un site bloqu\u00e9 dans l\u2019ACL warez\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1189\" height=\"770\" class=\"wp-image-783\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-17.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-17.png 1189w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-17-300x194.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-17-1024x663.png 1024w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-17-768x497.png 768w\" sizes=\"(max-width: 1189px) 100vw, 1189px\" \/><\/p>\n<p>Nous sommes bien redirig\u00e9s vers le lien de redirection configur\u00e9 dans le fichier squidGuard.conf.<\/p>\n<p>Le proxy est fonctionnel.<\/p>\n<h3>Authentification des utilisateurs<\/h3>\n<p>Afin de garder les logs de connexion des utilisateurs, et pour autoriser la connexion uniquement aux utilisateurs autoris\u00e9, il est possible de mettre en place une m\u00e9thode d\u2019authentification.<\/p>\n<p>Afin de faciliter la gestion ainsi que l\u2019utilisation, il est possible de configurer Squid pour qu\u2019il authentifie les utilisateurs via Active Directory.<\/p>\n<p>Pour ce faire nous allons avoir besoin d\u2019installer trois paquets\u00a0: windind, chrony, et samba\u00a0:<\/p>\n<p><strong>apt install smb<\/strong><\/p>\n<p><strong>apt install chrony<\/strong><\/p>\n<p><strong>apt install winbind<\/strong><\/p>\n<p>Puis on modifie le fichier etc\/samba\/smb.conf pour y ajouter le nom de notre domaine.<\/p>\n<p>Puis le ficher chrony, ou on y indiquera l\u2019ip de notre serveur NTP.<\/p>\n<p>Il faut ensuite relancer les trois services.<\/p>\n<p>Puis modifier le fichier conf de Squid en y ajoutant les lignes suivantes\u00a0:<\/p>\n<p>auth_param basic program \/usr\/bin\/ntlm_auth &#8211;helper-protocol=squid-2.5-basic<\/p>\n<p>auth_param basic children 50<\/p>\n<p>auth_param basic realm Squid GSB<\/p>\n<p>auth_param basic credentialsttl 2 hours<\/p>\n<p>acl ntlm proxy_auth REQUIRED<\/p>\n<p>http_access allow ntlm<\/p>\n<p>Et on relance le service squid.<\/p>\n<p>Il faut maintenant joindre la machine au domaine\u00a0:<\/p>\n<p><strong>net ads join -U lcendamo <\/strong>(lcendamo est un compte administrateur du domain)<\/p>\n<p>Puis rentrer le mot de passe du compte. Le serveur devrait maintenant \u00eatre sur le domaine.<\/p>\n<p>Pour tester\u00a0:<\/p>\n<p><strong>net ads testjoin<\/strong><\/p>\n<p>La machine devrait retourner \u00ab\u00a0Join is OK\u00a0\u00bb<\/p>\n<p>La commande <strong>wbinfo \u2013g <\/strong>nous permet quant \u00e0 elle de v\u00e9rifier si le serveur a bien les acc\u00e8s pour parcourir l\u2019Active Directoy\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"160\" height=\"210\" class=\"wp-image-784\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-18.png\" \/><\/p>\n<p>Tentons maintenant de lancer un navigateur, il devrait nous demander de nous authentifier\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"339\" class=\"wp-image-785\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-19.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-19.png 464w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-19-300x219.png 300w\" sizes=\"(max-width: 464px) 100vw, 464px\" \/><\/p>\n<p>Il suffira alors de se connecter avec son compte de session AD. Sans cela, il sera impossible de naviguer sur internet, et chaque requ\u00eate http sera li\u00e9 \u00e0 un utilisateur dans les logs.<\/p>\n<h4>Haute disponibilit\u00e9 du service :<\/h4>\n<h4>intro<\/h4>\n<p>Pour mettre en place la haute disponibilit\u00e9 du service, il nous faut dans un premier temps une seconde machine Squid, avec les m\u00eames param\u00e9trages.<\/p>\n<p>Pour ce faire, il est possible de cloner la machine actuelle ou reconfigurer une nouvelle machine de A \u00e0 Z, manuellement ou en utilisant un outil d\u2019automatisation comme Ansible.<\/p>\n<p>Je vais utiliser un Playbook Ansible que j\u2019ai mis en place, qui va totalement param\u00e9trer la machine et installer les paquets utiles, pour qu\u2019elle puisse fonctionner directement. Les d\u00e9tails de fonctionnement complet de ce Play sont visibles dans le projet Ansible.<\/p>\n<p>Une fois la machine pr\u00eate, nous pouvons passer \u00e0 la suite.<\/p>\n<h4>Le .pac<\/h4>\n<p>Une mani\u00e8re simple de mettre en place la haute disponibilit\u00e9 et d\u2019utiliser un fichier .pac (proxy auto-configuration). Il est simple \u00e0 cr\u00e9er et il suffit de l\u2019h\u00e9berger sur un serveur web.<\/p>\n<p>Ce fichier permet de mettre facilement en place des r\u00e8gles d\u2019exclusions, ainsi que de d\u00e9finir un ou plusieurs serveur proxy. De cette mani\u00e8re, l\u2019ordinateur qui aurait le proxy configurer via ce fichier pac, pourras contacter le deuxi\u00e8me serveur indiqu\u00e9, si le premier ne r\u00e9pond plus.<\/p>\n<p>Voici le fichier .pac\u00a0disponible \u00e0 cette adresse <a href=\"http:\/\/192.168.110.65\/squid.pac\">http:\/\/192.168.110.65\/squid.pac<\/a> :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"619\" height=\"220\" class=\"wp-image-786\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-20.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-20.png 619w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-20-300x107.png 300w\" sizes=\"(max-width: 619px) 100vw, 619px\" \/><\/p>\n<p>Les r\u00e8gles d\u2019exclusion se trouvent dans la premi\u00e8re partie \u00ab\u00a0if\u00a0\u00bb\u00a0: on indique que si le nom d\u2019h\u00f4te termine en .gsb.lan ou que si l\u2019ip est dans le r\u00e9seau 192.168.110.0 ( qui correspond \u00e0 notre sous r\u00e9seau) les requ\u00eates http seront directement envoy\u00e9es \u00e0 l\u2019h\u00f4te, sans passer par le proxy.<\/p>\n<p>Dans a seconde partie \u00ab\u00a0else\u00a0\u00bb PROXY permet d\u2019indiquer vers quels serveurs proxy envoyer toutes les autres requ\u00eates http qui n\u2019aurait pas match avec les deux premi\u00e8res r\u00e8gles. Les requ\u00eates seront donc d\u2019abord envoy\u00e9es au premier proxy indiqu\u00e9, puis au deuxi\u00e8me si le premier ne r\u00e9pond pas. DIRECT permet d\u2019indiquer \u00e0 la machine d\u2019envoyer les requ\u00eates normalement si aucun des deux proxy ne r\u00e9pond.<\/p>\n<h4>Mise en place et test<\/h4>\n<p>Pour param\u00e9trer une machine Windows pour qu\u2019elle utilise le .pac pour le proxy, il suffit de se rendre dans les param\u00e8tre proxy de Windows, et de renseigner l\u2019URL du .pac\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"478\" height=\"444\" class=\"wp-image-787\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-21.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-21.png 478w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-21-300x279.png 300w\" sizes=\"(max-width: 478px) 100vw, 478px\" \/><\/p>\n<p>Pour tester la haute disponibilit\u00e9, il suffit de couper le service Squid sur le premier serveur indiqu\u00e9 dans le .pac, qui correspond au serveur primaire\u00a0et de tenter d\u2019acc\u00e9der \u00e0 une page web\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"18\" class=\"wp-image-788\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-22.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-22.png 424w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-22-300x13.png 300w\" sizes=\"(max-width: 424px) 100vw, 424px\" \/><\/p>\n<p>Puis on lance un page web et on test un domaine bloqu\u00e9\u00a0:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"477\" class=\"wp-image-789\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-23.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-23.png 714w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-23-300x200.png 300w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"358\" class=\"wp-image-790\" src=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-24.png\" srcset=\"http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-24.png 874w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-24-300x123.png 300w, http:\/\/lcendamo.aristeecampus.org\/wp-content\/uploads\/2025\/03\/word-image-765-24-768x315.png 768w\" sizes=\"(max-width: 874px) 100vw, 874px\" \/><\/p>\n<p>On a pu continuer \u00e0 naviguer sur le web et le contenu bloqu\u00e9 est bien bloqu\u00e9 malgr\u00e9 la coupure du SQUID01 qui est le serveur primaire. Le HA est donc bien fonctionnel.<\/p>\n<h4>D\u00e9ploiement de la configuration<\/h4>\n<p>Pour d\u00e9ployer la configuration du Proxy sur les postes clients, il est possible de le faire de deux mani\u00e8re\u00a0:<\/p>\n<ul>\n<li>Avec WPAD (Web Proxy Auto-Discovery Protocol) qui va utiliser le service DHCP pour d\u00e9ployer automatiquement le param\u00e9trage du .pac.<\/li>\n<li>Avec GPO qui va d\u00e9ployer le .pac via le service AD.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Proxy Squid \/ SquidGuard Pr\u00e9sentation du contexte : GSB (Galaxy Swiss Bourdin) est cr\u00e9\u00e9 en 2009 par la fusion de Galaxy, expert en maladies virales, et Swiss Bourdin, sp\u00e9cialis\u00e9 dans les m\u00e9dicaments classiques. Le si\u00e8ge administratif est \u00e0 Paris, le social \u00e0 Philadelphie. L\u2019objectif est d\u2019optimiser les co\u00fbts et la production en combinant leurs forces. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"saved_in_kubio":true,"footnotes":""},"class_list":["post-765","page","type-page","status-publish","hentry"],"kubio_ai_page_context":{"short_desc":"","purpose":"general"},"_links":{"self":[{"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/pages\/765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/comments?post=765"}],"version-history":[{"count":2,"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/pages\/765\/revisions"}],"predecessor-version":[{"id":794,"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/pages\/765\/revisions\/794"}],"wp:attachment":[{"href":"http:\/\/lcendamo.aristeecampus.org\/index.php\/wp-json\/wp\/v2\/media?parent=765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}