<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de Michauko &#187; squid</title>
	<atom:link href="http://michauko.org/blog/tag/squid/feed/" rel="self" type="application/rss+xml" />
	<link>http://michauko.org/blog</link>
	<description>Si tu ne comprends pas le titre de l&#039;article, passe ton chemin</description>
	<lastBuildDate>Tue, 29 Nov 2011 11:45:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Arborescence de proxy &#171;&#160;Squid&#160;&#187;, calamaris sous Windows&#8230;</title>
		<link>http://michauko.org/blog/2009/11/03/arborescence-de-proxy-squid-calamaris-sous-windows/</link>
		<comments>http://michauko.org/blog/2009/11/03/arborescence-de-proxy-squid-calamaris-sous-windows/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 15:04:56 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[autres outils]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[ActivePERL]]></category>
		<category><![CDATA[calamaris]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=902</guid>
		<description><![CDATA[Pour les planet-libristes extrêmistes : oui je parle aussi de Windows, pas la peine de balancer vos trolls habituels. Je parle ici d&#8217;un environnement mixte Windows/Linux sur fond avant tout de Squid, Calamaris et PERL. Hop, Dans une infra avec un proxy central et des sites distants reliés par des connexions assez lentes (et pas [...]]]></description>
			<content:encoded><![CDATA[<p><em>Pour les planet-libristes extrêmistes : oui je parle aussi de Windows, pas la peine de balancer vos trolls habituels. Je parle ici d&#8217;un environnement mixte Windows/Linux sur fond avant tout de Squid, Calamaris et PERL.</em></p>
<p>Hop,<br />
Dans une infra avec un proxy central et des sites distants reliés par des connexions assez lentes (et pas d&#8217;accès web direct), j&#8217;ai décidé de mettre en place des proxies &laquo;&nbsp;fils&nbsp;&raquo; sur les sites distants, pour soulager l&#8217;inter-site.<br />
Manque de bol, à distance, uniquement des serveurs Windows sous la main&#8230;<br />
Bon, squid existe sous Windows. Et &laquo;&nbsp;calamaris&nbsp;&raquo; n&#8217;est que du PERL. Ca doit pouvoir le faire.<br />
Je fais cet article comme aide-mémoire, comme souvent, et surtout parce-que quand il faut automatiser des choses sous Windows, on voit vite que c&#8217;est vraiment la merde&#8230; Alors pour ne pas chercher 107 ans la prochaine fois, voici les quelques commandes à enchainer.</p>
<p>Et puis je n&#8217;avais pas envie/possibilité d&#8217;installer un superbe proxy-by-Microsoft, genre ISA ou je ne sais plus comment il s&#8217;appelle. Pas la peine non plus de chercher les ennuis quand on a un squid qui marche très bien <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Je parle sur mon blog <a href="http://michauko.org/blog/?s=squid" target="_blank">à différents moments de Squid</a>, ou de proxy. Ca me fait penser que je n&#8217;ai rien écrit sur la mise en place d&#8217;un squid tout bête. On va considérer que c&#8217;est acquis. Sinon, avec le présent article et les autres, vous devriez avoir une certaine aide.</em><span id="more-902"></span></p>
<h1>Installation et configuration des squid Windows</h1>
<p>Je passe sur le <del datetime="2009-11-02T14:05:38+00:00">aptitude install </del>téléchargement à la main du gros zip contenant squid pour Windows, qu&#8217;on trouve à partir du <a href="http://www.squid-cache.org/" target="_blank">site officiel</a> (faut chercher un peu. Bon OK, <a href="http://squid.acmeconsulting.it/download/squid.html" target="_blank">c&#8217;est là</a>). J&#8217;ai pris la même version que pour Debian Lenny, histoire d&#8217;interconnecter des squid de même génération&#8230; sait-on jamais. C&#8217;est donc la 2.7-STABLE7 (en fait ça doit être 2.7-STABLE5 en Debian, il me semble).<br />
Ensuite, j&#8217;ai dézippé comme un cochon dans <code>c:\squid\</code> et adapté la conf. Ce que je décris ci-dessous.</p>
<h2>Configuration minimale</h2>
<p>Il faut copier les fichiers <code>c:\squid\etc\*conf.default</code> en <code>c:\squid\etc\*conf</code> et adapter les contenus, notamment dans <code>squid.conf</code> :</p>
<ul>
<li>
Adapter &laquo;&nbsp;acl localnet src&nbsp;&raquo; pour votre sous-réseau
</li>
<li>
Déclarer le cache à utiliser : cache_dir ufs d:/squid/var/cache 4000 16 256
</li>
<li>
Taille limite des objets mis en cache, à voir suivant votre cas : maximum_object_size 81920 KB
</li>
<li>
Différents répertoires pour les fichiers de logs : cache_log d:/squid/var/logs/cache.log
</li>
<li>
cache_store_log d:/squid/var/logs/store.log
</li>
<li>
netdb_filename d:/squid/var/logs/netdb.state
</li>
</ul>
<p>J&#8217;ai voulu séparer les logs sur un disque à part. <strong>A noter les &laquo;&nbsp;/&nbsp;&raquo; (et non pas des &laquo;&nbsp;\&nbsp;&raquo;).</strong></p>
<h2>Service, initialisation du cache</h2>
<p>Ensuite, il faut installer le service et créer le cache (j&#8217;ai laissé le format de cache par défaut, une arborescence de répertoires avec des fichiers aux noms codés) :</p>
<pre>cd c:\squid\sbin
squid -k
squid -i
net start Squid</pre>
<p>A noter que le nom du service n&#8217;est pas spécifié, ce sera donc par défaut &laquo;&nbsp;Squid&nbsp;&raquo;, c&#8217;est important pour la rotation de logs.<br />
<strong>Le &laquo;&nbsp;<code>net start Squid</code>&nbsp;&raquo; ne devrait être fait qu&#8217;après configuration du lien avec le proxy &laquo;&nbsp;père&nbsp;&raquo; central, ce qu&#8217;on n&#8217;a pas encore fait. Mais bon, je le montre maintenant pour illustrer.</strong></p>
<p>En images, ça donne :<br />
<div id="attachment_903" class="wp-caption alignleft" style="width: 677px"><a href="http://michauko.org/blog/wp-content/uploads/2009/11/20091029_165018.png"><img src="http://michauko.org/blog/wp-content/uploads/2009/11/20091029_165018.png" alt="squid windows" title="Installation de Squid sous Windows" width="667" height="330" class="size-full wp-image-903" /></a><p class="wp-caption-text">Installation de Squid sous Windows</p></div></p>
<h2>Déclaration du squid &laquo;&nbsp;père&nbsp;&raquo;</h2>
<p>Dans la conf, il faut simplement caser un :</p>
<pre>cache_peer proxycentral.maboite.fr parent 3128 3130 name=pxycentral
acl ftp proto FTP
always_direct allow ftp</pre>
<p>J&#8217;explique : on déclare que ce proxy a un père (parent), sur le port 3128, machine &laquo;&nbsp;proxycentral.maboite.fr&nbsp;&raquo;. On attaquera l&#8217;interrogation du contenu de son cache via le protocole <a href="http://en.wikipedia.org/wiki/Internet_Cache_Protocol" target="_blank">ICP</a> (UDP/3130) et on le surnomme &laquo;&nbsp;pxycentral&nbsp;&raquo; dans les logs <code>access.log</code> histoire d&#8217;y voir clair.<br />
Evidemment, le proxy central doit être ouvert sur le port TCP/3128 et UDP/3130 depuis les proxies &laquo;&nbsp;fils&nbsp;&raquo;.</p>
<h2>Rotation de logs</h2>
<p>Pour la rotation de logs, c&#8217;est en général un grand moment de bonheur pur sous Windows lorsqu&#8217;on amène un outil &laquo;&nbsp;du monde libre, tout ça&nbsp;&raquo; dans Windows. Heureusement ce coup-ci, Squid embarque ce qu&#8217;il faut :</p>
<pre>c:
cd \squid\sbin
squid -k rotate -n Squid</pre>
<p>Reste à mettre ça en &laquo;&nbsp;tâche planifiée&nbsp;&raquo; Windows.</p>
<p>Maintenant que ça tourne (testez), reste à synthétiser les logs, comme on le ferait naturellement sous Linux.</p>
<h1>calamaris sous Windows, youpiiiii</h1>
<p>Dans mon cas, ramener les logs sur un Linux qui aurait fait tourné calamaris était compliqué à mettre en oeuvre. Dans votre cas aussi, je suppose, car la rotation des logs fait que les fichiers sont renommés. Donc même avec un rsync (ou truc du genre), vous allez vous resynchroniser des Mo de logs (compressés éventuellement) à chaque fois.<br />
Bref, j&#8217;ai opté pour un déploiement de PERL sur les serveurs distants et une &laquo;&nbsp;tâche planifiée&nbsp;&raquo; pour générer les pages statiques de statistiques des &laquo;&nbsp;fils&nbsp;&raquo; Squid.</p>
<p>Sous Windows, rien n&#8217;est fourni, je noterai donc ici la ligne de commande bien longue qu&#8217;on n&#8217;a pas besoin de chercher sous Linux, car les scripts &laquo;&nbsp;cron&nbsp;&raquo; sont fournis avec le paquet calamaris. Sous Debian en tout cas.</p>
<p>J&#8217;ai donc utilisé ActivePerl et récupéré calamaris en .tar.gz sur le site de l&#8217;éditeur. Manque de bol, j&#8217;ai retrouvé <a href="http://michauko.org/blog/2009/04/21/calamaris-en-debian-stable-ca-bug/" target="_blank">le même bug que décrit ici</a>, donc j&#8217;ai fini par recopier le script perl <code>/usr/bin/calamaris</code> issu de ma Debian, patché pour corriger ledit bug.<br />
Ensuite, plutôt que de ramer avec le fichier de conf, j&#8217;appelle calamaris en ligne de commande, via une &laquo;&nbsp;tâche planifiée&nbsp;&raquo;, et ça fait le boulot. C&#8217;est pas terrible mais bon, ça marche.<br />
Pire que tout, pour générer les stats &laquo;&nbsp;weekly&nbsp;&raquo; et &laquo;&nbsp;monthly&nbsp;&raquo;, je recalcule tout en concaténant les différents &laquo;&nbsp;access.log.*&nbsp;&raquo; issus des rotations de logs, sur <em>X</em> jours.</p>
<p>En résumé, ça donne :</p>
<ul>
<li>
Installation de ActivePERL
</li>
<li>
Création dans C:\PERL\lib d&#8217;un répertoire calamaris avec les 3 fichiers .pm (modules PERL) pour la génération de graphiques dans les stats ; je n&#8217;ai pas trouvé comment lui spécifier d&#8217;utiliser ces modules, sans avoir à les copier dans PERL/lib. Je n&#8217;ai pas trop cherché non plus. Ca doit être avec &laquo;&nbsp;-I&nbsp;&raquo; ou quelque chose comme ça.
</li>
<li>
Recopie du script &laquo;&nbsp;calamaris&nbsp;&raquo; issu de Debian, quelque part sur le Windows
</li>
<li>
Mise en place de tâches planifiées appelant des &laquo;&nbsp;.bat&nbsp;&raquo; dans ce genre là :</p>
<pre>@echo off
d:
cd D:\calamaris-2.99.4.0
type d:\squid\var\logs\access.log.0 | perl calamaris -a -F html,graph -H lookup --output-path d:\calamaris\output\daily</pre>
</li>
</ul>
<p>Notez que GD::Graph, nécessaire pour les graphiques, est installé par défaut avec ActivePERL.</p>
<p>Et voilà, mettez tout ça en oeuvre et ça devrait le faire.</p>
<h1>Quelques remarques en vrac</h1>
<p>Si tous les codes de retours de Squid ne vous parlent pas, <a href="http://wiki.squid-cache.org/SquidFaq/SquidLogs?highlight=%28%28SquidFaq|SquidLogs%29%29" target="_blank">lisez cette documentation là</a>.</p>
<p>Comme je parle dans cet article d&#8217;un environnement mixte Windows &#038; Linux, on peut parler de WSUS. Ces considérations pour Squid concernant les mises à jour Windows peuvent vous intéresser : <a href="http://wiki.squid-cache.org/SquidFaq/WindowsUpdate" target="_blank">http://wiki.squid-cache.org/SquidFaq/WindowsUpdate</a></p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/11/03/arborescence-de-proxy-squid-calamaris-sous-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SquidGuard : filtre d&#8217;URL et listes à jour (le plus dur)</title>
		<link>http://michauko.org/blog/2009/05/20/squidguard-filtre-durl-et-listes-a-jour-le-plus-dur/</link>
		<comments>http://michauko.org/blog/2009/05/20/squidguard-filtre-durl-et-listes-a-jour-le-plus-dur/#comments</comments>
		<pubDate>Wed, 20 May 2009 07:53:27 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[autres outils]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[reseau et sécu]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[filtre]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[squidguard]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=313</guid>
		<description><![CDATA[Edit 02/02/2011 : l&#8217;auteur de Squidguard précise : Bonjour à tous, Suite à une demande récurrente, et visiblement partagée par un certain nombre d'organisme, nous créons une nouvelle catégorie : "social_networks". Elle permettra de filtrer plus spécifiquement les sites de réseaux sociaux, en ne les incluant pas dans des catégories finalement inadaptées. Nous essayerons, tant [...]]]></description>
			<content:encoded><![CDATA[<hr />
<strong>Edit 02/02/2011 : l&#8217;auteur de Squidguard précise :</strong></p>
<pre>    Bonjour à tous,

    Suite à une demande récurrente, et visiblement partagée par un certain nombre d'organisme, nous créons une nouvelle catégorie : "social_networks".

    Elle permettra de filtrer plus spécifiquement les sites de réseaux sociaux, en ne les incluant pas dans des catégories finalement inadaptées.

    Nous essayerons, tant que faire ce peut, de sortir les sites complets des autres catégories (par exemple facebook de la catégorie blog).

    Cordialement </pre>
<p><strong>FIN</strong></p>
<hr />
<p>Pour faire suite à l&#8217;article sur la mise en place de <a href="http://michauko.org/blog/2009/05/19/privoxy-sur-squid-virer-les-pubs-pour-tout-le-monde/">Privoxy pour faire sauter les pubs</a> dans toute votre société (ou chez vous sur votre petit réseau local), voici un complément : le filtre d&#8217;URL par catégorie.<span id="more-313"></span></p>
<p>J&#8217;ai eu l&#8217;occasion de jouer avec SquidGuard à travers un serveur IPCOP mis en place par mes soins dans l&#8217;école primaire de mon village, avec la bénédiction du Ministère de l&#8217;Education. Ca marche pas mal, il faut avouer. N&#8217;ayant pas de moyen, une école optera certainement pour des listes de filtrages gratuites. Si une seule était à retenir, ce serait <a href="http://cri.univ-tlse1.fr/blacklists/">celle de l&#8217;Université de Toulouse</a>.</p>
<p><strong>Deux objectifs possibles :</strong></p>
<ul>
<li>éviter les abus en entreprises :sites sociaux à la facebook, vidéos à gogos, porno et autres contre-productivités sur le clavier etc&#8230;</li>
<li>filtrer les sites pour vos enfants (<a href="http://cri.univ-tlse1.fr/documentations/cache/protection_enfance.html">lisez ça aussi, ça donnera d&#8217;autres pistes</a>)</li>
</ul>
<h1>Mise en place sur Debian</h1>
<h2>Installation et docs de base</h2>
<p>Contrairement à pas mal d&#8217;outils sous Debian, l&#8217;installation ne fait rien en soit, elle amène simplement de l&#8217;outillage et la plus grosse part est après.<br />
Commencez par installer le logiciel, via un classique <code>aptitude install squidguard</code>.<br />
Evidemment, votre squid est déjà en place et fonctionnel.</p>
<p>Pensez à lire le fichier <code>/usr/share/doc/squidguard/README.Debian</code> ; c&#8217;est d&#8217;ailleurs une règle générale après une installation de paquet Debian, mais surtout pour SquidGuard qui, après l&#8217;installation, ne fait rien tout seul.</p>
<h2>Principes de fonctionnement</h2>
<p>Je décris le principe avant de foncer la tête dans le guidon.</p>
<p>SquidGuard est simplement une sorte d&#8217;extension à base de scripts et d&#8217;ACL Squid pour filtrer des URL en se basant sur des domaines et des expressions régulières d&#8217;URL<br />
Lui même n&#8217;apporte aucun niveau de filtrage et il faudra aller chercher une liste à jour de sites. C&#8217;est là toute la difficulté.<br />
J&#8217;arrête tout de suite ceux qui pensent bloquer facebook.com en écrivant une ACL bidon genre <code>deny blabla facebook.com</code> dans Squid. Entre les sites genre how-to-un-unblock-facebook.com et les &laquo;&nbsp;redirectors&nbsp;&raquo; genre proxies anonymes, ce sera impossible. D&#8217;où l&#8217;aide de listes, payantes ou non, robotisées ou non, mises à jour régulièrement ou non.<br />
Soit vous payez une liste type urlblacklist.com, soit vous optez pour une gratuite, mais néanmoins efficace, comme celle de l&#8217;Université de Toulouse, cf. plus haut. Sinon, <a href="http://www.squidguard.org/blacklists.html">allez voir là</a> &#8211; je n&#8217;ai pas testé les 2 premiers liens.</p>
<p>La README évoqué ci-dessus parle d&#8217;un paquet &laquo;&nbsp;chastity-list&nbsp;&raquo;, <code>apt-cache search chastity</code> n&#8217;ayant rien donné, je n&#8217;ai pas cherché plus loin.</p>
<p>Une fois la liste choisie, vous obtiendrez généralement des fichiers textes, classés par catégories. Il faut les transformer en base de données type Berkeley-machin (fichiers .db) pour qu&#8217;ils soient efficaces en mémoire.<br />
Ce sera évidemment à scripter automatiquement toutes les nuits (nouvelles listes => nouveaux .db => rechargement de Squid).<br />
A noter que les fichiers .db seront générés par SquidGuard <strong>uniquement lorsqu&#8217;il verra que vous utilisez telle ou telle catégorie dans <code>/etc/squid/squidGuard.conf</code></strong>. SquidGuard n&#8217;ira pas compiler les bases inutilisées (ce qui prend du temps sur des grosses listes, genre &laquo;&nbsp;adult&nbsp;&raquo; (=porno))</p>
<p>Enfin, vous ajouterez les catégories qui vous intéressent en ayant pris soin de créer une belle page qui indique à l&#8217;utilisateur pourquoi tel site est bloqué (je suis sympa, je vous fournis un tel script minimaliste ; en gros une correction de celui fourni dans le package SquidGuard qui est passablement foireux)</p>
<p>Je ne parle pas des aspects communication en entreprise : filtrer les sites aura sûrement un impact important sur le moral des troupes, fonction du gain de bande passante, fonction de la productivité <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Mise en place pratique</h2>
<p>J&#8217;illustre la suite par le blocage de la catégorie &laquo;&nbsp;hacking&nbsp;&raquo;, où l&#8217;on pourra tester par exemple www.warez.com, à partir des listes de l&#8217;Université de Toulouse</p>
<h3>Récupération de la liste de l&#8217;Université de Toulouse</h3>
<p>La base : récupérez soit <a href="ftp://ftp.univ-tlse1.fr/blacklist/">une catégorie</a>, soit <a href="ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz">la totalité</a> (je pars sur cette option). Voyez <a href="http://cri.univ-tlse1.fr/blacklists/">l&#8217;explication de chaque catégorie ici</a>.</p>
<pre>mkdir /root/squidguard
cd /root/squidguard
wget ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz
tar xzvf blacklists.tar.gz
mv blacklists/* /var/lib/squidguard/db/
chown -R  proxy:proxy /var/lib/squidguard/db/
</pre>
<h3>Choix d&#8217;une catégorie</h3>
<p>Dans <code>/etc/squid/squidGuard.conf</code>, on va toucher le minimum. Ajoutez n&#8217;importe où :</p>
<pre>dest hacking {
   domainlist hacking/domains
   urllist hacking/
   log guard_hacking.log
}
</pre>
<p>Pour savoir si une catégorie contient des &laquo;&nbsp;domaines&nbsp;&raquo;, des &laquo;&nbsp;URL&nbsp;&raquo; ou des &laquo;&nbsp;expressions&nbsp;&raquo;, allez voir dans <code>/var/lib/squidguard/db/la_categorie/</code>. En effet, seules quelques catégories ont des &laquo;&nbsp;expressions&nbsp;&raquo;, il s&#8217;agit avant tout des catégories de pubs. Je considère que <a href="http://michauko.org/blog/2009/05/19/privoxy-sur-squid-virer-les-pubs-pour-tout-le-monde/">privoxy</a> est là pour ça. Donc je n&#8217;ajoute pas <code>expression hacking/expressions</code> (même pas sûr de la syntaxe). Pour m&#8217;assurer que les &laquo;&nbsp;expressions&nbsp;&raquo; sont utilisées uniquement pour la pub, j&#8217;ai fait ça et vu des fichiers de taille 0 ou non-existant pour la plupart des catégories :</p>
<pre>srv:/var/lib/squidguard/db# ls -l */expres*
-rwxr-xr-x 1 proxy proxy  57 2006-05-10 07:47 ads/expressions
-rw-r--r-- 1 proxy proxy   0 2005-10-18 16:51 adult/expressions
-rw-r----- 1 proxy proxy   0 2002-11-06 14:08 aggressive/expressions
-rw-r----- 1 proxy proxy   0 2002-11-06 14:08 agressif/expressions
-rw-r--r-- 1 proxy proxy   0 1999-03-04 08:07 forums/expressions
-rw-r--r-- 1 proxy proxy   0 1999-03-04 08:07 mail/expressions
-rw-r--r-- 1 proxy proxy  42 2009-03-19 10:42 malware/expression
-rw-r--r-- 1 proxy proxy  47 2009-03-20 13:30 malware/expressions
-rw-r--r-- 1 proxy proxy   0 2005-10-18 16:51 porn/expressions
-rw-r--r-- 1 proxy proxy   0 1999-10-06 17:37 proxy/expressions
-rwxr-xr-x 1 proxy proxy  57 2006-05-10 07:47 publicite/expressions
-rw-r--r-- 1 proxy proxy   0 1999-10-06 17:37 redirector/expressions
-rw-r--r-- 1 proxy proxy 123 2005-06-14 21:33 strict_redirector/expressions
-rw-r--r-- 1 proxy proxy 505 2006-05-23 22:05 strong_redirector/expressions
-rw-r----- 1 proxy proxy   0 2002-11-06 14:08 violence/expressions
-rw-r--r-- 1 proxy proxy   0 1999-04-19 14:04 warez/expressions</pre>
<p>Ensuite, on indique à SquidGuard (donc à Squid) comment réagir pour cette catégorie. Modifier la section <code>acl {}</code> du fichier <code>/etc/squid/squidGuard.conf</code> pour qu&#8217;il y ait ça (gardez ou non la palanquée de lignes de commentaires) :</p>
<pre>acl {
   default {
      pass !hacking all
      redirect http://srv/cgi-bin/squidGuard-simple.cgi?clientaddr=%a&#038;srcclass=%s&#038;targetclass=%t&#038;url=%u
   }
}
</pre>
<p>Si vous voulez bloquer plusieurs catégories, ce sera à base de <code>pass !hacking !adult !blabla all</code>.<br />
Notez dans la section <code>acl {}</code> l&#8217;adresse de redirection utilisée : une page spéciale hébergée sur le serveur, nommée <code>squidGuard-simple.cgi</code>. Il faut maintenant la mettre en place.<br />
A noter aussi, il me semble que de base, la ligne &laquo;&nbsp;redirect&nbsp;&raquo; contient des &laquo;&nbsp;+&nbsp;&raquo; à la place des &laquo;&nbsp;&&nbsp;&raquo; pour passer les arguments. J&#8217;ai pas bien pigé, j&#8217;ai toujours vu des &laquo;&nbsp;&&nbsp;&raquo; et avec les &laquo;&nbsp;+&nbsp;&raquo;, ça ne marchait pas.</p>
<h3>Redirection vers une page spéciale</h3>
<ul>
<li>Attention, j&#8217;ai ouï dire que si le script n&#8217;était pas là, ça passait silencieusement et la requête aboutissait malgré la demande de blocage. Je n&#8217;ai pas testé, j&#8217;ai surtout testé une URL de chaque catégorie que je suis censé bloqué.
</li>
<li>Je considère que votre site web est configuré pour que /cgi-bin/ soit en un &laquo;&nbsp;Alias&nbsp;&raquo; de &laquo;&nbsp;/usr/lib/cgi-bin/&nbsp;&raquo;, c&#8217;est en général défini dans la configuration par défaut d&#8217;Apache2 et vous pouvez vous en assurer rapidement avec cette commande <code>grep cgi-bin /etc/apache2/sites-enabled/*</code> pour voir si ça répond &#8211; en gros.</li>
<li>La liste des variables que l&#8217;on peut passer au script de redirection est donnée dans la doc HTML, <code>/usr/share/doc/squidguard/CONFIGURATION.html</code></li>
</ul>
<p>Deux scripts sont fournis par le mainteneur du paquet Debian pour nous donner une trame pour l&#8217;écriture du script de redirection &#8211; le script qui dira &laquo;&nbsp;accès bloqué blabla, si vous pensez que c&#8217;est une erreur, contactez l&#8217;administrateur blabla&nbsp;&raquo;. Ils sont là :</p>
<pre>srv:/var/lib/squidguard/db# dpkg -S squidGuard*.cgi
squidguard: /usr/share/doc/squidguard/examples/squidGuard.cgi.gz
squidguard: /usr/share/doc/squidguard/examples/squidGuard-simple.cgi.gz</pre>
<p>Le premier est apparement plus complet, prévu pour du multi-langues etc, <strong>mais récupère comme un pied les variables qu&#8217;on lui passe</strong>. J&#8217;ai opté pour l&#8217;autre car rapidement, j&#8217;ai pu mettre en place une page qui indiquait clairement et simplement le site bloqué, la catégorie, l&#8217;IP du demandeur et donnait le mail de contact de l&#8217;administrateur.<br />
Donc soit vous optez pour ces scripts, soit pour le <a href='http://michauko.org/blog/wp-content/uploads/2009/05/squidguard-simple.zip'>mien fourni ici</a>, basé sur le 2è script, traduit en français et épuré de certains trucs inutiles. Voyez :</p>
<p><a href="http://michauko.org/blog/wp-content/uploads/2009/05/20090520_092614.png"><img src="http://michauko.org/blog/wp-content/uploads/2009/05/20090520_092614-300x213.png" alt="squidguard" title="squidguard" width="300" height="213" class="aligncenter size-medium wp-image-336" /></a></p>
<p>On est fin prêt pour un test grandeur nature.</p>
<h3>Relance de Squid via la compilation des listes de blocage</h3>
<p>Lancez la commande <code>/usr/sbin/update-squidguard</code> pour contrôler les droits sur les fichiers de <code>/var/lib/squidguard/db/</code> et générer les .db.<br />
Attention, sur la liste &laquo;&nbsp;adult&nbsp;&raquo; (environ 1 million de domaines), ça peut prendre quelques minutes.<br />
Ce script recharge Squid.<br />
Testez un site de la catégorie &laquo;&nbsp;hacking&nbsp;&raquo;, exemple www.warez.com</p>
<h2>Script de mise à jour automatiques des listes</h2>
<p>Voici un script que j&#8217;ai mis en crontab pour automatiser la récupération de la liste de l&#8217;Université de Toulouse (si mise à jour), la mise à jour qui va bien, création de .db et relance de Squid.</p>
<pre>srv:~# cat /root/squidguard/update_toulouse.sh
#!/bin/sh
cd /root/squidguard
wget -N ftp://ftp.univ-tlse1.fr/blacklist/blacklists.tar.gz
rm -rf blacklists
rm -rf /var/lib/squidguard/db/*
tar -xzvf blacklists.tar.gz
# proprio et perm fixées de toute manière par update-squidguard
chown -R proxy:proxy blacklists
mv blacklists/* /var/lib/squidguard/db/
/usr/sbin/update-squidguard
# A priori, si le site est down ou connx internet HS, on reutilisera le .tar.gz actuel
# donc pas de risque de se retrouver avec une base vide
</pre>
<p>Mettez les droits d&#8217;exécution via <code>chmod u+x /root/squidguard/update_toulouse.sh</code> et collez ça dans la crontab :</p>
<pre>0 3 * * 1-5     root    /root/squidguard/update_toulouse.sh</pre>
<p>Ca devrait rouler !</p>
<h2>Divers</h2>
<h3>Log des accès interdits</h3>
<p>J&#8217;ai passé sous silence la ligne &laquo;&nbsp;log guard_hacking.log&nbsp;&raquo;. Elle est optionnelle et permet de garder ou non une trace des accès interdit, par catégorie. A voir, vie privée des gens, tout ça. J&#8217;ai choisi de la nommer quelque_chose.log car ce fichier ira directement dans <code>/var/log/squid/</code> et sera donc &laquo;&nbsp;logrotaté&nbsp;&raquo; naturellement comme tous les logs Squid, via ce qu&#8217;on trouve en standard dans le logrotate de Squid, <code>/etc/logrotate.d/squid</code>, à savoir : <code>/var/log/squid/*.log</code><br />
Vu ?</p>
<h3>Plages horaires</h3>
<p>Vous noterez que la conf simpliste ici peut être étoffée, dans le fichier <code>/etc/squid<br />
/squidGuard.conf</code>, vous avez tous les commentaires nécessaires,  notamment pour faire du [dé]blocage par plages horaires.</p>
<h3>D&#8217;autres compléments pour Squid ?</h3>
<p>Après <a href="http://michauko.org/blog/2009/05/19/privoxy-sur-squid-virer-les-pubs-pour-tout-le-monde/">Privoxy</a>, il faudrait un 3è article maintenant sur HAVP. Je vais y penser éventuellement.</p>
<h3>Générer la conf pour toutes les catégories</h3>
<p>Ne réutilisez pas le résultat brutalement, vous bloqueriez même Google, car il est listé dans ce qui ressemble plus à une whiteliste propre à l&#8217;Université de Toulouse, la catégorie &laquo;&nbsp;liste_bu&nbsp;&raquo;.<br />
Afin d&#8217;obtenir la liste complète des déclarations de catégories pour squidGuard.conf, vous pouvez utiliser celà :</p>
<pre>srv:/var/lib/squidguard/db# for i in `find . -maxdepth 1 -type d|awk -F'/' '{print $2}' | sort`
do
	echo -e dest $i {
	echo -e \\t"domainlist $i/domains"
	echo -e \\t"urllist $i/urls"
	echo -e \\t"log guard_$i.log"
	echo }
done</pre>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/05/20/squidguard-filtre-durl-et-listes-a-jour-le-plus-dur/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Privoxy sur Squid : virer les pubs pour tout le monde</title>
		<link>http://michauko.org/blog/2009/05/19/privoxy-sur-squid-virer-les-pubs-pour-tout-le-monde/</link>
		<comments>http://michauko.org/blog/2009/05/19/privoxy-sur-squid-virer-les-pubs-pour-tout-le-monde/#comments</comments>
		<pubDate>Tue, 19 May 2009 14:57:52 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[autres outils]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[mails]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[privoxy]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=299</guid>
		<description><![CDATA[Sur mon firefox, j&#8217;utilise &#171;&#160;AdBlock Plus&#160;&#187; pour filtrer les pubs. Mais dans une société où IE est le maître (pour cause d&#8217;intranets pas compatibles, de pas de droit d&#8217;admins et d&#8217;utilisateurs contents avec IE (!)), amuse toi pour faire sauter les pubs pour tout le monde. J&#8217;ai entendu parler de IE7pro, une extension pour IE [...]]]></description>
			<content:encoded><![CDATA[<p>Sur mon firefox, j&#8217;utilise &laquo;&nbsp;<a href="https://addons.mozilla.org/fr/firefox/addon/1865">AdBlock Plus</a>&nbsp;&raquo; pour filtrer les pubs. Mais dans une société où IE est le maître (pour cause d&#8217;intranets pas compatibles, de pas de droit d&#8217;admins et d&#8217;utilisateurs contents avec IE (!)), amuse toi pour faire sauter les pubs pour tout le monde.<br />
J&#8217;ai entendu parler de IE7pro, une extension pour IE (je ne savais même pas que ça existait). Je l&#8217;ai donc installé et désinstallé dans la foulée. C&#8217;est naze.<br />
D&#8217;où l&#8217;idée de déterrer ce bon vieux <a href="http://www.privoxy.org/">privoxy</a> que j&#8217;utilisais localement sur mon PC avant que &laquo;&nbsp;Adblock Plus&nbsp;&raquo; n&#8217;existe. Il peut se chaîner avec un autre proxy, notamment Squid, afin de filtrer toutes les pubs. (toutes = le mieux possible)</p>
<p>Allez zou, mise en place de la chose sur un serveur avec Squid, pour en faire profiter tout le monde.<span id="more-299"></span></p>
<h1>Quelques remarques par rapport à Debian</h1>
<p>Je ne connais pas trop le rythme d&#8217;update des règles de privoxy. Ce que j&#8217;en ai compris, c&#8217;est qu&#8217;elles sont intégrées au package privoxy. A mon sens, ça devrait être dissocié, par exemple dans le dépôt &laquo;&nbsp;volatile&nbsp;&raquo;.<br />
Ca ne l&#8217;est pas. Et comme les pubs évoluent, j&#8217;ai un peu hésité.</p>
<blockquote><p>EDIT : j&#8217;ai changé d&#8217;avis sur ce qui suit : j&#8217;ai pris la version officielle Debian. Cf. les commentaires</p></blockquote>
<p><em>Finalement, j&#8217;ai opté pour la <a href="http://sourceforge.net/project/showfiles.php?group_id=11118">version packagée Debian sur le site de privoxy</a> plutôt que la version officielle dans la &laquo;&nbsp;stable&nbsp;&raquo;. Moins pratique pour mettre à jour, mais je n&#8217;aimerais pas qu&#8217;un nouveau genre de pubs ne soit pas filtré ou à l&#8217;inverse, trop de coups de haches sur certains sites.<br />
</em> En &laquo;&nbsp;stable&nbsp;&raquo;, on est en 3.0.9 si je ne dis pas de bêtise, contre 3.0.12 en .deb sur le site.</p>
<p>J&#8217;ai aussi essayé de trouver une méthode facile pour convertir les expressions régulières d&#8217;Adblock Plus pour privoxy. J&#8217;ai lâché l&#8217;affaire. Si quelqu&#8217;un sait faire, ça peut être intéressant.</p>
<h1>Quelques chiffres après 2 semaines d&#8217;utilisation</h1>
<p>Histoire de mettre l&#8217;eau à la bouche. 100 personnes surfant raisonnablement ont vus (façon de parler) 10% de leurs requêtes bloquées par privoxy. C&#8217;est toujours ça d&#8217;économisé, mais c&#8217;est surtout le gain sur la pollution visuelle qui vaut le coup.<br />
Je n&#8217;ai pas vu de différences sur quelques sites où j&#8217;avais l&#8217;habitude d&#8217;aller via &laquo;&nbsp;Firefox+AdBlockPlus&nbsp;&raquo; par rapport à &laquo;&nbsp;n&#8217;importe quel navigateur+privoxy sans adblock plus évidemment&nbsp;&raquo;.</p>
<h1>Mise en place sur Debian</h1>
<h2>Installation</h2>
<p>Installez donc le <a href="http://sourceforge.net/project/showfiles.php?group_id=11118">package Debian </a>, précédemment téléchargé, avec la commande suivante :</p>
<pre>dpkg -i privoxy_3.0.12-1_i386.deb</pre>
<h2>Paramétrage et tests de base</h2>
<p>Tout se passe dans <code>/etc/privoxy/config</code>. Vous n&#8217;avez qu&#8217;une chose à modifier pour tester votre privoxy en direct :</p>
<pre>listen-address  localhost:8118</pre>
<p>Si le service est sur un serveur (et pas votre PC), changez &laquo;&nbsp;localhost&nbsp;&raquo; en &laquo;&nbsp;*&nbsp;&raquo; ou l&#8217;IP de la machine sur le LAN et relancez via <code>/etc/init.d/privoxy restart</code><br />
Bien sûr, il faut indiquer à votre navigateur d&#8217;utiliser le proxy sur cette machine, port 8118.<br />
<strong>A la fin : faites bien attention à la valeur choisie (ou à vos règles de firewall si elles filtrent l&#8217;accès au serveur squid/privoxy), il ne faudrait pas qu&#8217;un utilisateur puisse adresser en direct privoxy en court-circuitant squid&#8230;</strong></p>
<h2>Interco avec Squid</h2>
<p>La doc officielle de privoxy dit de chaîner dans l&#8217;ordre : PC -> squid -> privoxy<br />
Il doit y avoir une raison, peut-être pour ne pas court-circuiter les éventuelles ACL de Squid, qui permettraient par exemple un certain traitement suivant l&#8217;IP source de la requête.<br />
Bon bref, c&#8217;est donc au niveau de Squid qu&#8217;il faut paramétrer. Cherchez le mot &laquo;&nbsp;squid&nbsp;&raquo; dans la doc <a href="http://www.privoxy.org/user-manual/config.html">http://www.privoxy.org/user-manual/config.html</a>. En résumé, ajoutez où il faut dans <code>/etc/squid/squid.conf</code> :</p>
<pre>cache_peer 127.0.0.1 parent 8118 7 no-query
acl ftp proto FTP
always_direct allow ftp
never_direct allow all</pre>
<p>Dans l&#8217;exemple, 127.0.0.1 indique que privoxy est sur la même machine que squid, sinon mettez l&#8217;IP de privoxy, et son port, par défaut 8118.<br />
A noter que squid fait proxy FTP dans mon exemple, sinon adaptez.<br />
Relancez squid, un <code>/etc/init.d/squid reload</code> doit suffire.</p>
<h1>Pour voir les stats vite fait</h1>
<p><a href="http://p.p/">http://p.p/</a><br />
Ca peut servir pour configurer l&#8217;outil aussi, si vous avez activé ce qu&#8217;il faut<br />
Evidemment, vous serez gentils de whitelister michauko.org. Je me suis pas tapé la mise en place de Google AdSense pour rien <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ouais bon, ça va&#8230; c&#8217;est pour financer un jour quelques mois de mon serveur&#8230;</p>
<h1>A suivre</h1>
<p>L&#8217;article SquidGuard, l&#8217;ami de Squid quand l&#8217;accès Internet est un peu trop surchargé par 99% d&#8217;inutile.</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/05/19/privoxy-sur-squid-virer-les-pubs-pour-tout-le-monde/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>&#171;&#160;calamaris&#160;&#187; en Debian stable, ça bug :)</title>
		<link>http://michauko.org/blog/2009/04/21/calamaris-en-debian-stable-ca-bug/</link>
		<comments>http://michauko.org/blog/2009/04/21/calamaris-en-debian-stable-ca-bug/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 09:08:40 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[autres outils]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[reseau et sécu]]></category>
		<category><![CDATA[calamaris]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=244</guid>
		<description><![CDATA[Calamaris est un outil d&#8217;analyse de logs de squid (et d&#8217;autres), qui génère facilement des reports intéressants sur l&#8217;utilité de votre proxy (efficacité du cache, sites les plus demandés etc). La conf de base de calamaris fonctionne bien (encore qu&#8217;il ne faut pas avoir trop modifié le format de ses logs Squid). Cependant, il y [...]]]></description>
			<content:encoded><![CDATA[<p>Calamaris est un outil d&#8217;analyse de logs de squid (et d&#8217;autres), qui génère facilement des reports intéressants sur l&#8217;utilité de votre proxy (efficacité du cache, sites les plus demandés etc).<span id="more-244"></span></p>
<p>La conf de base de calamaris fonctionne bien (encore qu&#8217;il ne faut pas avoir trop modifié le format de ses logs Squid). Cependant, il y a une option intéressante documentée dans <code>/usr/share/doc/calamaris/README.Debian</code>, qui permet de générer des graphiques associés aux reportings tableaux.<br />
<strong>La doc dit de penser à installer le paquet libgd-graph-perl.</strong><br />
Ce qu&#8217;elle ne dit pas, c&#8217;est de corriger un bug connu, <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=501396">décrit ici</a>, pour lequel <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=28;filename=calamaris-graph.patch;att=1;bug=501396">un patch </a>est proposé et corrige effectivement le problème.</p>
<p>Le symptome du bug est le suivant :</p>
<pre>bla:# /etc/cron.daily/calamaris
Use of uninitialized value in concatenation (.) or string at /usr/bin/calamaris line 4083, <> line 22053.
Use of uninitialized value in concatenation (.) or string at /usr/bin/calamaris line 4115, <> line 22053.
Use of uninitialized value in concatenation (.) or string at /usr/bin/calamaris line 4115, <> line 22053.
Can't call method "png" on an undefined value at /usr/bin/calamaris line 4128, <> line 22053.
</pre>
<p>En attendant mieux&#8230; car le développeur de calamaris semble avoir d&#8217;autres chats à fouetter <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pour appliquer la correction, téléchargez le patch et appliquez-le :</p>
<pre>cp -a /usr/bin/calamaris /usr/bin/calamaris.orig
patch calamaris /your/downloaded/calamaris.patch
</pre>
<p>Et voilà :<br />
<a href="http://michauko.org/blog/wp-content/uploads/2009/04/20090421_105303.png"><img src="http://michauko.org/blog/wp-content/uploads/2009/04/20090421_105303-300x299.png" alt="calamaris" title="calamaris" width="300" height="299" class="aligncenter size-medium wp-image-246" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/04/21/calamaris-en-debian-stable-ca-bug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>firefox, les proxy et les adresses locales</title>
		<link>http://michauko.org/blog/2009/04/20/firefox-les-proxy-et-les-adresses-locales/</link>
		<comments>http://michauko.org/blog/2009/04/20/firefox-les-proxy-et-les-adresses-locales/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 15:00:54 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=233</guid>
		<description><![CDATA[Après m&#8217;être fait suer quelques heures sur un problème débile de conf de proxy Firefox, j&#8217;ai décidé d&#8217;en faire part dans ce billet. Ca fera peut-être gagner du temps à certains. Vu que la litterature sur le sujet est assez éparpillée (voir à la fin de l&#8217;article). La seule vraie information semble être un bugzilla [...]]]></description>
			<content:encoded><![CDATA[<p>Après m&#8217;être fait suer quelques heures sur un problème débile de conf de proxy Firefox, j&#8217;ai décidé d&#8217;en faire part dans ce billet. Ca fera peut-être gagner du temps à certains. Vu que la litterature sur le sujet est assez éparpillée (voir à la fin de l&#8217;article). La seule vraie information semble être un bugzilla de Mozilla, daté de 2001 et toujours en cours de discussion ! (au moins jusqu&#8217;à mi 2008)<span id="more-233"></span></p>
<h2>L&#8217;histoire est la suivante</h2>
<p>Vous utilisez un proxy, mais vous ne voulez pas l&#8217;utiliser pour les adresses locales (genre : vos intranets). C&#8217;est un choix raisonnable.<br />
Bien sûr, vous voulez utiliser les noms de hosts et pas les FQDN, exemple : http://serveur/ et pas http://serveur.masociete.net/<br />
Raisonnable là aussi</p>
<h2>Le constat d&#8217;échec</h2>
<p>- Sous IE, lorsque vous cochez &laquo;&nbsp;ne pas utiliser de proxy pour les adresses locales&nbsp;&raquo;, ça fait ce qu&#8217;on veut (waaa, m&#8217;enfin, il y a d&#8217;autres travers avec IE)</p>
<p>- Sous firefox, c&#8217;est moins simple :</p>
<ul>
<li>Si vous indiquez &laquo;&nbsp;.masociete.net&nbsp;&raquo; dans les adresses à exclure (notez le &laquo;&nbsp;.&nbsp;&raquo;), alors les adresses du genre http://serveur.masociete.net/ sont bien traitées en direct (bypass du proxy) et les adresses courtes &laquo;&nbsp;peuvent&nbsp;&raquo; marcher :</li>
<ul>
<li>Ca marche si : par exemple avec Squid, vous avez ajouté le paramètre &laquo;&nbsp;append_domain&nbsp;&raquo; contenant votre &laquo;&nbsp;societe.net&nbsp;&raquo;. MAIS : vous passez par le proxy même pour ces sites locaux. C&#8217;est débile ! (mais ça marche, on est d&#8217;accord)</li>
<li>Ca ne marche pas sinon, Firefox commence à chercher sur google ce que pourrait être votre nom de host&#8230; Et pas la peine de vous exciter sur la conf DNS de votre PC windows pour lui faire ajouter des suffixes DNS partout, ça ne change rien</li>
</ul>
<li>Si vous ne mettez aucune exclusion, ça revient au même. Les syntaxes genre &nbsp;&raquo;  *.masociete.net&nbsp;&raquo; ne sont pas reconnues (silencieusement)</li>
<li>Enfin, si vous vous limitez à exclure des plages d&#8217;IP, genre 192.168.x.y/m ça ne suffit pas. Firefox se gourre (de mon point de vue) car il raisonne sur le nom et pas sur l&#8217;IP. Donc le filtre marchera bien si vous tapez &laquo;&nbsp;http://une.adr.esse.ip/&nbsp;&raquo; mais fera comme expliqué ci-dessus avec les noms de machines</li>
</ul>
<h2>La seule solution (il me semble) industrialisable</h2>
<p>En passant par un fichier &laquo;&nbsp;PAC&nbsp;&raquo; (<a href="http://michauko.org/blog/2008/06/10/proxy-pac-locaux-et-ie/">voir mon article sur le sujet</a>), alors ça marche.<br />
Le secret ? ce mécanisme force à résoudre l&#8217;IP associée au nom avant de commencer à réfléchir, via la fonction isInNet par exemple (isPlainHostName doit pouvoir marcher aussi) ; de là, si on voit qu&#8217;on est sur telle plage d&#8217;IP, on fait sans le proxy, en DIRECT.<br />
Exemple ultra-simple de conf :<br />
<code>function FindProxyForURL(url, host)<br />
  {<br />
    if (isInNet(host, "192.168.0.0", "255.255.0.0")) {<br />
      return "DIRECT";<br />
    }<br />
    else<br />
      return "PROXY mon_proxy:3128";<br />
  }</code><br />
Reste à déployer ce script et modifier les conf des navigateurs. A vos GPO, scripts Samba, registrie etc.</p>
<h2>Quelques références</h2>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=72444">https://bugzilla.mozilla.org/show_bug.cgi?id=72444</a><br />
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=91587">https://bugzilla.mozilla.org/show_bug.cgi?id=91587</a><br />
<a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;q303650">http://support.microsoft.com/default.aspx?scid=kb;EN-US;q303650</a><br />
<a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;q262981">http://support.microsoft.com/default.aspx?scid=kb;EN-US;q262981</a><br />
Bonne lecture, surtout pour le premier&#8230;</p>
<p><strong>Si vous avez une meilleure solution je suis preneur&#8230;</strong><br />
Notez que je n&#8217;ai pas testé depuis un firefox sous Linux ; mon propos étant dans une entreprise avec des postes Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/04/20/firefox-les-proxy-et-les-adresses-locales/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Bloquer Hamachi au niveau shorewall et squid</title>
		<link>http://michauko.org/blog/2008/09/17/bloquer-hamachi-au-niveau-shorewall-et-squid/</link>
		<comments>http://michauko.org/blog/2008/09/17/bloquer-hamachi-au-niveau-shorewall-et-squid/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 16:11:50 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[hamachi]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[shorewall]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=146</guid>
		<description><![CDATA[Sympa Hamachi, j&#8217;en parlais dans un précédent billet pour l&#8217;aspect &#171;&#160;je joue en réseau avec mes potes&#160;&#187;. => Aujourd&#8217;hui, j&#8217;en parle pour bloquer cette saloperie d&#8217;outil qui peut apporter de gros ennuis au boulot Pour rappel, c&#8217;est un VPN &#171;&#160;zero-conf&#160;&#187; qui permet à l&#8217;utilisateur nullissime en informatique (c&#8217;est-à-dire que vous n&#8217;avez rien besoin de connaître [...]]]></description>
			<content:encoded><![CDATA[<p>Sympa Hamachi, j&#8217;en parlais <a href="http://michauko.org/blog/2007/09/21/hamachi-client-vpn-zero-conf-pour-faire-plein-de-belles-vilaines-choses/">dans un précédent billet</a> pour l&#8217;aspect &laquo;&nbsp;je joue en réseau avec mes potes&nbsp;&raquo;.</p>
<p>=> Aujourd&#8217;hui, j&#8217;en parle pour bloquer cette saloperie <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  d&#8217;outil qui peut apporter de gros ennuis au boulot <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pour rappel, c&#8217;est un VPN &laquo;&nbsp;zero-conf&nbsp;&raquo; qui permet à l&#8217;utilisateur nullissime en informatique (c&#8217;est-à-dire que vous n&#8217;avez rien besoin de connaître en info pour installer/utiliser ce truc) d&#8217;installer un VPN pour atteindre ses copains au boulot ou son PC chez lui. Au-delà de ça, ça peut rapidement se transformer en une passerelle entre un réseau bien sale (celui de l&#8217;utilisateur lambda chez lui, nul en informatique je le rappelle) et votre entreprise. D&#8217;où problèmes. D&#8217;où envie de donner des baffes.</p>
<p>Voici comment le bloquer (du moins maintenant il ne passe plus à mon boulot et pourtant il essaye &#8211; donc je dois avoir fait le tour de la question), tant au niveau shorewall &#8211; si l&#8217;accès Internet est direct &#8211; qu&#8217;au niveau squid si vos utilisateurs <strong>*doivent*</strong> passer par le proxy pour atteindre Internet.</p>
<h1>Analyse à 2 balles du comportement de hamachi pour mieux le bloquer</h1>
<p>Au départ, <a href="http://www.hamachi.cc/">installez hamachi</a> pour tester. Ca devrait se connecter sans problème. Je pense qu&#8217;il va chercher la conf proxy dans les paramètres de IE.<br />
C&#8217;est typiquement le genre d&#8217;outils qui a prévu tout un tas de modes de connexions genre :<br />
- essayer tout un tas de ports standards<br />
- avoir plein de noms de machines pour atteindre le serveur par plusieurs chemins</p>
<p>MAIS, comme c&#8217;est un outil avec un point central (le serveur chez eux pour s&#8217;authentifier &#8211; puisque ça a une vocation commerciale, payante, tout ça), on peut à un moment donné repérer tous les serveurs centraux et les bloquer. C&#8217;est pas comme pour des protocoles décentralisés type peer-to-peer.<br />
Bon après, s&#8217;ils changent leurs noms ou IP tout le temps, ça peut devenir pénible.</p>
<p>Une fois connecté, allez voir vos logs squid, vous devriez voir tout un tas de requêtes du style :</p>
<pre>1221661590.889 350758 votre.ip.sur.lan TCP_MISS/200 3734 CONNECT ssl-24.hamachi.cc:443 - DIRECT/74.201.74.26 -</pre>
<p>De là, avec quelques commandes <code>hosts</code>, genre :</p>
<pre>for i in `seq -f '%02g' 1 40`
do
host ssl-$i.hamachi.cc
done</pre>
<p>Ainsi que :</p>
<pre>for i in `seq 1 255`
do
host 74.201.74.$i
done</pre>
<p>Ce qui donne :</p>
<pre>...
103.74.201.74.in-addr.arpa domain name pointer ns3.3amlabs.com.
104.74.201.74.in-addr.arpa domain name pointer www02-09.logmein.com.
105.74.201.74.in-addr.arpa domain name pointer www02-09.logmein.com.
106.74.201.74.in-addr.arpa domain name pointer www02-09.logmein.com.
...</pre>
<p>Vous verrez qu&#8217;en gros, la plage IP 74.201.74.0/24 est à eux et qu&#8217;avec 4/5 noms de domaines génériques, vous pourrez tout bloquer.</p>
<h1>Blocage niveau shorewall</h1>
<p>En considérant que votre shorewall fonctionne bien, vous pouvez soit blacklister dans le fichier <code>/etc/shorewall/blacklist</code> (si vous avez bien activé l&#8217;option &laquo;&nbsp;blacklist&nbsp;&raquo; dans le fichier <code>/etc/shorewall/interfaces</code>), soit faire une règle dans <code>/etc/shorewall/rules</code>.<br />
Dans &laquo;&nbsp;blacklist&nbsp;&raquo;, ajoutez la ligne :</p>
<pre>74.201.74.0/24</pre>
<p><strong>Ou, </strong>dans &laquo;&nbsp;rules&nbsp;&raquo;, ajoutez :</p>
<pre>DROP    lan     net:74.201.74.0/24      all
</pre>
<p>Relancez shorewall via <code>/etc/init.d/shorewall reload</code></p>
<h1>Blocage niveau Squid</h1>
<p>Allez dans le fichier <code>/etc/squid/squid.conf</code> et à l&#8217;endroit où sont définies des &laquo;&nbsp;ACL&nbsp;&raquo;, ajoutez celles-ci &#8211; c&#8217;est un exemple à adapter.</p>
<pre>acl tout_mon_lan src 172.16.0.0/255.255.0.0
acl vilain_hamachi dstdomain .hamachi.cc .logmeinhamachi.com .logmein.com .3amlabs.com logmeinrescue.com logmeinrescue-enterprise.com
http_access deny tout_mon_lan vilain_hamachi</pre>
<p>Ici je me base sur les noms de domaines, pas les IP. C&#8217;est un choix motivé par le fait que le client hamachi semble tenter des noms de machines, pas des IP. A voir si l&#8217;éditeur fait évoluer ça dans le temps.<br />
Et pensez à recharger squid : <code>/etc/init.d/squid reload</code></p>
<h1>Validez que ça ne marche plus</h1>
<p>Retestez la connexion à Hamachi. Vous devriez le voir s&#8217;exciter dans les logs squid sur quelques ssl-xx.hamachi.cc pris au hasard puis plus rien :</p>
<pre>1221666080.309      0 votre.ip.sur.lelan TCP_DENIED/403 1441 CONNECT ssl-14.hamachi.cc:443 - NONE/- text/html
1221666199.615      0 votre.ip.sur.lelan TCP_DENIED/403 1441 CONNECT ssl-15.hamachi.cc:443 - NONE/- text/html
1221666283.816      5 votre.ip.sur.lelan TCP_DENIED/403 1441 CONNECT ssl-13.hamachi.cc:443 - NONE/- text/html</pre>
<p>En images, ça reste sur ça :<br />
<a href='http://michauko.org/blog/wp-content/uploads/2008/09/hamachi_bloque1.png'><img src="http://michauko.org/blog/wp-content/uploads/2008/09/hamachi_bloque1.png" alt="Hamachi bloqué" title="Hamachi bloqué" width="206" height="342" class="alignleft size-full wp-image-148" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/09/17/bloquer-hamachi-au-niveau-shorewall-et-squid/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

