<?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>Yet Another Sysadmin Blog ...</title>
	<atom:link href="http://blog.garnett.fr/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.garnett.fr</link>
	<description>[ Administration des systèmes et réseaux &#124; sécurité informatique ]</description>
	<lastBuildDate>Mon, 06 Sep 2010 22:16:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Theory Of A Dead Man &#8211; Hate My Life</title>
		<link>http://blog.garnett.fr/?p=552</link>
		<comments>http://blog.garnett.fr/?p=552#comments</comments>
		<pubDate>Mon, 06 Sep 2010 22:16:00 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[Musique]]></category>
		<category><![CDATA[Rock]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=552</guid>
		<description><![CDATA[Finallement j&#8217;aurais du appeller cette section les suggestions de Pierrot ^^]]></description>
			<content:encoded><![CDATA[<p>Finallement j&#8217;aurais du appeller cette section les suggestions de Pierrot ^^</p>
<p><object width="420" height="255"><param name="movie" value="http://www.youtube.com/v/A95rn7Tgl30?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/A95rn7Tgl30?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="255"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=552</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blacklist de destinataire dans Postfix</title>
		<link>http://blog.garnett.fr/?p=541</link>
		<comments>http://blog.garnett.fr/?p=541#comments</comments>
		<pubDate>Mon, 06 Sep 2010 09:07:42 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[AdminSys]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[blacklist]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[recipient]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=541</guid>
		<description><![CDATA[Déjà pourquoi faire ça ? Nous avons eu un phishing assez méchant qui demande les identifiants / mots de passes au niveau de l&#8217;Université. Le truc est bien ficelé, très bien écrit et avec des domaines plausibles. Bon, le phishing est donc passé, que faire ? A part blacklister en sortie rien. On peut agir [...]]]></description>
			<content:encoded><![CDATA[<p>Déjà pourquoi faire ça ? Nous avons eu un phishing assez méchant qui demande les identifiants / mots de passes au niveau de l&#8217;Université. Le truc est bien ficelé, très bien écrit et avec des domaines plausibles. Bon, le phishing est donc passé, que faire ? A part blacklister en sortie rien. On peut agir à deux niveaux : IP en blacklistant le MX du domaine de info.al au niveau du pare-feu. L&#8217;avantage est que c&#8217;est simple à faire et qu&#8217;en une seule manipulation on touche tout le réseau (du moins ce qui est dans le périmètre du pare-feu). L&#8217;inconvenient c&#8217;est qu&#8217;une requêtes MX sur le domaine sort un serveur hotmail donc il faut oublier cette méthode. Nous allons donc travailler au niveau applicatif SMTP en blacklistant le destinataire.</p>
<p>On génère une map de hash /etc/postfix/block_recipient :</p>

<div class="wp_syntax"><div class="code"><pre class="text">notice@info.al  REJECT  mail bloque</pre></div></div>

<p>Dans le main.cf :</p>

<div class="wp_syntax"><div class="code"><pre class="text">smtpd_recipient_restrictions =
      check_recipient_access hash:/etc/postfix/block_recipient,
      ...</pre></div></div>

<p>On recrée la map :<br />
<code># postmap /etc/postfix/block_recipient</code></p>
<p>On relance Postfix :<br />
<code># /etc/init.d/postfix reload</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=541</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le jail express</title>
		<link>http://blog.garnett.fr/?p=535</link>
		<comments>http://blog.garnett.fr/?p=535#comments</comments>
		<pubDate>Mon, 30 Aug 2010 14:21:33 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[AdminSys]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[install.sh]]></category>
		<category><![CDATA[jail]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=535</guid>
		<description><![CDATA[Ou comment monter un jail en 2 &#8211; 2. On commence par topper une ISO de FreeBSD sur le host (système de base). Supposons que nous voulions installer un jail nommé &#8220;jigar&#8221; dans /jail/dtc. On va y mettre deux chose : le système de base FreeBi et les pages de man (une fois loggué dans [...]]]></description>
			<content:encoded><![CDATA[<p>Ou comment monter un jail en 2 &#8211; 2. On commence par topper une ISO de FreeBSD sur le host (système de base). Supposons que nous voulions installer un jail nommé &#8220;jigar&#8221; dans /jail/dtc. On va y mettre deux chose : le système de base FreeBi et les pages de man (une fois loggué dans le jail, c&#8217;est pratique de les avoir sous la main). Commencons par monter l&#8217;ISO :<br />
<code><br />
mdconfig -a -t vnode -f ./FreeBSD-8.1-RELEASE-amd64-disc1.iso<br />
</code><br />
Qui doit renvoyer un device (chez moi md0)<br />
<code><br />
mount -t cd9660 /dev/md0 /mnt/iso<br />
</code><br />
Mon shell root par défaut est sh (j&#8217;aime pô csh, je sais pas m&#8217;en servir ^^). On doit se placer dans le &#8220;set&#8221; a installer (base et manpages pour nous) :<br />
<code><br />
cd /mnt/iso/8.1-RELEASE/base<br />
DESTDIR=/jail/dtc ./install.sh</p>
<p>cd /mnt/iso/8.1-RELEASE/manpages<br />
DESTDIR=/jail/dtc ./install.sh<br />
</code><br />
Après c&#8217;est du classique, configurons le rc.conf du host :</p>

<div class="wp_syntax"><div class="code"><pre class="text">#Alias avec l'ip du jail sur l'interface
ifconfig_igb0_alias0=&quot;inet &lt;ip_host&gt;&quot;
syslogd_flags=&quot;-s -s&quot;
sendmail_enable=&quot;NO&quot;
inetd_flags=&quot;-wW -a &lt;ip_host&gt;&quot;
rpcbind_enable=&quot;NO&quot;
&nbsp;
jail_enable=&quot;YES&quot;
jail_list=&quot;jigar&quot;
jail_set_hostname_allow=&quot;NO&quot;
jail_socket_unixiproute_only=&quot;YES&quot;
jail_procfs_enable=&quot;NO&quot;
jail_devfs_enable=&quot;YES&quot;
jail_exec_start=&quot;/bin/sh /etc/rc&quot;
jail_devfs_ruleset=&quot;devfsrules_jail&quot;
&nbsp;
jail_nausica_flags=&quot;-n jigar&quot;
jail_nausica_rootdir=&quot;/jail/dtc&quot;
jail_nausica_hostname=&quot;jigar.garnett.fr&quot;
jail_nausica_ip=&quot;ip_jigar&quot;</pre></div></div>

<p>Celui de &#8220;jigar&#8221; (/jail/dtc/etc/rc.conf) :</p>

<div class="wp_syntax"><div class="code"><pre class="text">hostname=&quot;jigar.garnett.fr&quot;
network_interfaces=&quot;&quot;
keymap=&quot;fr.iso.acc&quot;
sshd_enable=&quot;YES&quot;
syslogd_flags=&quot;-s -s&quot;
rpcbind_enable=&quot;NO&quot;</pre></div></div>

<p>Quelques post-actions :<br />
<code><br />
touch /jail/dtc/etc/fstab<br />
cp /etc/resolv.conf /jail/dtc/etc/<br />
cp /jail/dtc/usr/share/zoneinfo/Europe/Paris /jail/dtc/etc/localtime<br />
chroot /jail/nausica /bin/sh<br />
#passwd<br />
#exit<br />
</code></p>
<p>Et voila, c&#8217;est prêt !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=535</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Saliva &#8211; Click Click Boom</title>
		<link>http://blog.garnett.fr/?p=531</link>
		<comments>http://blog.garnett.fr/?p=531#comments</comments>
		<pubDate>Mon, 23 Aug 2010 15:25:41 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[Metal]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=531</guid>
		<description><![CDATA[Pierrot again !]]></description>
			<content:encoded><![CDATA[<p>Pierrot again !</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/YfjTZLxekig?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/YfjTZLxekig?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=531</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Staind &#8211; For you</title>
		<link>http://blog.garnett.fr/?p=524</link>
		<comments>http://blog.garnett.fr/?p=524#comments</comments>
		<pubDate>Sat, 21 Aug 2010 12:24:02 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[Metal]]></category>
		<category><![CDATA[Musique]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=524</guid>
		<description><![CDATA[Hop, premier post dans la catégorie musique ! Une suggestion de Pierrot (qui risque d&#8217;être un contributeur assez récurrent de cette catégorie ^^) : Staind &#8220;For you&#8221;.]]></description>
			<content:encoded><![CDATA[<p>Hop, premier post dans la catégorie musique ! Une suggestion de Pierrot (qui risque d&#8217;être un contributeur assez récurrent de cette catégorie ^^) : Staind &#8220;For you&#8221;.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/U_RTlliIlug?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/U_RTlliIlug?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=524</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nouvelle catégorie : musique</title>
		<link>http://blog.garnett.fr/?p=522</link>
		<comments>http://blog.garnett.fr/?p=522#comments</comments>
		<pubDate>Sat, 21 Aug 2010 12:19:18 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[Musique]]></category>
		<category><![CDATA[MyLife]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=522</guid>
		<description><![CDATA[Une nouvelle catégorie fait son apparition &#8220;Musique&#8221;. N&#8217;étant moi-même pas du tout musicien (et encore moins à la pointe des courants musicaux) cette catégorie me servira à centraliser les trucs que mes amis me font découvrir.]]></description>
			<content:encoded><![CDATA[<p>Une nouvelle catégorie fait son apparition &#8220;Musique&#8221;. N&#8217;étant moi-même pas du tout musicien (et encore moins à la pointe des courants musicaux) cette catégorie me servira à centraliser les trucs que mes amis me font découvrir.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=522</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beck</title>
		<link>http://blog.garnett.fr/?p=515</link>
		<comments>http://blog.garnett.fr/?p=515#comments</comments>
		<pubDate>Sun, 15 Aug 2010 13:05:50 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[Manga]]></category>
		<category><![CDATA[Beck]]></category>
		<category><![CDATA[MCS]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=515</guid>
		<description><![CDATA[J&#8217;ai profité des (courtes) vacances pour me faire l&#8217;integrale de Beck, un manga sur le rock. J&#8217;avais vu l&#8217;animé qui m&#8217;avait laissé un bon souvenir notamment avec une superbe bande son. Par contre cet animé s&#8217;arrète environ au tome 10 du manga. Ayant été un peu déçu par la fin de l&#8217;animé, je me suis [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.garnett.fr/wp-content/uploads/2010/08/beck34fr.jpg"><img src="http://blog.garnett.fr/wp-content/uploads/2010/08/beck34fr.jpg" alt="" title="beck34fr" width="100" height="142" class="alignleft size-full wp-image-514" /></a>J&#8217;ai profité des (courtes) vacances pour me faire l&#8217;integrale de Beck, un manga sur le rock. J&#8217;avais vu l&#8217;animé qui m&#8217;avait laissé un bon souvenir notamment avec une superbe bande son. Par contre cet animé s&#8217;arrète environ au tome 10 du manga. Ayant été un peu déçu par la fin de l&#8217;animé, je me suis donc rué sur le manga qui compte 34 tomes (autant dire qu&#8217;il se passe des choses après la &#8220;fin&#8221; de l&#8217;animé). On suit donc durant 34 tomes l&#8217;évolution du groupe Beck ou Mongolian Chop Squad (MCS) composé de Chiba (chant), Koyuki (chant / guitare), Taira (basse), Kyosuke (guitare) et Saku (batterie). Et on s&#8217;attache énormement à cette joyeuse bande. A mon avis c&#8217;est ce qui fait la force de ce manga (au dela de l&#8217;univers musical très fouillé) : les liens entre les différents membres du groupe. On ne sait jamais vraiment comment ça va finir pour eux, l&#8217;auteur n&#8217;hésite pas à maltraiter les héros. Bref ce manga est a mon avis un &#8220;must&#8221; à écouter en musique !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=515</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIMP my Amavisd-new</title>
		<link>http://blog.garnett.fr/?p=504</link>
		<comments>http://blog.garnett.fr/?p=504#comments</comments>
		<pubDate>Thu, 29 Jul 2010 11:27:56 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[AdminSys]]></category>
		<category><![CDATA[Amavis]]></category>
		<category><![CDATA[Amavisd-new]]></category>
		<category><![CDATA[max_servers]]></category>
		<category><![CDATA[max_use]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=504</guid>
		<description><![CDATA[Sur des serveurs de messagerie un peu chargés le message suivant est apparu dans les logs : Jul 29 11:18:39 mailhost postfix/error[3799]: 10F9BC0318: to=&#60;nico@garnett.fr&#62;, relay=none, delay=98766, delays=98761/4.9/0/0.08, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused) La raison en est simple. Une autre erreur m&#8217;a mis sur la voie : Jul 29 11:17:20 mailhost [...]]]></description>
			<content:encoded><![CDATA[<p>Sur des serveurs de messagerie un peu chargés le message suivant est apparu dans les logs :</p>

<div class="wp_syntax"><div class="code"><pre class="text">Jul 29 11:18:39 mailhost postfix/error[3799]: 10F9BC0318: to=&lt;nico@garnett.fr&gt;,
relay=none, delay=98766, delays=98761/4.9/0/0.08, dsn=4.4.1, status=deferred
(delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024:
Connection refused)</pre></div></div>

<p>La raison en est simple. Une autre erreur m&#8217;a mis sur la voie :</p>

<div class="wp_syntax"><div class="code"><pre class="text">Jul 29 11:17:20 mailhost postfix/qmgr[1416]: warning: you may need to increase
the master.cf amavis process limit</pre></div></div>

<p>Il faut donc tweaker un peu le Amavis pour faire ne sorte d&#8217;ajuster le nombre de consomateur (file d&#8217;attente de mails en attente de traitement) au producteur (service amavisd-new).<br />
Dans le fichier /etc/postfix/master.cf :</p>

<div class="wp_syntax"><div class="code"><pre class="text">amavis    unix  -       -       -       -       8       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o max_use=20</pre></div></div>

<p>On fixe le maxproc à 8 (cette valeur doit être synchronisé avec le nombre de processus Amavisd forkés au lancement du service). On en profite pour coller un max_use à 20. Le paramètre max_use étant le nombre de fois que Postfix peut réutiliser l&#8217;instance d&#8217;un service. Pour la valeur 20, un explication limpide est disponible <a href="http://archives.neohapsis.com/archives/postfix/2004-09/2092.html" target="blank">ici</a>.</p>
<p>En parallèle, on colle dans le /etc/amavis/conf.d/50-user :</p>

<div class="wp_syntax"><div class="code"><pre class="text">$max_servers = 8;</pre></div></div>

<p>Pour être cohérent avec le maxproc de Amavis dans le master.cf.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=504</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RC4-HMAC et cross-realm KDC Heimdal / AD</title>
		<link>http://blog.garnett.fr/?p=493</link>
		<comments>http://blog.garnett.fr/?p=493#comments</comments>
		<pubDate>Wed, 28 Jul 2010 13:46:19 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[AdminSys]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[Cross-realm]]></category>
		<category><![CDATA[heimdal]]></category>
		<category><![CDATA[KDC]]></category>
		<category><![CDATA[RC4]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=493</guid>
		<description><![CDATA[Voila un petit moment que j&#8217;essaie de mettre en place un cross-realm en virant le DES. Mon KDC de test est un KDC Heimdal installé par les paquets sur une Debian Squeeze. Windows 2003 SP2 gère le RC4-HMAC pour le principal d&#8217;approbation (le fameux krgtgt/NTDOMAIN@UNIXDOMAIN). Par défaut, Heimdal fait bien les choses. Un principal est [...]]]></description>
			<content:encoded><![CDATA[<p>Voila un petit moment que j&#8217;essaie de mettre en place un cross-realm en virant le DES. Mon KDC de test est un KDC Heimdal installé par les paquets sur une Debian Squeeze. Windows 2003 SP2 gère le RC4-HMAC pour le principal d&#8217;approbation (le fameux krgtgt/NTDOMAIN@UNIXDOMAIN). Par défaut, Heimdal fait bien les choses. Un principal est crée avec trois enctypes : aes256, des3 et arcfour. Pas de simple DES : cool.</p>
<p><code>root@kdc:~# kadmin -l list -l nico</code></p>

<div class="wp_syntax"><div class="code"><pre class="text">            Principal: nico@GARNETT.FR
    Principal expires: never
     Password expires: never
 Last password change: never
      Max ticket life: 1 day
   Max renewable life: 1 week
                 Kvno: 2
                Mkvno: unknown
Last successful login: never
    Last failed login: never
   Failed login count: 0
        Last modified: never
             Modifier: unknown
           Attributes: 
             Keytypes: aes256-cts-hmac-sha1-96(pw-salt),des3-cbc-sha1(pw-salt),
                            arcfour-hmac-md5(pw-salt)
          PK-INIT ACL: 
              Aliases:</pre></div></div>

<p>Côté Windows 2003 SP2, on crée une relation d&#8217;approbation transitive unilatérale (clic clic dans l&#8217;interface) et on fixe un mot de passe pour le principal crée dans le KDC Active Directory. On déclare ensuite le realm UNIX via la commande ksetup :</p>
<p><code>ksetup /setdomain GARNETT.FR<br />
ksetup /addkdc GARNETT.FR kdc.garnett.fr</code></p>
<p>On notera que l&#8217;on pourrait ajouter les informations de localisation du kdc directement dans la zone DNS, ca serait plus simple. Dernière étape, il faut spécifier au KDC AD que l&#8217;enctype par défaut pour l&#8217;approbation c&#8217;est du RC4 :</p>
<p><code>ktpass /MITRealmName GARNETT.FR /TrustEncryp RC4</code></p>
<p>Côté client XP, il faut évidemment l&#8217;ajouter au domaine AD. Ensuite de la même manière que sur le KDC AD, on doit déclarer le realm UNIX :</p>
<p><code>ksetup /setdomain GARNETT.FR<br />
ksetup /addkdc GARNETT.FR kdc.garnett.fr</code></p>
<p>A l&#8217;authentification du client XP (avec son principal et son mot de passe UNIX sur le domaine Kerberos UNIX), on doit voir ça dans les logs :</p>

<div class="wp_syntax"><div class="code"><pre class="text">2010-07-28T15:42:22 Client supported enctypes: arcfour-hmac-md5,
using arcfour-hmac-md5/aes256-cts-hmac-sha1-96</pre></div></div>

<p>Et voila, l&#8217;algorithme minimal est bien RC4-HMAC ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=493</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchronisation LDAP/Kerberos (Heimdal)</title>
		<link>http://blog.garnett.fr/?p=474</link>
		<comments>http://blog.garnett.fr/?p=474#comments</comments>
		<pubDate>Mon, 26 Jul 2010 16:27:13 +0000</pubDate>
		<dc:creator>garnett</dc:creator>
				<category><![CDATA[AdminSys]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[heimdal]]></category>
		<category><![CDATA[kerberos]]></category>
		<category><![CDATA[smbk5pwd]]></category>
		<category><![CDATA[smbkrb5pwd]]></category>

		<guid isPermaLink="false">http://blog.garnett.fr/?p=474</guid>
		<description><![CDATA[Petit point sur la synchronisation LDAP/Kerberos (cad du champ userPassword et des clés du KDC). J&#8217;ai décidé de faire ça avec l&#8217;overlay smbk5pwd fourni dans les contribution d&#8217;OpenLDAP. Cet overlay met à jour les clés (et eventuellement les empreintes NTLM et LM) en même que le champs userPassword lors d&#8217;une requête de changment de mot [...]]]></description>
			<content:encoded><![CDATA[<p>Petit point sur la synchronisation LDAP/Kerberos (cad du champ userPassword et des clés du KDC). J&#8217;ai décidé de faire ça avec l&#8217;overlay smbk5pwd fourni dans les contribution d&#8217;OpenLDAP. Cet overlay met à jour les clés (et eventuellement les empreintes NTLM et LM) en même que le champs userPassword lors d&#8217;une requête de changment de mot de passe (par exemple via ldappasswd). Cependant il faut faire face à plusieurs contraintes :<br />
- Cet overlay ne marche que avec un KDC Heimdal. Un autre overlay qui interagit avec kadmind nommé smbkrb5pwd est disponible. Il est donc utilisable avec MIT et Heimdal mais n&#8217;est pas encore prêt pour la production.<br />
- Les attributs Kerberos pour LDAP doivent être accolés à la feuille. On ne peut pas avoir une OU kerberos ou on stock les principals dedans. En effet, l&#8217;overlay regarde pour quelle feuille on demande le changement de mot de passe, ensuite il regarde si c&#8217;est un objet de type krb5KDCEntry et alors il met à jour les clés.<br />
- Le KDC maître doit être sur le même machine que slapd car la communication se fait via un socket local (ldapi).</p>
<p><strong>1. Installation de l&#8217;over-laid</strong></p>
<p>On récupere les sources de slapd (synchronisées avec la version courante su paquet que l&#8217;on a installé) :<br />
<code>cd /usr/local/src<br />
aptitude build-dep slapd</code></p>
<p>On se place dans les sources :<br />
<code>cd openldap-2.4.17<br />
./configure<br />
make depends<br />
make</code></p>
<p>On installe évidement pas slapd, on va juste compiler l&#8217;overlay :<br />
<code>cd contrib/slapd-modules/smbk5pwd<br />
aptitude install heimdal-dev<br />
make</code></p>
<p>Note : il faut faire quelques petits &#8216;ln&#8217; pour que ça passe :<br />
<code>ln -s /usr/lib/libldap_r-2.4.so.2 /usr/lib/libldap_r.so<br />
ln -s /usr/lib/liblber-2.4.so.2 /usr/lib/liblber.so<br />
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so</code></p>
<p>Enfin, on déplace le contenu de .libs vers /usr/lib/ldap (endroit contenant les modules / overlays de slapd, du moins sous Debian).<br />
<code>mv .libs/* /usr/lib/ldap/</code></p>
<p><strong>2. Configuration de slapd</strong></p>
<p>Hypothèses :<br />
- Mes utilisateurs sont stockés dans la branche ou=people,dc=garnett,dc=fr.<br />
- Ils sont identifiés par un attribut &#8216;uid&#8217; contenant leur matricule.</p>
<p>Pour activer l&#8217;overlay :</p>

<div class="wp_syntax"><div class="code"><pre class="text">include /etc/ldap/schema/hdb.schema
include /etc/ldap/schema/samba.schema
moduleload smbk5pwd
...
database hdb
...
overlay smbk5pwd</pre></div></div>

<p>Et ensuite quelques ACLs l&#8217;idée est de permettre l&#8217;accés en écriture au clés (même pas aux attributs Kerberos car ils sont ajoutés par une autre moulinette) :</p>

<div class="wp_syntax"><div class="code"><pre class="text">access to dn.base=&quot;ou=people,dc=garnett,dc=fr&quot;
     by dn=&quot;gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth&quot; write
     by * read
&nbsp;
access to dn.subtree=&quot;ou=people,dc=garnett,dc=fr&quot;
     attrs=krb5KeyVersionNumber,krb5Key
     by dn=&quot;gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth&quot; write
     by * none 
&nbsp;
access to dn.subtree=&quot;ou=people,dc=garnett,dc=fr&quot;
     attrs=entry,objectclass,krb5PrincipalName,krb5MaxLife,\
     krb5MaxRenew,uid,krb5KDCFlags
     by dn=&quot;gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth&quot; read
     by * none</pre></div></div>

<p>Le DN de connexion bizarre est celui utilisé par la SASL lors de l&#8217;accès via ldapi. Avec ce jeu d&#8217;ACL (a ajuster selon vos besoins) on peut changer les clés des utilisateurs sans soucis et faire un dump du KDC. Je dois tester comment ça se comprote avec la réplication KDC maitre / esclave(s). pour voir si les ACLs merdouillent, slapd avec le loglevel à 128.</p>
<p><strong>3. Configuration du KDC</strong></p>
<p>On l&#8217;installe :<br />
<code>aptitude install heimdal-kdc</code></p>
<p>Il faut juste indiquer au KDC Heimdal d&#8217;utiliser un backend LDAP. dans le /etc/heimdal-kdc/kdc.conf :</p>

<div class="wp_syntax"><div class="code"><pre class="text">[logging]
kdc = FILE:/var/log/heimdal-kdc.log
[kdc]
database = {
  dbname = ldap:ou=people,dc=garnett,dc=fr
  realm = UNIV-ORLEANS.FR
  mkey_file = /var/lib/heimdal-kdc/m-key
  acl_file = /etc/heimdal-kdc/kadmind.acl
}
[kadmin]
[password-quality]</pre></div></div>

<p>Puis dans le /etc/krb5.conf :</p>

<div class="wp_syntax"><div class="code"><pre class="text">database = {
    dbname = ldap:ou=people,dc=garnett,dc=fr
}</pre></div></div>

<p>Un restart du KDC Heimdal. Et on peu créer les principals par défaut :<br />
<code>kadmin -l<br />
> init GARNETT.FR</code></p>
<p>Les principals par défaut ont du être crées dans la branche people (attention aux ACLs slapd, dans notre configuration on ne pourra pas le faire si directement).</p>
<p><strong>4. Ajout des informations Kerberos à une feuille</strong></p>
<p>Je suis dans le cas ou les gens existent déjà et donc on ne peut pas casser le LDAP. Un simple ldapmodify permet de s&#8217;en sortir. Créons le fichier kerb.ldif :</p>
<pre lan="text">
dn: uid=matricule,ou=people,dc=garnett,dc=fr
changetype: modify
add: objectClass
objectClass: krb5Principal
-
add: objectClass
objectClass: krb5KDCEntry
-
add: krb5PrincipalName
krb5PrincipalName: p10613@UNIV-ORLEANS.FR
-
add: krb5KeyVersionNumber
krb5KeyVersionNumber: 1
-
add: krb5MaxLife
krb5MaxLife: 86400
-
add: krb5MaxRenew
krb5MaxRenew: 604800
-
add: krb5KDCFlags
krb5KDCFlags: 126
-
</pre>
<p>On fait un ldapmodify et un changment de mot de passe derrière et les attributs krb5Key seront ajoutés à la feuille. Fin de l&#8217;histoire. Derrière on peut faire un kinit pour topper son ticket.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.garnett.fr/?feed=rss2&amp;p=474</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
