Archives par étiquette : dns

Catch-all DNS, VirtualHost et on fait mumuse avec les noms de sous-domaines

Salut lecteur,

Un bail que je n’ai rien écrit sur ce blog, la faute à un petit projet perso qui me prend un peu de temps chez moi, semble-t-il.

L’idée

Ceci dit, je voulais laisser une trace de cette manip’ qui consiste à autoriser n’importe quel nom de sous-domaine d’un domaine que vous possédez, exemple le fameux « mon_domaine.com » en ayant la possibilité d’envoyer vers un site ou un autre (au sens, un VirtualHost/DocumentRoot ou un autre) suivant le nom de sous-domaine appelé, la liste de ces sous-domaines étant potentiellement illimitée.

Bon, OK, pour la formulation, c’est pas forcément limpide. Un exemple concret : mon_domaine.com est Continuer la lecture

Exchange, outlook… dans un monde de serveurs Linux

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.
Il y aurait tant à dire sur les solutions de contournement qu’on n’a qu’à troller dans les commentaires si vous le souhaitez.

Avant de capituler, sachez juste que j’ai testé en long en large et en travers les solutions de synchro outlook<-> egroupware type Funambol (ex Sync4j), Funambol server et blablabli et je ne sais quoi d’autres généralement bien moisi. S’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 Zimbra etc, c’est finalement à peine moins cher qu’un Exchange, chiffres à l’appui.

Voilà, maintenant qu’on ne peut plus m’accuser d’avoir déserté sans livrer bataille, je vous livre 2/3 remarques sur le fonctionnement d’Outlook 2003 et 2007, vis-à-vis d’Exchange et d’une intégration d’un Exchange dans un environnement Linux, notamment un DNS Linux (BIND9 en l’occurrence).

Petite intro

Ces cons de clients mail fonctionnent différemment et Exchange 2007 conserve les deux modes d’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’est pas simple. Et fidèle à lui-même, Microsoft n’a pas cru bon de rendre ses applications bavardes (ie, générer des logs) et à trop vouloir simplifier l’interface utilisateur (même dans un mode de configuration manuelle), certains mécanismes sont complètement occultés et quand ça merde, l’appli ne dit rien !
(Tiens j’oubliais une note positive : en Outlook 2007, l’IMAP est un peu mieux géré : on peut désigner un répertoire d’envoi sans bidouiller comme un malade…)

Imaginons donc le scénario suivant

– un serveur Exchange 2007 dans un domaine (forêt) autonome qui n’est pas le domaine SAMBA « principal » de notre réseau
(- une double maintenance d’utilisateurs dans l’Active Directory et dans l’OpenLDAP (Linux), moyennement quelques scripts, c’est tout à fait vivable.)
– 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)

Imaginons que ça bug après une installation toute fraîche (facile hein ?)

– lorsque je planifie une réunion, je ne vois pas les infos de dispo des gens alors que je peux consulter l’agenda d’un collègue s’il m’autorise (partage)

La solution, après 12000 recherches et forums

– Pour outlook 2003 :
Disons que le serveur ait un FQDN « test.exchg.societe.com ». Le petit « exchq » 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 « test.societe.com », encore moins « test ».
Manque de bol, lorsque vous déclarez votre compte Exchange dans Outlook, vous spécifiez le serveur « test » et ce tocard vous dit qu’il a trouvé et remplace votre saisie par « test.exchg.societe.com », alors même que votre PC (faisant tourner Outlook) ne sait pas résoudre ce nom complet.
De là, tout marche à peu près *sauf* l’accès aux « public folders » du serveur, donc aux infos de dispo des gens…
Il suffit donc de déclarer ce nom test.exchg dans la zone « societe.com » de votre DNS bind.
Et hop, tout se met à marcher.
Bien sûr, si outlook avait dit dès le départ « cannot find test.exchg.societe.com », j’aurais gagné 2 semaines…

– Pour Outlook 2007 :
Même genre de bordel, sauf que lui, avec un nouveau procédé « autodiscover », 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.
Avec une trace tcpdump sur le DNS (genre : tcpdump -i ethxxx port 53 src host mon-ip-PC-client-outlook), et avec l’aide de quelques personnes sur un forum bien sympa, j’ai vu que ce bouffon de client cherchait deux enregistrements DNS :
– l’un de type A pour chercher autodiscover.masociete.com
– l’autre de type SRV, nommé _autodiscover._tcp.masociete.com
Une remarque, pour être sûr de voir la requête lors du tcpdump, videz votre cache DNS du poste client Windows avant :

C:\Documents and Settings\toto>ipconfig /flushdns

Configuration IP de Windows

Cache de résolution DNS vidé.

Enfin, pour régler le problème, vous créerez donc 2 entrées dans votre DNS, zone masociete.com :

autodiscover    A       10.x.y.z ;serveur exchange
_autodiscover._tcp      1D IN SRV 0 1 443       test.exchg ;serveur exchange

Et là, « par magie », vous voyez les infos de dispo des gens lors d’une réservation de réunion.
C’est pas bioutifoule ça ?

Ressusciter de l’historique (Apache) pour Webalizer

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’ai eu à mettre en place un outil de statistiques vite fait bien fait. J’ai choisi webalizer 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’infos (volume de hits, pays d’origine, mots-clefs, référant etc). Et c’est mieux que « pas de stats du tout » dans un premier temps.

Il y avait deux trucs tout bêtes dans l’histoire : j’avais un an de logs non « synthétisés » par webalizer. Il a donc fallu les faire passer dans webalizer pour rattraper l’historique. Et deuxièmement, c’est à ce moment là que j’ai vu que le HostnameLookups était à Off dans la conf /etc/apache2/apache2.conf. Donc les logs ne contenaient que les IP, pas les hostname. 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…

J’ai donc remédié à tout ça. Cet article présente donc l’installation de la conf rapide de Webalizer (et Apache2 en conséquence) et donne une ligne de commande pour récupérer l’année d’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 hostnames correspondants aux IP… (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 😀 Je lui ai posé la question, ne négligez pas ce point, ce serait bête de se faire des ennemis) Continuer la lecture