<?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; dns</title>
	<atom:link href="http://michauko.org/blog/tag/dns/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>Exchange, outlook&#8230; dans un monde de serveurs Linux</title>
		<link>http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/</link>
		<comments>http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 08:29:36 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[bureautique]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[mails]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[agenda]]></category>
		<category><![CDATA[autodiscover]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[calendrier]]></category>
		<category><![CDATA[découverte automatique]]></category>
		<category><![CDATA[disponibilités]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[free/busy]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[srv]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/</guid>
		<description><![CDATA[Je passe sur les raisons longuement discutées (pendant environ un an) qui nous ont poussés à installer un Exchange pour son calendrier offline (pour les hommes pressés en déplacement), sur un smartphone/outlook (port de la cravate obligatoire), son outil de CRM (cravate et grosse bagnole sont de mises), etc etc. La partie e-mail reste en [...]]]></description>
			<content:encoded><![CDATA[<p>Je passe sur les raisons longuement discutées (pendant environ un an) qui nous ont poussés à installer un Exchange pour son calendrier offline (pour les hommes pressés en déplacement), sur un smartphone/outlook (port de la cravate obligatoire), son outil de CRM (cravate et grosse bagnole sont de mises), etc etc. La partie e-mail reste en Linux et la cohabitation des 2 mondes (exchange+imap linux) dans un Outlook se passera honorablement.<br />
Il y aurait tant à dire sur les solutions de contournement qu&#8217;on n&#8217;a qu&#8217;à troller dans les commentaires si vous le souhaitez.</p>
<p><strong>Avant de capituler, sachez juste que j&#8217;ai testé en long en large et en travers les solutions de synchro outlook<-> egroupware type <a href="http://www.funambol.com/">Funambol (ex Sync4j), Funambol server</a> et blablabli et je ne sais quoi d&#8217;autres généralement bien moisi. </strong>S&#8217;il fallait donner un bilan : Funambol, ça marche, mais ça se limite à remonter des créneaux horaires (pas des participants, pas de pièce jointe etc). Les autres solutions, ça vaut pas un cachou. Et du <a href="http://www.zimbra.com/">Zimbra</a> etc, c&#8217;est finalement à peine moins cher qu&#8217;un Exchange, chiffres à l&#8217;appui.</p>
<p>Voilà, maintenant qu&#8217;on ne peut plus m&#8217;accuser d&#8217;avoir déserté sans livrer bataille, je vous livre 2/3 remarques sur le fonctionnement d&#8217;Outlook 2003 et 2007, vis-à-vis d&#8217;Exchange et d&#8217;une intégration d&#8217;un Exchange dans un environnement Linux, notamment un DNS Linux (BIND9 en l&#8217;occurrence).</p>
<h3>Petite intro</h3>
<p>Ces cons de clients mail fonctionnent différemment et Exchange 2007 conserve les deux modes d&#8217;accès (pour compatibilité) à certains types de données, notamment aux données disponibilités de chacun pour planifier des réunions facilement. On trouve de la doc sur le sujet, mais c&#8217;est pas simple. Et fidèle à lui-même, Microsoft n&#8217;a pas cru bon de rendre ses applications bavardes (ie, générer des logs) et à trop vouloir simplifier l&#8217;interface utilisateur (même dans un mode de configuration manuelle), certains mécanismes sont complètement occultés et quand ça merde, l&#8217;appli ne dit rien !<br />
(Tiens j&#8217;oubliais une note positive : en Outlook 2007, l&#8217;IMAP est un peu mieux géré : on peut désigner un répertoire d&#8217;envoi sans bidouiller comme un malade&#8230;)</p>
<h3>Imaginons donc le scénario suivant</h3>
<p>- un serveur Exchange 2007 dans un domaine (forêt) autonome qui n&#8217;est pas le domaine SAMBA &laquo;&nbsp;principal&nbsp;&raquo; de notre réseau<br />
<em>(- une double maintenance d&#8217;utilisateurs dans l&#8217;Active Directory et dans l&#8217;OpenLDAP (Linux), moyennement quelques scripts, c&#8217;est tout à fait vivable.)</em><br />
- des clients Outlook 2003 et 2007 avec un compte Exchange pour le calendrier et un compte IMAP pour le mail (IMAP hébergé sur Linux)</p>
<h3>Imaginons que ça bug après une installation toute fraîche (facile hein ?)</h3>
<p>- lorsque je planifie une réunion, je ne vois pas les infos de dispo des gens alors que je peux consulter l&#8217;agenda d&#8217;un collègue s&#8217;il m&#8217;autorise (partage)</p>
<h3>La solution, après 12000 recherches et forums</h3>
<p>- Pour outlook 2003 :<br />
Disons que le serveur ait un FQDN &laquo;&nbsp;test.exchg.societe.com&nbsp;&raquo;. Le petit &laquo;&nbsp;exchq&nbsp;&raquo; dans le nom vient du nom du domaine sur lequel est installé Exchange. Donc tous les applicatifs connaissent cette machine sous ce nom complet, et pas &laquo;&nbsp;test.societe.com&nbsp;&raquo;, encore moins &laquo;&nbsp;test&nbsp;&raquo;.<br />
Manque de bol, lorsque vous déclarez votre compte Exchange dans Outlook, vous spécifiez le serveur &laquo;&nbsp;test&nbsp;&raquo; et ce tocard vous dit qu&#8217;il a trouvé et remplace votre saisie par &laquo;&nbsp;test.exchg.societe.com&nbsp;&raquo;, alors même que votre PC (faisant tourner Outlook) ne sait pas résoudre ce nom complet.<br />
De là, tout marche à peu près *sauf* l&#8217;accès aux &laquo;&nbsp;public folders&nbsp;&raquo; du serveur, donc aux infos de dispo des gens&#8230;<br />
Il suffit donc de déclarer ce nom test.exchg dans la zone &laquo;&nbsp;societe.com&nbsp;&raquo; de votre DNS bind.<br />
Et hop, tout se met à marcher.<br />
Bien sûr, si outlook avait dit dès le départ &laquo;&nbsp;cannot find test.exchg.societe.com&nbsp;&raquo;, j&#8217;aurais gagné 2 semaines&#8230;</p>
<p>- Pour Outlook 2007 :<br />
Même genre de bordel, sauf que lui, avec un nouveau procédé &laquo;&nbsp;autodiscover&nbsp;&raquo;, veut tout faire tout seul. Même souci : quand il ne trouve pas le serveur comme il le souhaite, il ne dit rien, mais ça marche mal.<br />
Avec une trace tcpdump sur le DNS (genre : <code>tcpdump -i ethxxx port 53 src host mon-ip-PC-client-outlook</code>), et avec l&#8217;aide de quelques personnes <a href="http://forums.msexchange.org/m_1800468049/mpage_1/key_/tm.htm">sur un forum bien sympa</a>, j&#8217;ai vu que ce bouffon de client cherchait deux enregistrements DNS :<br />
- l&#8217;un de type A pour chercher autodiscover.masociete.com<br />
- l&#8217;autre de type SRV, nommé _autodiscover._tcp.masociete.com<br />
Une remarque, pour être sûr de voir la requête lors du tcpdump, videz votre cache DNS du poste client Windows avant :</p>
<pre>C:\Documents and Settings\toto>ipconfig /flushdns

Configuration IP de Windows

Cache de résolution DNS vidé.</pre>
<p>Enfin, pour régler le problème, vous créerez donc 2 entrées dans votre DNS, zone masociete.com :</p>
<pre>autodiscover    A       10.x.y.z ;serveur exchange
_autodiscover._tcp      1D IN SRV 0 1 443       test.exchg ;serveur exchange</pre>
<p>Et là, &laquo;&nbsp;par magie&nbsp;&raquo;, vous voyez les infos de dispo des gens lors d&#8217;une réservation de réunion.<br />
C&#8217;est pas bioutifoule ça ?</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ressusciter de l&#8217;historique (Apache) pour Webalizer</title>
		<link>http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/</link>
		<comments>http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 20:06:31 +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>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[flood]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[statistiques]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[webalizer]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/</guid>
		<description><![CDATA[Derrière ce titre qui veut tout et rien dire, un besoin réel. Récemment, sur un site web avec une audience non négligeable (sans être démentielle : 70 000 hits hebdo), j&#8217;ai eu à mettre en place un outil de statistiques vite fait bien fait. J&#8217;ai choisi webalizer car je connaissais et car ça se met [...]]]></description>
			<content:encoded><![CDATA[<p>Derrière ce titre qui veut tout et rien dire, un besoin réel.</p>
<p>Récemment, sur un site web avec une audience non négligeable (sans être démentielle : 70 000 hits hebdo), j&#8217;ai eu à mettre en place un outil de statistiques vite fait bien fait. J&#8217;ai choisi <a href="http://www.webalizer.org/">webalizer</a> car je connaissais et car ça se met en place en 3 minutes et que ça sort mine de rien déjà pas mal d&#8217;infos (volume de hits, pays d&#8217;origine, mots-clefs, référant etc). Et c&#8217;est mieux que &laquo;&nbsp;pas de stats du tout&nbsp;&raquo; dans un premier temps.</p>
<p>Il y avait deux trucs tout bêtes dans l&#8217;histoire : j&#8217;avais un an de logs non &laquo;&nbsp;synthétisés&nbsp;&raquo; par webalizer. Il a donc fallu les faire passer dans webalizer pour rattraper l&#8217;historique. Et deuxièmement, c&#8217;est à ce moment là que j&#8217;ai vu que le <code>HostnameLookups</code> était à Off dans la conf <code>/etc/apache2/apache2.conf</code>. <strong>Donc les logs ne contenaient que les IP, pas les hostname</strong>. Donc pas de statistiques par pays dans Webalizer. Dommage pour une boîte internationale qui veut voir un peu où en est sa notoriété sur la planète&#8230;</p>
<p>J&#8217;ai donc remédié à tout ça. Cet article présente donc l&#8217;installation de la conf rapide de Webalizer (et Apache2 en conséquence) et donne une ligne de commande pour récupérer l&#8217;année d&#8217;historique (apache2 garde par défaut 52 fichiers de logs en rotation hebdo) et enfin, le plus marrant, mouliner sur les logs pour retrouver les <em>hostnames</em> correspondants aux IP&#8230; (en espérant que mon hébergeur ne me flingue pas en voyant le nombre de requête DNS que je crache en ce moment même <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Je lui ai posé la question, ne négligez pas ce point, ce serait bête de se faire des ennemis)<span id="more-111"></span></p>
<h3>Installation et conf Webalizer</h3>
<p>Sous Debian, un simple :</p>
<pre>aptitude install webalizer</pre>
<p>L&#8217;outil de conf pose 2/3 questions assez simples à répondre, comme votre nom de serveur web, le nom du fichier &laquo;&nbsp;logrotaté&nbsp;&raquo;, typiquement <code>/var/log/apache2/access.log.1</code> (et pas <code>/var/log/apache2/access.log</code>).<br />
De toute manière, on va repasser sur le fichier de conf tout de suite après l&#8217;install. Sachez que &laquo;&nbsp;webalizer&nbsp;&raquo; fait ses calculs via la <code>cron.daily</code>, au petit matin (par défaut sur Debian) quand vous dormez.<br />
Je mets 2/3 commentaires sur certains paramètres ; voyons ce que donne <code>egrep -v "^$|^#" /etc/webalizer/webalizer.conf</code> :</p>
<pre>LogFile         /var/log/apache2/access.log.1
OutputDir       /var/www/webalizer # A vous de voir. Pensez à un htaccess si besoin...
Incremental     yes
ReportTitle     Statistiques d'utilisation de mon serveur web
HostName        toto.com
TopReferrers    50
TopAgents       30
HideSite        *toto
HideSite        *toto.com
HideReferrer    www.toto.com/ # sinon vous passez votre temps à votre les mouvements interne au site
HideReferrer    toto.com/ # idem
HideReferrer    Direct Request
HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.ra
HideURL         *.png
GroupURL        /cgi-bin/*
GroupAgent      MSIE
HideAgent       MSIE*
GroupAgent      Mozilla
HideAgent       Mozilla*
GroupAgent      Lynx
HideAgent       Lynx*
GroupAgent      Konqueror
HideAgent       Konqueror*
GroupAgent      Opera
HideAgent       Opera*
IgnoreSite      localhost # je tunnele l'accès à mon propre site et je suis un gros visiteur de mon propre site
IgnoreReferrer  localhost # idem
MangleAgents    4</pre>
<p>Dans la conf Apache2 <code>/etc/apache2/apache2.conf</code>, pensez à activer le paramètre <code>HostnameLookups</code> si vous voulez avoir un semblant de trace des pays rendant visite à votre site web (et rechargez Apache).</p>
<h3>Chargement de l&#8217;historique</h3>
<p>Il faut décompresser les logs Apache puis les importer un à un dans webalizer.Simple.<br />
En considérant que vous avez copié vos fichiers access.log.*.gz dans /tmp, vous faites ceci :</p>
<pre>for i in access*gz
do
        gunzip $i
done</pre>
<p>Et ensuite, lancement de l&#8217;import :</p>
<pre>for i in `./seq_reverse.py`
do
        webalizer access.log.$i
done</pre>
<p>Je ne sais plus si on peut faire un <code>seq</code> sortant les chiffres de 1 à 52 dans l&#8217;ordre inverse, <a href='http://michauko.org/blog/wp-content/uploads/2008/03/seq_reverse.py' title='seq -r ça n’existe pas ?'>alors j&#8217;ai pondu un script python pour le faire</a>.</p>
<p>A la fin, si votre répertoire <code>/var/www/webalizer</code> est blindé de fichiers, c&#8217;est bon. Vous pouvez voir vos stats sur l&#8217;année écoulée.</p>
<h3>Retrouver les hostnames</h3>
<p>C&#8217;est la partie amusante (et bourrin). Si vous n&#8217;aviez pas les hostnames des IP visitant votre serveur web, vos logs Apache ressemblait à ça :</p>
<pre>86.x.y.190 - - [15/Mar/2007:06:25:25 +0100] "GET /favicon.ico HTTP/1.1" 200 2238 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2"</pre>
<p>Si vous aviez activé le lookup dans Apache, vos logs ressemblent partiellement à ce qu&#8217;il y a ci-dessus (pour les serveurs n&#8217;ayant pas de nom) et généralement, ils contiennent plutôt ça :</p>
<pre>truc.machin.com - - [02/Mar/2008:06:26:27 +0100] "GET / HTTP/1.1" 200 27488 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"</pre>
<p>L&#8217;idée est de retrouver les noms lorsque vous n&#8217;avez que les IP. J&#8217;ai écrit un script Python pour ça (excusez-moi, je débute en Python). <a href='http://michauko.org/blog/wp-content/uploads/2008/03/retrouve_hostname.py' title='Script Python pour retrouver les hostnames à partir des IP d’un log Apache2'>Script Python pour retrouver les hostnames à partir des IP d’un log Apache2</a></p>
<p>Et donc à la fin, vous envoyez la purée :</p>
<pre>for i in /tmp/access.log.*
do
        ./retrouve_hostname.py $i
done</pre>
<p>Attention, c&#8217;est bourrin, faites le sur un petit fichier d&#8217;abord. Le script vous génère un fichier <code>$i.new</code>, à vous de vider vos statistiques webalizer (<code>rm /var/www/webalizer/*</code>) ensuite et de relancer la moulinette d&#8217;import sur ces nouveaux fichiers.</p>
<p>walaaaa, c&#8217;est tout pour aujourd&#8217;hui.</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

