<?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; Résultats de recherche  &#187;  squid</title>
	<atom:link href="http://michauko.org/blog/search/squid/feed/rss2/" 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>Limiter la bande passante entre 2 hosts (dont l&#8217;un en Linux)</title>
		<link>http://michauko.org/blog/2009/10/20/limiter-la-bande-passante-entre-2-hosts-dont-lun-en-linux/</link>
		<comments>http://michauko.org/blog/2009/10/20/limiter-la-bande-passante-entre-2-hosts-dont-lun-en-linux/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 09:23:55 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[coup de coeur]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ligne de commande]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[reseau et sécu]]></category>
		<category><![CDATA[bande passante]]></category>
		<category><![CDATA[LARTC]]></category>
		<category><![CDATA[limitation]]></category>
		<category><![CDATA[tc]]></category>
		<category><![CDATA[WSUS]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=865</guid>
		<description><![CDATA[Dans la série aide-mémoire. Imaginez : approbation d&#8217;une tonne de patchs de sécurité Windows en retard sur un WSUS avec des réplicats. Immédiatement, il commence à downloader, via un proxy Squid sous Linux, donc via une machine Linux. Et là, votre bande passante est réduite à de la poussière car WSUS, via le proxy, pompe [...]]]></description>
			<content:encoded><![CDATA[<p><em>Dans la série aide-mémoire.</em><br />
Imaginez : approbation d&#8217;une tonne de patchs de sécurité Windows en retard sur un WSUS avec des réplicats. Immédiatement, il commence à downloader, via un proxy Squid sous Linux, donc via une machine Linux.<br />
Et là, votre bande passante est réduite à de la poussière car WSUS, via le proxy, pompe tout, à fond.<br />
Raaaaaaaaaa. M&#8217;énerve.</p>
<p>Vite, iptables doit pouvoir m&#8217;aider. Je suis une buse en QoS, mais bon, j&#8217;ai confiance en Google <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <span id="more-865"></span></p>
<p>Après quelques recherches, je suis tombé sur <a href="http://lartc.org/" target="_blank">LARTC</a>, Linux Advanced Routing &#038; Traffic Control. En quelques mots, une bande de fous-furieux qui aiment les lignes de commandes compliquées (à côté de ça, iptables est un joujou) pour faire de la QoS.<br />
Y&#8217;a un howto super complet : <a href="http://www.traduc.org/docs/howto/vf/lartc.html">http://www.traduc.org/docs/howto/vf/lartc.html</a>. Pas le temps, ça sent le sujet compliqué et vaste. On verra plus tard.</p>
<p>Là je veux juste limiter le trafic entre mon proxy et ce p~!?[n de serveur WSUS.</p>
<p>J&#8217;ai trouvé <a href="http://lartc.org/howto/lartc.ratelimit.single.html" target="_blank">3 lignes magiques ici </a>(après avoir survolé le <code>man tc</code> histoire de suivre le loin ce que je fais) :</p>
<pre>tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc class add dev eth0 parent 1: classid 1:1 cbq rate 400kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.2 flowid 1:1</pre>
<p>Je voulais limiter le trafic vers 192.168.1.2 via eth0 à 50 kB/s, soit en gros 400 kbit/s.<br />
Pour annuler, j&#8217;ai &laquo;&nbsp;annulé&nbsp;&raquo; les commandes, si je peux dire. Sans être trop sûr de moi, j&#8217;ai simplement tenté ça :</p>
<pre>tc filter del dev eth0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.2 flowid 1:1
tc class del dev eth0 parent 1: classid 1:1 cbq rate 400kbit allot 1500 prio 5 bounded isolated
tc qdisc del dev eth0 root handle 1: cbq avpkt 1000 bandwidth 10mbit</pre>
<p>Je n&#8217;ai pas vu d&#8217;effet de bord (genre, tout bloqué ou rien qui ne se rétablit une fois le <em>tc</em> annulé). Donc on va dire que c&#8217;est probablement un peu crade, que je n&#8217;y comprends pas tout, mais que ça marche.</p>
<p>Voilà, si ça peut vous servir, j&#8217;en suis content.<br />
noob-powered</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/10/20/limiter-la-bande-passante-entre-2-hosts-dont-lun-en-linux/feed/</wfw:commentRss>
		<slash:comments>4</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>Tunnels TCP via SSH, putty etc</title>
		<link>http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/</link>
		<comments>http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 08:01:53 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[reseau et sécu]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tunnels]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=181</guid>
		<description><![CDATA[Salut, Je reprends cette doc écrite il y a 5 ans et anciennement disponible en bon gros HTML-vi-powered dispo ici : http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/ Les photos d&#8217;écrans datent de l&#8217;époque. Mais comme le concept n&#8217;a pas bougé&#8230;. et l&#8217;interface de PuTTY très peu aussi&#8230;. Let&#8217;s go En relisant l&#8217;article, je vois que c&#8217;était vraiment vulgarisé pour être [...]]]></description>
			<content:encoded><![CDATA[<p>Salut,<br />
Je reprends cette doc écrite il y a 5 ans et anciennement disponible en bon gros HTML-vi-powered dispo ici : http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/<br />
Les photos d&#8217;écrans datent de l&#8217;époque. Mais comme le concept n&#8217;a pas bougé&#8230;. et l&#8217;interface de PuTTY très peu aussi&#8230;.</p>
<p>Let&#8217;s go<br />
<em><strong>En relisant l&#8217;article, je vois que c&#8217;était vraiment vulgarisé pour être accessible au plus grand nombre, pardonnez donc les imprécisions techniques et le baratin simplifié &#8211; MERCI</strong></em><br />
<P>&#8211;<P><br />
J&#8217;ai écrit ce document pour 2 raisons. La première est que j&#8217;en ai marre d&#8217;expliquer sans cesse à mes amis cette méthode, la deuxième est que c&#8217;est vraiment une méthode très pratique, puissante et qui n&#8217;a que quelques limitations (et encore – voir chapitre à venir : VPN sur SSH).</p>
<h1>1. Avez-vous besoin de SSH au boulot ?</h1>
<p>Vous êtes 8h par jour au boulot et le proxy chargé de la sécurité de l&#8217;entreprise se charge surtout de vous bloquer quelques sites web et quelques protocoles réseaux à priori non professionnels. En gros, il vous emmerde à longueur de temps et vous aimeriez pouvoir faire les choses suivantes depuis votre boulot :</p>
<ul>
<li>Lire vos mails en POP, IMAP (par un client mail classique plutôt que via le web et l&#8217;interface nullissime de votre fournisseur).</li>
<li>Utiliser Jabber, ICQ, MSN (ou autre protocole) depuis le boulot pour pouvoir rester en contact avec belle-maman.</li>
<li>Prendre le contrôle à distance (VNC, pcAnywhere etc) de votre PC perso avec sa ligne ADSL pour faire je ne sais quoi. D&#8217;autant plus que des outils comme VNC ne gèrent tout simplement PAS les proxys.</li>
<li>Suivre les résultats du football ou consulter un site d&#8217;actualités – en général le proxy bloque largement les sites foot, jeux, facebook et bien d&#8217;autres.</li>
<li>et plein d&#8217;autres choses encore&#8230;</li>
</ul>
<p>Dans ce document, je présenterai le concept ainsi que la mise en oeuvre de la solution (sous Linux ou Windows).</p>
<h1>2. Principe général</h1>
<p>SSH est un outil qui permet de se connecter à une machine distante en mode texte. Sous Linux, on accède à un shell, sous Windows, on pourra voir ça comme l&#8217;accès à une fenêtre DOS, à priori pas très utile, certes. Ca ressemble donc de loin à une connexion telnet, sauf que c&#8217;est laaaaargement plus sécurisé (je n&#8217;en débattrai par ici mais vous pouvez me croire sur parole) et beaucoup plus puissant.<br />
SSH permet notamment de faire du transfert de fichiers (SFTP) et surtout, des tunnels de communication, dans les deux sens (vous comprendrez plus tard). Un tunnel va servir à encapsuler (capturer) des flux réseaux entre le SSH client (votre PC en entreprise avec accès web restreints qu&#8217;on veut contourner) et votre serveur SSH (votre PC à la maison avec ADSL branché 24/24).</p>
<p>Tout se résume à ça : le client SSH établit une connexion avec le serveur SSH à travers le proxy en utilisant une connexion autorisée par le proxy (méthode CONNECT vers un port autorisé). Ensuite, grâce à ça, des tunnels vous permettront de faire passer presque n&#8217;importe quoi à travers le proxy (voir chapitre 4 sur les limitations de ce système).</p>
<p>Le client SSH que j&#8217;utilise est putty (premier lien sur google), c&#8217;est un client libre, gratuit etc, qui permet de faire du telnet, du ssh et surtout d&#8217;utiliser les fonctionnalités de ssh, les tunnels par exemple. Il sait aussi se connecter à travers un proxy.</p>
<h1>3. Mise en place</h1>
<h2>3.1. Côté serveur SSH</h2>
<p>Chez vous, il faut d&#8217;abord installer un serveur SSH.</p>
<h3>3.1.1. Installation</h3>
<p>Sous Linux, vous trouverez forcemment un paquet correspondant à votre distribution. Exemple sous Debian, tapez « apt-get install ssh » et ça devrait le faire.</p>
<p>Sous Windows, c&#8217;est moins simple. Je ne connais pas d&#8217;implémentation libre directement fonctionnelle sous Windows. Et comme vous n&#8217;allez quand même pas payer la version payante de www.ssh.com, vous devrez utiliser www.cygwin.com pour installer un « environnement Linux dans votre Windows ». Cet environnement comprend ensuite la plupart des outils Linux, dont OpenSSH bien sûr. Deux options (au moins) s&#8217;offrent à vous :</p>
<ul>
<li>Installer cygwin de manière classique avec ce qu&#8217;il faut, notamment le paquet ssh (il vous faudra lire un peu de doc à priori).</li>
<li>Utiliser le projet sshwindows qui propose un programme d&#8217;installation global comprenant un cygwin minimaliste et sshd associé. Je n&#8217;ai pas testé personnellement cette solution.</li>
</ul>
<p>Présentation barbare de l&#8217;installation de cygwin : dans les grandes lignes, vous téléchargez le setup.exe puis vous choisissez un miroir de téléchargement, vous installez le minimum vital (par défaut je crois) et vérifiez bien que le paquet ssh est inclus. Au final, vous obtenez une sorte de raccourci façon « fenêtre DOS », sauf que vous êtes dans un environnement Linux et disposez de sa panoplie d&#8217;outils en ligne de commande et même graphique si vous cherchez bien (pour peu que vous ayez installé les paquets qu&#8217;il faut).</p>
<h3>3.1.2. Génération des clefs</h3>
<p>Si vous ne connaissez pas le principe d&#8217;authentification par clefs de SSH, sachez juste que vous devez générer une paire de clefs cryptées utilisées pour la communication entre le serveur et les clients. Même si dans ce document je ne vais pas détailler l&#8217;authentification par clefs, mais juste par mot de passe, cette paire de clefs est nécessaire pour l&#8217;identification du serveur et pour les premières étapes de l&#8217;établissement de la connexion (par mot de passe).<br />
Si vous avez installé SSH sous Debian, le programme d&#8217;installation génère automatiquiment les clefs, pour les solutions, je ne sais pas. Sous cygwin par exemple, vous devrez donc générer ces clefs via la commande « ssh-keygen -t dsa ». Vous pourrez voir ces clefs dans « /etc/ssh », les fichiers sont ssh_host_dsa_key*.</p>
<h3>3.1.3. Etape supplémentaire pour Cygwin</h3>
<p>Un détail sous cygwin (encoooooore), il faut que vous lisiez les docs pour savoir comment lancer le serveur SSH en tant que service Windows plutôt qu&#8217;à la main le matin en partant au boulot&#8230; (cherchez des infos sur le programme cygrunsrv.exe). Pour la version « packagée » par le projet sshwindows, je ne sais pas, lisez la doc.</p>
<p>Sous Linux, ce sera forcemment fait automatiquement.</p>
<h3>3.1.4. Changement du port du serveur SSH</h3>
<p>SSH tourne sur le port 22 par défaut et vous pouvez être quasimment sûr que le proxy du boulot bloque ce port. Donc vous ne pourrez pas atteindre votre serveur depuis chez vous. Ajoutez donc dans le fichier de configuration de sshd (/etc/ssh/sshd_config) une ligne « Port 443 » après la ligne « Port 22 » ou remplacez cette dernière. Redémarrez le service. On choisit le port 443 car c&#8217;est le port https par défaut et le proxy du boulot tolèrera forcemment ce port (au pire, prenez le port 80, http). De plus, https et SSH présentent des similitudes (la couche SSL) et donc utiliser le port 443 a l&#8217;avantage d&#8217;être plus discret (voir chapitre 4.2.).<br />
Si votre firewall le tolère, vous pouvez aussi faire un forward du port 443 vers le 22 en ne laissant que la ligne « Port 22 » dans sshd_config.</p>
<h3>3.1.5. Votre firewall</h3>
<p>Enfin, vous avez certainement chez vous un firewall, n&#8217;oubliez pas d&#8217;ouvrir le port 443 ou 22 (voir chapitre précédent).<br />
Vous avez très probablement aussi une adresse IP dynamique et donc il faut que vous vous trouviez un nom de domaine (essayez www.dyndns.org, ils ont un service gratuit et vous aurez un nom du style chezmoi.dyndns.org mis à jour à chaque reconnexion de votre ADSL). Sinon, vous devrez récupérer votre adresse IP tous les matins et priez pour que l&#8217;ADSL ne tombe pas auquel cas vous risqueriez de changer d&#8217;IP.</p>
<p>Je suppose maintenant que votre serveur est lancé, accessible depuis l&#8217;extérieur et qu&#8217;il fonctionne correctement.</p>
<h2>3.2. Côté client SSH</h2>
<h3>3.2.1. Récupération des paramètres proxy</h3>
<p>Pour les utilisateurs d&#8217;Internet Explorer, allez dans Outils -> Options Internet -> Connexions -> Paramètres réseaux. Vous aurez 2 possibilités, soit l&#8217;adresse et le port sont directement écrit :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel1.png" alt="tunnel1" title="tunnel1" width="384" height="361" class="alignnone size-full wp-image-194" /></p>
<p>Soit votre entreprise utilise un script d&#8217;autoconfiguration :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel2.png" alt="tunnel2" title="tunnel2" width="384" height="361" class="alignnone size-full wp-image-196" /></p>
<p>Dans ce dernier cas, téléchargez ce script en recopiant l&#8217;adresse dans votre navigateur. Ouvrez-le, c&#8217;est un fichier texte. C&#8217;est simple à comprendre et en général, les dernières lignes vous donnent le proxy qui permet d&#8217;atteindre les sites extérieurs (Internet). La fin ressemble à quelque chose comme « PROXY host:port ».</p>
<p>Si vous utilisez un autre navigateur (je l&#8217;espère pour vous <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , vous saurez sûrement où trouver ces informations.</p>
<h3>3.2.2. Installation de putty (client SSH)</h3>
<p>Téléchargez putty. Il n&#8217;y a pas d&#8217;installation, pas besoin d&#8217;être admin de son poste. Vous n&#8217;avez besoin que de putty.exe sinon prenez le zip qui contient tous les binaires. Le paramétrage se fait comme suit :<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel3.png" alt="tunnel3" title="tunnel3" width="426" height="435" class="alignnone size-full wp-image-197" /></p>
<p>Vous saisissez dans le menu « Session » l&#8217;adresse du PC chez vous (IP ou DNS), précisez le protocole SSH et modifiez le port où tourne le serveur SSH (443 à priori – voir chapitres précédents).</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel4.png" alt="tunnel4" title="tunnel4" width="426" height="435" class="alignnone size-full wp-image-198" /></p>
<p>Dans le menu « Connection », activez l&#8217;envoi de paquets vides réguliers, toutes les 10 secondes par exemple. La connexion SSH se faisant via la méthode CONNECT (comme pour du https), le proxy risque fort de la couper régulièrement si aucun trafic n&#8217;est généré.<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel5.png" alt="tunnel5" title="tunnel5" width="426" height="435" class="alignnone size-full wp-image-200" /></p>
<p>Dans le menu « Proxy », vous indiquez le type de proxy, à priori HTTP, son adresse, son port et l&#8217;utilisateur/mot de passe si besoin. La ligne « telnet command » représente en gros le début de la communication entre putty et le proxy pour permettre la connexion au serveur distant (le PC chez vous). Tentez la ligne suivante : « connect %host %port HTTP/1.1\nHost: %host » si la ligne par défaut ne fonctionne pas.</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel6.png" alt="tunnel6" title="tunnel6" width="426" height="435" class="alignnone size-full wp-image-201" /></p>
<p>Enfin, dans le menu « SSH », vous précisez que vous utilisez le protocole en version 2 et activez la compression – c&#8217;est toujours ça de gagné.</p>
<p>Retournez dans le menu « Session », donnez un nom à votre session et faites « Save » à nouveau. Puis « Open ».</p>
<h3>3.2.3. Le moment de vérité</h3>
<p>Faites « Open », si tout va bien, vous obtiendrez un écran du genre :<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel7.png" alt="tunnel7" title="tunnel7" width="278" height="106" class="alignnone size-medium wp-image-203" /></p>
<p>Connectez vous et ça roule. Dans les autres cas, vérifiez bien les informations saisies et éventuellement changez le type de proxy. Parmi les 25 entreprises que j&#8217;ai pu visiter (grandes multinationales comprises), seules 2 ont refusé cette connexion, la première car le proxy était un logiciel merdico-archaïque de Microsoft qui avait déjà du mal à fonctionner normalement avec IE, la deuxième car le proxy était buggé et avait l&#8217;air de ne pas respecter le protocole « normal » entre putty et le serveur ssh (d&#8217;après les traces que j&#8217;ai analysées, le serveur SSH était atteint puis tout partait n&#8217;importe comment).</p>
<p>A ce niveau là, si la connexion est établie et que vous pouvez accéder à votre machine, c&#8217;est banco, vous pourrez « tuyauter » n&#8217;importe quoi via SSH <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>3.3. Les tunnels</h2>
<h3>3.3.1. Créer un port mapping</h3>
<p>Dans le menu « Tunnels », créez un tunnel vers vos serveurs de messagerie (ATTENTION, lisez le chapitre 4.1.3 à propos du forward de messagerie) :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel8.png" alt="tunnel8" title="tunnel8" width="426" height="435" class="alignnone size-full wp-image-205" /></p>
<p>Cette fois-ci, lorsque la fenêtre putty sera ouverte et que vous serez signé sur le serveur SSH, il y aura eu création d&#8217;un port mapping du port local 10110 du poste client vers le port 110 du serveur POP de votre provider (le tout via le relai SSH <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Idem pour les ports 10025/smtp:25. J&#8217;ai choisi des numéros de ports locaux (10110 et 10025) différents des vrais ports notamment pour la compréhension. Rien (ou presque) ne vous empêcherait de mapper les port 25 et 110 vers les ports 25 et 110 des serveurs POP et SMTP de monprovider.com.</p>
<p>Ca veut dire que si un programme de messagerie (mozilla, thunderbird, outlook express, lotus notes etc) s&#8217;adresse à votre propre machine (localhost) sur le port 10025, c&#8217;est bien le serveur SMTP de monprovider.com:25 qui répondra. Idem pour le port 10110/110, c&#8217;est le serveur POP qui répondra. A partir de là, configurez votre client mail en indiquant que les serveurs POP et SMTP de monprovider.com sont respectivement localhost (sur port 10110) et localhost (sur port 10025).<br />
Lorsque le client mail fera une requête, c&#8217;est putty qui interceptera la communication et dira au serveur d&#8217;effectuer la requête à partir de l&#8217;autre bout du tunnel vers le serveur:port précisé. Et voilà ! (j&#8217;espère que c&#8217;est clair <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Attention : vérifiez bien que votre client mail n&#8217;utilise aucun proxy pour les connexions locales ! (exemple : « outlook express » utilise la configuration de IE, veillez bien à cocher dans IE la case qui précise de ne « pas utiliser de proxy pour les connexions locales », ça devrait être fait par défaut).</p>
<p>Avec un beau schéma, ça donne ça :<br />
<img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel9.png" alt="tunnel9" title="tunnel9" width="710" height="476" class="alignnone size-full wp-image-209" /><br />
Maintenant que vous savez faire ça, vous pouvez mapper n&#8217;importe quoi et vous coimprendrez rapidement que le port mapping n&#8217;est pas la solution pour tous les problèmes. Exemple, si vous voulez faire de l&#8217;IRC, le serveur que vous joindrez ne sera pas toujours le même suivant les réseaux que vous voulez utiliser.</p>
<h3>3.3.2. Tunnel dynamique (pour ICQ par exemple)</h3>
<p>La limitation des port mapping apparaît rapidement car il faut définir absolument toutes les connexions dont vous avez besoin, ce qui peut être très lourd. Imaginez que vous vouliez mapper certains sites web interdits, comme www.pleindetrucsinterdits.com. Vous n&#8217;avez qu&#8217;à créer un port mapping du style « localhost:12345 -> www.pleindetrucsinterdits.com:80 ». Ca fonctionne – pas dans tous les cas à cause des « virtual hosts » (Merci Toine) &#8211; mais il ne faut pas avoir 50 sites à mapper sinon c&#8217;est l&#8217;enfer.</p>
<p>Une autre limitation est que vous ne pouvez tout simplement pas de cette manière vous connecter à certains services comme ICQ par exemple : en effet, vous pourriez faire un port mapping vers le serveur d&#8217;authentification login.icq.com:5190 par exemple, mais le reste de la communication ne se fera pas car il y a ensuite tout un tas de ports dynamiques alloués qui entrent en jeu. Impossible donc.</p>
<p>La solution est le mapping dynamique. En gros, vous créez un port d&#8217;écoute (port 1080 dans la suite du texte) qui se charge de prendre toute trame réseau qui rentre telle quelle et de la « faire exécuter » depuis l&#8217;autre bout du tunnel. Ca ressemble à un proxy n&#8217;est-ce pas ? En effet, c&#8217;est bien un service que l&#8217;on utilise pour contacter n&#8217;importe quel site/port inaccessible depuis le réseau où l&#8217;on est. C&#8217;est pas beau ça ?<br />
Ca veut notamment dire que dans l&#8217;application qui doit utiliser ce « proxy », vous devez préciser que le nouveau proxy est localhost:1080 et non pas le proxy de l&#8217;entreprise.</p>
<p>Dans putty, créez un tunnel « Dynamic » sur le port 1080 par exemple :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel10.png" alt="tunnel10" title="tunnel10" width="282" height="165" class="alignnone size-full wp-image-211" /></p>
<p>Ca donne ça :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel11.png" alt="tunnel11" title="tunnel11" width="275" height="125" class="alignnone size-full wp-image-212" /></p>
<p>Et globalement, on peut donc schématiser ça comme ça :</p>
<p><img src="http://michauko.org/blog/wp-content/uploads/2009/02/tunnel12.png" alt="tunnel12" title="tunnel12" width="713" height="482" class="alignnone size-full wp-image-213" /></p>
<p>ATTENTION : une fois ce système mis en place, n&#8217;oubliez pas de dire à l&#8217;application concernée que le proxy pour sortir n&#8217;est plus le proxy de l&#8217;entreprise mais le « proxy » de type SOCKS 4 (si vous avez besoin de le préciser) situé sur localhost, port 1080 ! Pigé ?</p>
<p><strong>(MAJ 2009)</strong><br />
Si vous n&#8217;arrivez pas à faire utiliser ce proxy à votre navigateur, pourquoi ne pas installer un vrai proxy sur votre serveur relai et le mapper via un tunnel normal ? (un &laquo;&nbsp;squid&nbsp;&raquo; local à votre serveur relai fera l&#8217;affaire)</p>
<h3>3.3.3. Tunnel remote ? Ou comment exporter un serveur local (interne) vers l&#8217;extérieur</h3>
<p>Enfin, sur l&#8217;interface de putty, vous avez peut-être remarqué une fonctionnalité inexplorée jusqu&#8217;à présent : les tunnels « remote », par opposition aux tunnels « locaux ». Ca permet non pas de mapper un port local vers un couple machine/port distant mais de faire l&#8217;inverse : mapper un couple machine/port local vers un port distant (sur la machine PC ADSL). Vous ne voyez pas à quoi ça peut servir ? Lisez la suite :</p>
<p>Attention : c&#8217;est mal de faire ça <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  car ça vous permet de rendre accessible un serveur d&#8217;Intranet (par exemple) à partir de votre machine extérieure (PC ADSL) et donc potentiellement accessible à tout le monde depuis le web si vous ne faites pas attention à votre configuration réseau !</p>
<h1>4. Compléments d&#8217;informations</h1>
<h2>4.1. Limitations</h2>
<h3>4.1.1. Bande passante</h3>
<p>Gardez à l&#8217;esprit que vous faites tout passer par la machine chez vous, certainement plus lente en débit que l&#8217;accès web de l&#8217;entreprise notamment pour l&#8217;upload (le retour de communication de votre PC ADSL vers putty). Donc si vous mappez des sites web interdits, ne vous étonnez pas si ça raaaaame, surtout si votre client favori de peer-to-peer tourne plein pot&#8230;</p>
<h3>4.1.2. Jouer en réseau ?</h3>
<p>Décidemment, votre boulot vous passionne&#8230; Bon désolé, c&#8217;est pas possible. La plupart des jeux en réseaux fonctionnent en mode non connecté (UDP) et c&#8217;est pas possible de relayer de l&#8217;UDP avec cette solution. Si vous voulez quand même, cherchez des infos sur un soft qui s&#8217;appelle ZeBeDee, j&#8217;avais pas eu le temps de creuser à l&#8217;époque.</p>
<p><strong>(MAJ 2009)</strong> Sinon, pensez VPN, hamachi&#8230;</p>
<h3>4.1.3. Remarques sur la messagerie</h3>
<p>A propos du mapping vers des serveurs de messagerie, notez que les fournisseurs bloquent en général l&#8217;accès à leur propre SMTP si l&#8217;IP émettrice n&#8217;est pas sur une plage appartenant à l&#8217;opérateur. Pour éviter le spam d&#8217;inconnus. Donc évitez de passer par le SSH d&#8217;un copain ayant son accès web chez un autre fournisseur pour atteindre votre SMTP, ça risque de ne pas fonctionner. Exemple : vous voulez utiliser le SMTP de wanadoo en passant par une passerelle SSH chez Nerim.</p>
<p>Dans le même ordre d&#8217;idées, il faut en général faire du POP avant de pouvoir envoyer un mail, ça s&#8217;appelle pop before smtp me semble-t-il et c&#8217;est aussi fait pour s&#8217;assurer à peu près que l&#8217;adresse IP de l&#8217;émetteur du mail n&#8217;est pas un inconnu car il s&#8217;est authentifié par un login/password pour accéder au POP.</p>
<h2>4.2. « Légalité » de la chose</h2>
<p>Si vous avez peur qu&#8217;un gros baraqué de l&#8217;équipe réseaux débarque dans votre bureau en disant « qui c&#8217;est l&#8217;abruti qui fait du SSH ? », n&#8217;ayez pas peur.<br />
Premièrement, la connexion au serveur SSH ne se traduit que par une ligne dans les logs du proxy, une ligne du style « CONNECT votrenom.dyndns.org:443 », exactement comme si vous vous connectiez au site https de votre banque. C&#8217;est même mieux vu qu&#8217;il n&#8217;y aura qu&#8217;une ligne alors que pour un vrai site web en http(s), il y a aura une ligne par ressource (image, page web etc).<br />
Deuxièmement, au niveau volumétrie de données échangées, étudions l&#8217;exemple de la lecture de vos mails : on utilise grâce au tunnel SSH un protocole dédié à la lecture de mail et l&#8217;envoi (POP/SMTP). Ca consommera laaaaaaaargement moins de bande passante que de lire les même mails par l&#8217;interface web (bourrée de pubs par exempe). De plus, comme ça ramera moins que le chargement complet de pages web, vous mettrez moins de temps à lire vos mails.<br />
Rassuré ?<br />
Une nuance tout de même, si un psychopathe réalise qu&#8217;il s&#8217;agit de SSH sur port 443 et non de HTTPS, il devrait se poser des questions tout de même. Je n&#8217;ai pas encore rencontré de tels psychopathes.</p>
<p>Enfin, rappelez vous quand même la charte informatique que vous avez signée en rentrant dans votre entreprise.</p>
<h2>4.3. Partage de tunnels ?</h2>
<p>Si vous souhaitez faire profiter de votre tunnel un collègue qui tient absolument à suivre aussi le match de football bloqué par le proxy, regardez les options de putty/ssh pour permettr l&#8217;accès aux ports mappés depuis autre part que votre poste local. Exemple : votre collègue entrerait l&#8217;adresse ip de votre machine et un port mappé pour accéder à un site web particulier&#8230;</p>
<h2>4.4. Bug dans putty</h2>
<p>Je ne sais pas si ce bug est toujours d&#8217;actualité, mais à un moment donné, il fallait absolument mettre le tunnel dynamique en dernier dans la liste des tunnels, sinon il ne fonctionnait pas.</p>
<h2>4.5. Transfert de fichier ?</h2>
<p>Installez filezilla, il permet de faire du SFTP. Vous n&#8217;aurez pas besoin de tunnels SSH mais je tenais à signaler cet outil, libre, gratuit etc etc.<br />
Il vous suffit de déclarer le proxy de l&#8217;entreprise dans les préférences puis de créer une connexion de type SFTP (changez le port en 443) et le tour est joué.</p>
<p>Sinon, sous Windows, le produit commercial « Total Commander » permet d&#8217;utiliser votre tunnel dynamique (SOCKS 4).</p>
<h2>4.6. Méthodes alternatives</h2>
<p>Si SSH ne vous plait pas (pauvre fou), vous pouvez toujours vous renseigner sur les outils suivants : httport, httptunnel (linux only je crois). Ils font un peu le même genre de choses, mais en laaaaaaaargement moins bien.<br />
Les deux encapsulent votre trafic réseau dans des trames HTTP, c&#8217;est lourd, c&#8217;est lent etc. Le seul avantage de httport est que les éditeurs vous fournissent des serveurs (htthost) publics, donc pas besoin d&#8217;avoir un serveur relai chez vous ou chez un ami, mais ils rament, sauf si vous payez <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Quitte à mettre en place un outil pour faire relai, optez pour SSH !<br />
<strong>(MAJ 2009)</strong><br />
A noter stunnel pour faire du tunnel SSL pur (si votre admin réseau a grillé votre communication SSH sur un port SSL&#8230;<br />
<strong>(MAJ 2009)</strong><br />
Quelques liens récemment donnés par Toinator et que je n&#8217;ai pas creusé. Lui oui, c&#8217;est du lourd apparement.<br />
Un bon gros guide :<br />
<a href="http://dag.wieers.com/howto/ssh-http-tunneling/">http://dag.wieers.com/howto/ssh-http-tunneling/</a><br />
sslh : en PERL (fixme : retrouver l&#8217;url)<br />
<a href="http://www.rutschle.net/tech/sslh.shtml">sshl</a> : le même recodé en C pour raisons d&#8217;optimisations<br />
<h1>5. Remerciements</h1>
<ul>
<li>Toinator pour la relecture et quelques précisions, l&#8217;initiation à ce genre d&#8217;outils et le chapitre à venir sur le VPN over SSH, si on peut dire.
</li>
<li>Mandraxe</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2009/02/23/tunnels-tcp-via-ssh-putty-etc/feed/</wfw:commentRss>
		<slash:comments>40</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>
		<item>
		<title>Analyser (synthétiser) ses logs de proxy Squid</title>
		<link>http://michauko.org/blog/2007/04/27/analyser-synthetiser-ses-logs-de-proxy-squid/</link>
		<comments>http://michauko.org/blog/2007/04/27/analyser-synthetiser-ses-logs-de-proxy-squid/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 10:01:47 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[autres outils]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ligne de commande]]></category>
		<category><![CDATA[planet-libre.org]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/2007/04/27/analyser-synthetiser-ses-logs-de-proxy-squid/</guid>
		<description><![CDATA[Je voulais avoir, par curiosité, un top ten des sites visités par &#171;&#160;mes&#160;&#187; utilisateurs de tunnels SSH et de proxy Squid. Inutile, voyeur, et donc indispensable. Bon, dans un contexte professionnel, ça pourrait être utile, j&#8217;admets, surtout avec des utilisateurs signés sur le proxy. J&#8217;ai donc trouvé l&#8217;outil SARG (apt-get install sarg), je l&#8217;ai installé, [...]]]></description>
			<content:encoded><![CDATA[<p>Je voulais avoir, par curiosité, un top ten des sites visités par &laquo;&nbsp;mes&nbsp;&raquo; utilisateurs de tunnels SSH et de proxy Squid. Inutile, voyeur, et donc indispensable.<br />
Bon, dans un contexte professionnel, ça pourrait être utile, j&#8217;admets, surtout avec des utilisateurs signés sur le proxy.</p>
<p>J&#8217;ai donc trouvé l&#8217;outil SARG (<code>apt-get install sarg</code>), je l&#8217;ai installé, paramétré et j&#8217;ai attendu le cron.daily du matin pour obtenir un premier rapport Web. Que dalle. Juste un mail de crontab me disant &laquo;&nbsp;no entry found in squid/access.log&nbsp;&raquo; (quelque chose dans ce goût là).<br />
En effet, le packaging de l&#8217;outil SARG pose un problème : les logs squid sont analysés par SARG <strong>après</strong> la rotation quotidienne des logs Squid. Donc pas de log Squid, pas de rapport, pas de voyeurisme. Les boules !</p>
<p>Je vais donc décrire comment paramétrer grossièrement SARG et puis comment le faire tourner <strong>avant</strong> &laquo;&nbsp;logrotate&nbsp;&raquo;.<br />
<span id="more-26"></span></p>
<p><em>Au fait, c&#8217;est peut-être un bug, dans ce cas un jour ce sera corrigé. Moi j&#8217;ai constaté la chose avec SARG 2.2.3.1-1. J&#8217;ai posé la question au mainteneur du paquet. On verra bien.</em></p>
<p>Le gros du paramétrage se situe dans <code>/etc/squid/sarg.conf</code>. J&#8217;ai extrait ci-dessous les paramètres les plus importants pour bien démarrer. Dans le fichier de conf, chaque paramètre est explicité, c&#8217;est pratique :</p>
<pre>madebian:/etc/squid# egrep -v "^$|^#" sarg.conf | j_enleve_ce_qui_est_inutile
language French
access_log /var/log/squid/access.log
graphs yes
graph_days_bytes_bar_color orange
title "Squid User Access Reports"
temporary_dir /tmp
output_dir /var/www/squid-reports
resolve_ip yes
exclude_users /etc/squid/sarg.users
exclude_hosts /etc/squid/sarg.hosts
date_format e
index yes
index_tree file
mail_utility mailx
charset Latin1</pre>
<p>Ensuite, le coup de la rotation des logs qui arrive trop tôt, c&#8217;est du fait de l&#8217;ordre alphabétique, le script &laquo;&nbsp;logrotate&nbsp;&raquo; dans le répertoire <code>/etc/cron.daily/</code> arrive avant le script &laquo;&nbsp;sarg&nbsp;&raquo;. Ruse de sioux :</p>
<pre>mv /etc/cron.daily/sarg /etc/cron.daily/01sarg</pre>
<p>J&#8217;ai pas voulu mettre le script &laquo;&nbsp;sarg&nbsp;&raquo; avant le script &laquo;&nbsp;00logwatch&nbsp;&raquo;, ça m&#8217;a l&#8217;air mauvais comme idée.</p>
<p>Et le lendemain matin, à l&#8217;heure de votre cron.daily, à vous les rapports SARG.</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2007/04/27/analyser-synthetiser-ses-logs-de-proxy-squid/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

