<?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>Antoine Benkemoun &#187; Réseau</title>
	<atom:link href="http://www.antoinebenkemoun.fr/category/reseau/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antoinebenkemoun.fr</link>
	<description>Sécurité informatique, Virtualisation, Administration système et Réseaux</description>
	<lastBuildDate>Fri, 19 Aug 2011 09:38:20 +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>Test de l&#8217;offre téléphonie OVH</title>
		<link>http://www.antoinebenkemoun.fr/2011/08/test-de-loffre-telephonie-ovh/</link>
		<comments>http://www.antoinebenkemoun.fr/2011/08/test-de-loffre-telephonie-ovh/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 09:29:27 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Suisse]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1402</guid>
		<description><![CDATA[Vu que je déménage en Suisse le mois prochain, je cherchai une solution me permettant de rester joignable de la France sans que mes correspondants aient à payer le surcoût d&#8217;un appel à l&#8217;international et me permettant d&#8217;appeler en France gratuitement. C&#8217;est alors que l&#8217;idée d&#8217;une ligne SIP s&#8217;est rapidement imposée. Une ligne SIP permet [...]]]></description>
			<content:encoded><![CDATA[<p>Vu que je déménage en Suisse le mois prochain, je cherchai une solution me permettant de rester joignable de la France sans que mes correspondants aient à payer le surcoût d&#8217;un appel à l&#8217;international et me permettant d&#8217;appeler en France gratuitement. C&#8217;est alors que l&#8217;idée d&#8217;une ligne SIP s&#8217;est rapidement imposée.</p>
<p>Une ligne SIP permet d&#8217;avoir un numéro de téléphone fixe mais mobile. Pas mobile au sens d&#8217;un téléphone portable bien évidemment mais mobile au sens que je n&#8217;ai pas besoin de faire un courrier ou d&#8217;appeller un opérateur pour pouvoir utiliser ce numéro de téléphone ailleurs pour peu qu&#8217;il y ait une connexion Internet.</p>
<p>Mon choix s&#8217;est assez naturellement porté vers <a href="http://www.ovh.com">OVH</a> étant donné la bonne expérience que j&#8217;ai pu avoir d&#8217;eux sur d&#8217;autres offres. J&#8217;avoues ne pas avoir comparé avec d&#8217;autres fournisseurs.</p>
<p style="text-align: center;"><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2011/08/OVH.jpg"><img class="size-full wp-image-1403 aligncenter" title="OVH" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2011/08/OVH.jpg" alt="" width="215" height="208" /></a></p>
<p>Au niveau tarification, la ligne ne coûte pratiquement rien soit 1,18€ TTC. Elle inclut un numéro de téléphone dans la zone de votre choix et les appels illimités vers les fixes de 40 pays. Il est également possible de souscrire à des options vers les téléphones mobiles. Le téléphone est &laquo;&nbsp;prêté&nbsp;&raquo; sous caution. Étant donné que la caution est égale au prix du téléphone, il aurait été probablement plus simple pour OVH de le vendre. L&#8217;intérêt de le prendre avec OVH est que les frais de port sont inclus et que le téléphone est auto-configuré (ou du moins censé l&#8217;être).</p>
<p>Lorsque vous commandez votre ligne SIP, vous effectuez le parcours classique de commande OVH sauf que là, il est nécessaire d&#8217;envoyer un courrier. Hé oui, envoyer du papier dans une enveloppe avec un timbre qu&#8217;il faut aller acheter à la Poste. En effet, il faut envoyer un chèque barré, une copie de carte d&#8217;identité et une autorisation de prélèvement. Du coup, vu que la Poste est passé en 48h au lieu de 24h pour le courrier classique, cela rajoute 2 jours de délai à l&#8217;obtention effective de la ligne. Ca reste assez raisonnable mais inhabituel pour OVH. On mettra tout cela sous le coup de la réglementation liée aux lignes téléphoniques.</p>
<p>Une fois le courrier réceptionné par OVH, vous recevrez très rapidement un mail contenant les identifiants pour vous connecter à votre compte SIP. Ceux que j&#8217;ai reçu pour ma ligne étaient erronés et j&#8217;ai donc dû les modifier dans le Manager OVH. Pour tester votre ligne sur votre Mac, je vous conseille <a href="http://www.zoiper.com/">Zoiper</a>. La qualité et la latence n&#8217;est pas nécessairement exceptionnelle avec un softphone donc attendez de voir avec votre téléphone physique pour juger.</p>
<p>Si vous avez de la chance, vous recevrez votre téléphone le lendemain de l&#8217;activation de votre ligne SIP ce qui a été mon cas. OVH expédiant les téléphones via DHL, c&#8217;est rapide ! Vous pourrez ainsi déballer votre téléphone et le brancher directement dans votre box.</p>
<p>La configuration est sensé être automatique néanmoins dans mon cas, cela n&#8217;a pas été le cas. J&#8217;ai dû modifier le mot de passe dans l&#8217;interface de configuration web du téléphone. Cela est probablement lié au fait que le mot de passe fourni dans le mail par OVH était erroné. Une fois ce problème résolu, tout fonctionne parfaitement. La qualité sonore est tout à fait correcte et la latence acceptable. Cette dernière est, je pense, légèrement plus élevée que dans le cas de la téléphonie classique mais ca reste assez acceptable. Ce sera néanmoins à tester à partir d&#8217;un autre pays.</p>
<p>Sur son interface Manager dédiée à la téléphonie, OVH vous donne accès aux logs relatives à votre ligne ce qui vous permet de comprendre une éventuelle erreur de connexion et à de nombreuses options. L&#8217;offre par défaut à 1,18€ TTC ne propose que très peu d&#8217;options mais à ce prix là difficile de se plaindre.</p>
<p>Au final, l&#8217;offre d&#8217;OVH est vraiment très accessible au niveau tarif. La mise en place se fait bien malgré le fait qu&#8217;il faille envoyer un courrier papier via le &laquo;&nbsp;snail mail&nbsp;&raquo;. Il est néanmoins préférable de prendre un téléphone physique car la qualité et la latence est meilleure qu&#8217;avec un softphone de ce que j&#8217;ai pu tester.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2011/08/test-de-loffre-telephonie-ovh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accélérer son site web avec Squid – 2</title>
		<link>http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-avec-squid-%e2%80%93-2/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-avec-squid-%e2%80%93-2/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 11:58:58 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Explication]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1337</guid>
		<description><![CDATA[Dans le billet précédent, nous avons vu l&#8217;intérêt d&#8217;un reverse-proxy Squid ainsi que son installation et sa configuration basique. Dans ce billet, nous allons réellement utiliser les possibilités de Squid. Rappels Historiquement, les proxy HTTP ont été mis en place afin d&#8217;accélérer les chargements des pages web. A une certaine époque l&#8217;acronyme WWW pouvait avoir [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/09/idea-squid-rsz.jpg"><img class="alignleft size-full wp-image-1329" title="idea-squid-rsz" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/09/idea-squid-rsz.jpg" alt="" width="154" height="142" /></a>Dans le <a href="http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-grace-a-squid-1/">billet précédent</a>, nous avons vu l&#8217;intérêt d&#8217;un reverse-proxy Squid ainsi que son installation et sa configuration basique. Dans ce billet, nous allons réellement utiliser les possibilités de Squid.</p>
<h3>Rappels</h3>
<p>Historiquement, les proxy HTTP ont été mis en place afin d&#8217;accélérer les chargements des pages web. A une certaine époque l&#8217;acronyme WWW pouvait avoir pour signification &laquo;&nbsp;World Wide Wait&nbsp;&raquo;. La solution apportée à ce problème a été de mettre en cache les contenus au plus proche de l&#8217;utilisateur par le biais de proxy.</p>
<p>La gestion du cache HTTP doit être géré du coté du fournisseur de contenu, à savoir le serveur web. En théorie, ce dernier a autorité sur les données du site qui pourront être mises en cache ou non. Ces informations sont transmises dans les en-têtes HTTP par le biais de divers champs que nous ne détaillerons pas tous ici. Un champ particulièrement intéressant est la durée de rétention dans le cache.</p>
<p>Par défaut, Apache n&#8217;envoie pas d&#8217;informations quant à la mise en cache du contenu ce qui signifie donc qu&#8217;en théorie les données de notre site ne seront pas mises en cache. Dans notre situation, cela signifie que Squid ne met rien en cache tant que nous n&#8217;avons pas configuré Apache pour lui indiquer qu&#8217;il est possible de le faire.</p>
<h3>Configuration d&#8217;Apache</h3>
<p>Nous allons donc devoir paramétrer Apache pour utiliser les en-têtes contrôlant la mise en cache de nos pages web. Ainsi, notre serveur Squid pourra prendre une partie de la charge de notre serveur web et ainsi le soulager.</p>
<p>Le module Apache qui nous intéresse plus particulièrement est <em>mod_expires</em>. Son activation est simple et, dans le cas de Debian, il est packagé avec Apache. Il suffit donc de l&#8217;activer comme suit.</p>
<blockquote><p># a2enmod expires</p>
<p># /etc/init.d/apache2 restart</p></blockquote>
<p>Une fois ce module activé, nous allons pouvoir le configurer.</p>
<h3>Configuration de mod _expires</h3>
<p>Nous allons pouvoir configurer <em>mod_expires</em> par le biais de fichiers .htaccess comme il est possible de le faire pour bon nombre d&#8217;autres modules. Ce module nous permet de gérer assez finement la mise en cache des fichiers. La syntaxe est simpliste mais efficace. Si vous souhaitez obtenir une explication exhaustive dans la syntaxe et de ses fonctionnalités, je vous recommande de consulter la <a href="http://httpd.apache.org/docs/2.0/mod/mod_expires.html">documentation</a>.</p>
<p>Pour ce site, j&#8217;ai choisi la politique suivante de mise en cache.</p>
<blockquote><p>ExpiresActive On<br />
ExpiresByType image/gif &laquo;&nbsp;access plus 1 week&nbsp;&raquo;<br />
ExpiresByType image/jpeg &laquo;&nbsp;access plus 1 week&nbsp;&raquo;<br />
ExpiresByType image/png &laquo;&nbsp;access plus 1 week&nbsp;&raquo;<br />
ExpiresByType text/css &laquo;&nbsp;access plus 1 days&nbsp;&raquo;<br />
ExpiresByType application/x-shockwave-flash &laquo;&nbsp;access plus 1 hour&nbsp;&raquo;</p></blockquote>
<p>Ensuite, c&#8217;est à vous de voir ce que vous voulez que Squid mette en cache ou pas en fonction des fonctionnalités de votre site.</p>
<h3>Vérification</h3>
<p>Afin de vérifier si tout fonctionne correctement, je vous invite à consulter les log d&#8217;accès à votre serveur Squid. Des lignes comportant &laquo;&nbsp;TCP_HIT&nbsp;&raquo; s&#8217;afficheront lorsque Squid servira des données du cache à la place d&#8217;Apache. Si vous n&#8217;avez que des &laquo;&nbsp;TCP_MISS&nbsp;&raquo;, il doit probablement manquer un élément à votre configuration.</p>
<p>Au final, cette méthode permet d&#8217;accélérer significativement son site web et ainsi d&#8217;améliorer son référencement sur Google. Dans mon cas, le temps de chargement de ce site a été divisé par un facteur 2 à 3 ce qui est tout de même très intéressant. Des lecteurs m&#8217;ont fait remarquer qu&#8217;il existait une alternative plus moderne à Squid, Varnish qui permettrait de définir des politiques de mise en cache plus fine. Je vous laisse donc y jeter un coup d’œil !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-avec-squid-%e2%80%93-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Accélérer son site web avec Squid &#8211; 1</title>
		<link>http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-grace-a-squid-1/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-grace-a-squid-1/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 16:02:15 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Explication]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1296</guid>
		<description><![CDATA[La rapidité de l&#8217;Internet est une préoccupation omniprésente car elle améliore significativement l&#8217;expérience utilisateur. De plus, récemment Google a annoncé que la rapidité d&#8217;affichage des sites serait prise en compte dans le calcul de l&#8217;affichage des pages de résultat de recherche. Cette prise en compte avait de quoi en motiver plus d&#8217;un à accélérer l&#8217;affichage [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/09/idea-squid-rsz.jpg"><img class="alignleft size-full wp-image-1329" title="idea-squid-rsz" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/09/idea-squid-rsz.jpg" alt="" width="154" height="142" /></a>La rapidité de l&#8217;Internet est une préoccupation omniprésente car elle améliore significativement l&#8217;expérience utilisateur. De plus, récemment Google a annoncé que la rapidité d&#8217;affichage des sites serait prise en compte dans le calcul de l&#8217;affichage des pages de résultat de recherche. Cette prise en compte avait de quoi en motiver plus d&#8217;un à accélérer l&#8217;affichage de son site, dont moi.</p>
<h3>Contexte</h3>
<p>L&#8217;affichage de ce blog était relativement lent. Il pouvait mettre plus de 5 secondes pour s&#8217;afficher complètement ce qui n&#8217;est pas un temps d&#8217;affichage très bon. J&#8217;ai donc entrepris de trouver une solution à ce problème.</p>
<p>Ce site est hébergé sur une machine virtuelle Xen dont le système d&#8217;exploitation est OpenSolaris 2009.06. Elle est globalement assez lente car relativement peu de mémoire lui est alloué. De plus, la cohabitation d&#8217;Apache et de MySQL sur le même système ne favorise clairement pas les choses. Certains médisants diront que WordPress et/ou PHP sont des facteurs de lenteur. Ils auront raison mais je n&#8217;ai aucune intention d&#8217;utiliser autre chose que WordPress car c&#8217;est un réel plaisir à l&#8217;utiliser.</p>
<h3>Un peu de théorie</h3>
<p>Un proxy ou en Français &laquo;&nbsp;serveur mandataire&nbsp;&raquo; est un serveur qui se place entre le client et le serveur. Le client va interroger le proxy qui va à son tour interroger le serveur. Le serveur répondra au proxy qui, à son tour, répondra au client. Ceci est le fonctionnement le plus classique mais on peut placer un proxy dans nombreuses configurations et donner au proxy une intelligence supplémentaire.</p>
<p>Dans le cas de proxys HTTP(S) classiques, on y ajoute des mécanismes de cache afin d&#8217;économiser de la bande passante. On peut également y ajouter des fonctions de filtrage d&#8217;URL afin d&#8217;éviter la consultation de certains sites.</p>
<p>L&#8217;exemple d&#8217;application du proxy qui nous intéresse ici est le reverse proxy. Le client n&#8217;aura aucune connaissance de la présence d&#8217;un proxy et pensera qu&#8217;il s&#8217;agit d&#8217;un serveur HTTP comme un autre. Le proxy interrogera ensuite le serveur web et la requête sera renvoyée au client. Dans cette situation, la fonctionnalité de cache du proxy est très intéressante car elle permet d&#8217;éviter le traitement de certaines requêtes au serveur HTTP. On pourrait également utiliser le proxy couplé à plusieurs serveurs HTTP afin d&#8217;effectuer du load balancing et de la redondance.</p>
<h3>Une autre VM</h3>
<p>La première étape a été de trouver une machine supplémentaire afin de ne pas faire cohabiter la pile LAMP et Squid sur le même serveur. Dans l&#8217;absolu, ce n&#8217;est pas impossible mais lorsqu&#8217;on a un serveur déjà surchargé, ce n&#8217;est peut être pas la meilleure idée.</p>
<p>Étant donné qu&#8217;OVH vient de lancer son offre miniCloud, ce projet était une parfaite excuse pour la tester. Le prix de cette offre est vraiment très bas. Pour une VM de 256Mo de RAM, cela revient à 8,5€/mois. J&#8217;ai donc crédité 10€ sur mon compte. L&#8217;interface de gestion n&#8217;est pas la plus esthétique ni la plus rapide mais elle fait l&#8217;affaire.</p>
<p>En une petite dizaine de minutes, j&#8217;avais donc à ma disposition une machine virtuelle Debian Lenny 64-bits. Le réel inconvénient de l&#8217;offre d&#8217;OVH est que l&#8217;IP de la machine virtuelle change à chaque fois que vous l&#8217;arrêtez par le biais de l&#8217;interface de gestion.</p>
<p>L&#8217;installation de la pile LAMP est très simple et je ne la détaillerai donc pas ici. Il existe des masses incroyables de documentation à ce sujet.</p>
<h3>Squid</h3>
<p>L&#8217;installation de Squid est très simple. Je l&#8217;ai installé sur OpenSolaris à partir des dépôts Blastwave via <em>pkgutil</em>. Dans le cas de Debian, un <em>apt-get</em> s&#8217;occupera de tout ca pour vous.</p>
<p>Une fois installé, nous pouvons passer à sa configuration. La configuration du reverse proxy est la suivante :</p>
<blockquote><p>http_port 80 accel defaultsite=www.antoinebenkemoun.fr<br />
visible_hostname vm.antoine.fr<br />
cache_peer 178.32.yy.xx parent 80 0 no-query originserver name=myAccel<br />
acl all src 0.0.0.0/0.0.0.0<br />
cache_peer_access myAccel allow all<br />
acl our_sites dstdomain antoinebenkemoun.fr www.antoinebenkemoun.fr antoinebenkemoun.com www.antoinebenkemoun.com<br />
http_access allow our_sites</p></blockquote>
<p>Tout d&#8217;abord, on indique à Squid d&#8217;écouter les requêtes sur le port 80 et que le site que l&#8217;on va proxy-er est &laquo;&nbsp;www.antoinebenkemoun.fr&nbsp;&raquo;. Ensuite, on lui indique l&#8217;IP du serveur web où est réellement hébergé le site. Il est ensuite nécessaire de définir un certain nombre d&#8217;ACL qui sont ici assez génériques et tout à fait simples. Dans l&#8217;exemple, nous avons autorisé le reverse proxy pour 4 sites et nous avons autorisé toutes les IP à visionner le site.</p>
<p>Il est également possible d&#8217;utiliser d&#8217;autres options afin de mieux régler votre reverse proxy. L&#8217;ajout d&#8217;un &laquo;&nbsp;access log&nbsp;&raquo; va vous permettre de voir les pages qui sont consultés mais surtout si le contenu est envoyé par Squid ou par votre serveur LAMP. Il est également possible de régler la quantité de mémoire vive utilisé pour le cache de pages web. L&#8217;espace mémoire utilisé pour le cache sera donc alloué en plus de l&#8217;espace mémoire du programme principal.</p>
<blockquote><p>cache_mem 20 MB<br />
cache_access_log /opt/csw/var/logs/access.log</p></blockquote>
<p>Le chemin pour l&#8217;access log est adapté à mon OpenSolaris mais à vous de l&#8217;adapter à votre distribution. Si vous êtes sur Linux, vous voudrez surement placer les logs quelque part dans <em>/var/log/</em>.</p>
<p>Au final, nous avons installé notre serveur Squid et l&#8217;avons configuré en mode reverse-proxy. Dans le billant suivant, nous verrons les modifications qu&#8217;il faut apporter à notre serveur Apache afin d&#8217;utiliser réellement la fonctionnalité de cache du reverse proxy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/09/accelerer-son-site-web-grace-a-squid-1/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Gérer les règles iptables d’un parc de serveurs : Netfilter Manager</title>
		<link>http://www.antoinebenkemoun.fr/2010/08/gerer-les-regles-iptables-dun-parc-de-serveurs-netfilter-manager/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/08/gerer-les-regles-iptables-dun-parc-de-serveurs-netfilter-manager/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 12:41:25 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[netfilter-manager]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1282</guid>
		<description><![CDATA[Cet article va pouvoir expliquer une partie de l&#8217;absence d&#8217;activité sur ce blog dernièrement. Avant de rentrer dans le vif du sujet, je tiens à prévenir du fait que je ne suis pas, à la base, un développeur et donc que je débute dans le domaine de développement applicatif et du développement Open Source. Soyez-donc [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article va pouvoir expliquer une partie de l&#8217;absence d&#8217;activité sur ce blog dernièrement. Avant de rentrer dans le vif du sujet, je tiens à prévenir du fait que je ne suis pas, à la base, un développeur et donc que je débute dans le domaine de développement applicatif et du développement Open Source. Soyez-donc indulgent si je fais des erreurs &laquo;&nbsp;de base&nbsp;&raquo;.</p>
<h3>Problématique</h3>
<p>Le besoin initial de cette application est la gestion des règles iptables d&#8217;un parc de machines. En tant qu&#8217;administrateurs système, nous ne retrouvons régulièrement à gérer des scripts iptables sur divers serveurs. Lorsqu&#8217;on gère 5-10 serveurs, la gestion à la main reste acceptable. Cependant, dès que l&#8217;on commence à gérer plus de serveurs, ca commence à devenir réellement long et fastidieux. Et qui dit fastidieux dit fort potentiel d&#8217;erreurs.</p>
<p>J&#8217;ai donc entrepris de créer une application qui permettrait de gérer tout ca de manière un peu plus automatisée. L&#8217;application Netfilter Manager est donc née. Le nom est pas tout à fait extraordinaire mais ca représente à peu près ce que ca fait.</p>
<h3>Présentation</h3>
<p>Netfilter Manager utilise donc une interface en ligne de commande afin de pouvoir gérer un lot d&#8217;hôtes et les règles associées. Cette CLI est inspirée quelque peu de la CLI Cisco pour ceux qui ont déjà eu <span style="text-decoration: line-through;">la chance</span> l&#8217;occasion de l&#8217;utiliser. La licence de l&#8217;application est GPLv3. J&#8217;avoue ne pas être un expert dans le domaine des licences de logiciel mais c&#8217;est une des plus répandues et le peu que j&#8217;en connais me convient.</p>
<p>Chaque hôte dispose d&#8217;un nom et d&#8217;une adresse IP. A la place de l&#8217;adresse IP, on peut bien sûr utiliser un nom DNS que le serveur de gestion saura résoudre. L&#8217;application ne supporte que pour l&#8217;instant Iptables, il n&#8217;est donc pas encore possible de sélectionner un type d&#8217;hôte mais c&#8217;est une fonctionnalité envisageable.</p>
<p>Les règles sont ajoutées hôte par hôte et peuvent être organisées par ligne. Par défaut, les règles que vous ajoutées sont ajoutés à la suite des règles existantes. Il est possible de gérer plus finement l&#8217;ordonnancement des règles en utilisant la gestion par ligne. Chaque ligne peut comporter plusieurs règles et les règles seront appliquées dans l&#8217;ordre croissant des lignes. Ce comportement est très similaire au mode de fonctionnement des access-list Cisco.</p>
<p>Voici un petit exemple d&#8217;utilisation :</p>
<p style="text-align: center;"><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/08/screen1-nm.png"><img class="size-full wp-image-1287 aligncenter" title="screen1-nm" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/08/screen1-nm.png" alt="" width="505" height="338" /></a></p>
<p>Il est également possible de créer des lots de règles grâce à un moteur de template dont l&#8217;utilisation est expliquée dans le <a href="http://github.com/antoinebk/Netfilter-Manager/blob/master/README">README</a>. Vous trouverez un exemple de template dans le fichier <em>cobalt.tpl</em> présent dans le répertoire <em>templates</em>.</p>
<p>Une fois que vous avez créé toutes les règles de firewall, vous allez pouvoir les &laquo;&nbsp;pousser&nbsp;&raquo; vers vos serveurs. Un script contenant les règles est généré en prenant les règles que vous avez spécifié et en ajoutant au début le contenu du fichier <em>start.tpl</em>. Par défaut, ce fichier contient des règles permettant de supprimer les règles iptables actuellement utilisées.</p>
<p>Pour en savoir plus sur l&#8217;utilisation de l&#8217;application, la commande <em>help</em> devrait pour vous aider. Sinon je vous conseille de lire le <a href="http://github.com/antoinebk/Netfilter-Manager/blob/master/README">README</a> (en anglais pour l&#8217;instant). J&#8217;espère que les explications sont claires et vous permettront de réussir à utiliser l&#8217;application. Si ce n&#8217;est pas le cas, vous pouvez me le faire savoir soit par ce blog soit par le <a href="http://github.com/antoinebk/Netfilter-Manager/issues">bugtracker</a> de github.</p>
<h3>Bonus</h3>
<p>En petit bonus, j&#8217;ai ajouté la possibilité de créer des règles en utilisant la syntaxe Cisco. Pour l&#8217;instant, seuls les règles IP sont supportées mais les règles TCP/UDP devraient également être supportées par la suite. Dans le mode ajout, il faut utiliser la commande <em>access-list</em>. Un page d&#8217;aide a été spécifiquement ajouté, vous pouvez y accéder en tapant <em>access-list help</em>. Je ne suis pas sûr que ce soit d&#8217;une utilité débordante mais ca m&#8217;a bien amusé de le coder.</p>
<h3>Code</h3>
<p>Tout le code de l&#8217;application est disponible sur <a href="http://github.com/antoinebk/Netfilter-Manager">github</a>. Vous pouvez télécharger la version courante de l&#8217;application en cliquant sur <a href="http://github.com/antoinebk/Netfilter-Manager/archives/master">ce lien</a>.</p>
<p>Si vous souhaitez contribuer, vous êtes les bienvenus. Tout se passe via le git proposé par github. L&#8217;application est faite en Python et j&#8217;ai essayé de rendre le code le plus lisible possible. Si vous souhaitez effectuer des remontées de bugs ou me donner votre avis, vous pouvez le faire sur ce blog ou sur <a href="http://github.com/antoinebk/Netfilter-Manager/issues">github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/08/gerer-les-regles-iptables-dun-parc-de-serveurs-netfilter-manager/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Génération de certifications OpenVPN par lots avec pkitool</title>
		<link>http://www.antoinebenkemoun.fr/2010/08/generation-de-certifications-openvpn-par-lots-avec-pkitool/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/08/generation-de-certifications-openvpn-par-lots-avec-pkitool/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 08:37:48 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1275</guid>
		<description><![CDATA[Ce blog n&#8217;est pas particulièrement actif ces derniers temps comme vous pouvez le remarquer. Surement une petite baisse de motivation de ma part mais également les vacances. Aujourd&#8217;hui ce sera donc un petit article simple mais efficace. En Avril, j&#8217;avais écrit un petit billet sur la génération de certificats OpenVPN par lots ce qui est [...]]]></description>
			<content:encoded><![CDATA[<p>Ce blog n&#8217;est pas particulièrement actif ces derniers temps comme vous pouvez le remarquer. Surement une petite baisse de motivation de ma part mais également les vacances. Aujourd&#8217;hui ce sera donc un petit article simple mais efficace.</p>
<p>En Avril, j&#8217;avais écrit un petit billet sur la génération de certificats OpenVPN par lots ce qui est bien pratique lorsqu&#8217;on doit en générer une quantité importante. J&#8217;ai à nouveau rencontré cette problématique mais dans un contexte légèrement différent. Sous Ubuntu Server 10.04, le jeu d&#8217;outils Easy-RSA d&#8217;OpenVPN n&#8217;utilisent plus OpenSSL directement mais utilisent <em>pkitool</em> qui ne semble être qu&#8217;un intermédiaire de simplification.</p>
<p>Du coup, le script donné précédemment n&#8217;est plus valable. Il a donc fallu trouver une parade assez simple mais non moins fonctionnelle. La solution adaptée à <em>pkitool</em> ne tient plus qu&#8217;en un seul script qui est le suivant.</p>
<blockquote>
<div id="_mcePaste">#! /bin/bash</div>
<div id="_mcePaste"># Make a certificate/private key pair using a locally generated</div>
<div id="_mcePaste"># root certificate.</div>
<div id="_mcePaste">export EASY_RSA=&nbsp;&raquo;`pwd`&nbsp;&raquo;</div>
<div id="_mcePaste">export OPENSSL=&nbsp;&raquo;openssl&nbsp;&raquo;</div>
<div id="_mcePaste">export PKCS11TOOL=&nbsp;&raquo;pkcs11-tool&nbsp;&raquo;</div>
<div id="_mcePaste">export GREP=&nbsp;&raquo;grep&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`</div>
<div id="_mcePaste">export KEY_DIR=&nbsp;&raquo;$EASY_RSA/keys&nbsp;&raquo;</div>
<div id="_mcePaste">export PKCS11_PIN=&nbsp;&raquo;dummy&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_SIZE=1024</div>
<div id="_mcePaste">export CA_EXPIRE=3650</div>
<div id="_mcePaste">export KEY_EXPIRE=3650</div>
<div id="_mcePaste">export KEY_COUNTRY=&nbsp;&raquo;FR&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_PROVINCE=&nbsp;&raquo;FR&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_CITY=&nbsp;&raquo;Paris&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_ORG=&nbsp;&raquo;Antoine-Corp&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_EMAIL=&nbsp;&raquo;me@myhost.mydomain&nbsp;&raquo;</div>
<div id="_mcePaste">export KEY_CNAME=$1</div>
<div id="_mcePaste">export EASY_RSA=&nbsp;&raquo;${EASY_RSA:-.}&nbsp;&raquo;</div>
<div id="_mcePaste">&laquo;&nbsp;$EASY_RSA/pkitool&nbsp;&raquo; $*</div>
</blockquote>
<p>Le tour est joué ! Vu que WordPress (ou plutôt de ces modules/thèmes) remplace les quotes par des guillemets impossibles à copier/coller dans un shell, je vous mets à disposition une <a href="http://www.antoinebenkemoun.fr/data/generatecertifpkitool.bash">version en texte brut</a> jusqu&#8217;à ce que j&#8217;ai réussi à résoudre ce problème assez agaçant.</p>
<p>Au final, ce script devrait vous être utile pour générer rapidement des certifications OpenVPN à la pelle et ainsi vous simplifier la vie.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/08/generation-de-certifications-openvpn-par-lots-avec-pkitool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Delivery Networks : Définition</title>
		<link>http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-definition/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-definition/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 16:41:35 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1204</guid>
		<description><![CDATA[Après avoir effectué une introduction sur les Content Delivery Networks (CDN), nous allons nous attacher à la définition de leurs spécificités. Nous nous intéresserons également à leur positionnement et aux données qu&#8217;ils vont pouvoir servir. L&#8217;objectif est ici de faire un tour d&#8217;horizon de cette large question. Définition Les réseaux de distribution de contenu sont [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/06/cdn.png"><img class="alignleft size-medium wp-image-1198" title="cdn" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/06/cdn-300x147.png" alt="" width="240" height="118" /></a>Après avoir effectué une <a href="http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-introduction/">introduction</a> sur les Content Delivery Networks (CDN), nous allons nous attacher à la définition de leurs spécificités. Nous nous intéresserons également à leur positionnement et aux données qu&#8217;ils vont pouvoir servir. L&#8217;objectif est ici de faire un tour d&#8217;horizon de cette large question.</p>
<h3>Définition</h3>
<p>Les réseaux de distribution de contenu sont des réseaux qui ne ressemblent pas aux réseaux traditionnels. Traditionnellement, un réseau est présent dans un endroit ou dans plusieurs. Pour les réseaux d&#8217;entreprise, ils sont présents sur le siège social, les diverses succursales et éventuellement un centre de données. Dans le cas des réseaux d&#8217;opérateur, ils couvrent un pays ou bien plusieurs avec plusieurs points d&#8217;interconnexions dans le monde.</p>
<p>Les réseaux de distribution de contenu sont éclatés à travers le monde. Leur objectif est d&#8217;être présent dans le plus d&#8217;endroits possibles afin de fournir du contenu au plus proche de l&#8217;utilisateur. Nous avons donc à faire à des réseaux multi-localisés.</p>
<h3>Positionnement stratégique</h3>
<p>L&#8217;intérêt même des réseaux de distribution de contenu est leur présence dans les endroits &laquo;&nbsp;stratégiques&nbsp;&raquo; de l&#8217;Internet. Leur objectif est de réduire les coûts de distribution de contenu en se rapprochant de l&#8217;utilisateur final. Il leur est donc très intéressant de se rapprocher des noeuds d&#8217;interconnexion de l&#8217;Internet mais également des fournisseurs d&#8217;accès à Internet.</p>
<p>Leur présence dans les locaux des fournisseurs d&#8217;accès permet une très forte réduction des coûts de bande passante. Du point de vue du fournisseur d&#8217;accès à Internet, il ne crée pas de trafic supplémentaire avec le reste du monde. C&#8217;est précisément ce type de trafic réseau vers le reste du monde qui est couteux. Le FAI ont donc tout intérêt à intégrer des CDN dans son réseau. Au lieu d&#8217;envoyer n-fois un contenu sur un lien interocéanique, il suffira de l&#8217;envoyer une fois et il sera ensuite redistribué à partir du réseau du FAI.</p>
<p>La proximité géographique n&#8217;est pas forcément synonyme de proximité au niveau de l&#8217;Internet. Les nœuds de l&#8217;Internet ne répondent aux mêmes logiques de proximité que les réseaux routiers. Les grands nœuds d&#8217;interconnexion européens sont Londres et Amsterdam. Il sera donc parfois plus rapide voire nécessaire de router un flux via ces villes pour accéder un pays voisin ce qui est contraire à la simple proximité géographique.</p>
<h3>Données statiques</h3>
<p>Les réseaux de distribution de contenu distribuent essentiellement des données statiques. Par données statiques, j&#8217;entends des données qui ne varient pas dans le temps. La vidéo peut donc être considéré comme un contenu statique dans le cas de vidéos Youtube par exemple. Les CDN ne disposent normalement pas de ressources de calcul de scripts type PHP, ASP ou autre.</p>
<p>L&#8217;exception à cette affirmation est le contenu vidéo diffusé en direct. Les CDN peuvent être utilisés pour diffuser ce type de contenu. Mais il reste invariant du point de vue des utilisateurs. Chaque utilisateur reçoit le même contenu avec un décalage minimal.</p>
<p>Au final, nous avons réussi à faire un tour rapide de la définition des réseaux de distribution de contenu. Il serait possible de s&#8217;étendre longuement sur ce sujet mais ce n&#8217;est pas le but ici. Nous verrons par la suite les techniques d&#8217;accès au contenu et de répartition de charge.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-definition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Delivery Networks : Introduction</title>
		<link>http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-introduction/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-introduction/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 21:38:00 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CDN]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Explication]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1191</guid>
		<description><![CDATA[J&#8217;ai récemment effectué un petit projet dans le cadre de mes études dans le cadre de l&#8217;unité de valeur &#171;&#160;Services Réseaux&#160;&#187; traitant des Content Delivery Networks (ou CDN) avec un binôme de choc. Dès que nous avons vu que ce sujet était proposé dans la liste des projets, nous l&#8217;avons immédiatement choisi. Le reste des [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/06/cdn.png"><img class="alignleft size-medium wp-image-1198" title="cdn" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/06/cdn-300x147.png" alt="" width="240" height="118" /></a>J&#8217;ai récemment effectué un petit projet dans le cadre de mes études dans le cadre de l&#8217;unité de valeur &laquo;&nbsp;Services Réseaux&nbsp;&raquo; traitant des Content Delivery Networks (ou CDN) avec un <a href="http://www.paulfariello.fr">binôme</a> de choc. Dès que nous avons vu que ce sujet était proposé dans la liste des projets, nous l&#8217;avons immédiatement choisi. Le reste des projets était plus ou moins classique mais ce sujet ressortait du lot. Ce sujet fera l&#8217;objet d&#8217;une série de billets car un unique billet serait bien trop long.</p>
<p>Avant de rentrer dans le vif du sujet, la présentation que nous avons effectué est disponible sur <a href="http://www.slideshare.net/tekzone/content-delivery-networks-cdn">Slideshare</a>. L&#8217;affichage des animations est quelque peu fastidieux par le biais de la visionneuse Slideshare mais ca reste assez lisible. Il s&#8217;agit d&#8217;une présentation <a href="http://www.apple.com/iwork/keynote/">Keynote</a> contenant assez peu de détails car la plupart du sujet a été traité à l&#8217;oral. Pour le détail, il faudra lire les articles de cette série de billets.</p>
<p>Tout d&#8217;abord, nous pouvons traduire le terme &laquo;&nbsp;Content Delivery Network&nbsp;&raquo; par &laquo;&nbsp;Réseau de distribution de contenu&nbsp;&raquo;. L&#8217;adaptation de ce terme en Français me semble tout à fait satisfaisante. J&#8217;utiliserais ce terme pour la suite des billets et les autres billets à venir. Je ferais une exception pour le titre mais ça c&#8217;est pour l&#8217;indexation Google.</p>
<p>Les réseaux de distribution de contenu ont été conçus pour répondre à des problématiques très concrètes rencontrées sur Internet. Lors de cette introduction, nous nous attacherons à identifier ces problématiques et à les détailler. Nous distinguerons deux types de problématiques : les nouvelles problématiques et les problématiques historiques.</p>
<h3>Nouvelles problématiques</h3>
<p>L&#8217;utilisation de l&#8217;Internet a beaucoup évolué depuis ces dix dernières années et ces évolutions ont amené de nombreuses nouvelles problématiques.</p>
<p>La première grande révolution est l&#8217;introduction de la vidéo dans le navigateur web. Ceci peut paraitre tout à fait &laquo;&nbsp;normal&nbsp;&raquo; aujourd&#8217;hui mais l&#8217;intégration de contenus vidéos était quelque chose de rare il y a une dizaine d&#8217;années. Le lecteur Real Player avait permis de faire les premiers pas vers cette intégration mais son utilisation était exceptionnellement pénible. Ceux qui l&#8217;ont utilisé se souviendront probablement du casse tête entre les version gratuites et payantes ainsi que les publicités associées. Cette révolution a permis au plus grand monde d&#8217;accéder à des quantités de contenu astronomiques.</p>
<p>La seconde révolution est le haut débit par le biais des technologies de transmission ADSL et câble. Chaque utilisateur connecté derrière la box de son fournisseur d&#8217;accès à Internet obtient ainsi la possibilité de récupérer des données à une vitesse particulièrement élevée. Aujourd&#8217;hui, la quasi totalité des accès ADSL/Câble classiques disposent de plusieurs Mégabits de débit.</p>
<p>La troisième révolution a été les réseaux sociaux. Dans l&#8217;absolu, les réseaux sociaux ne sont que des sites comme des autres. Leur particularité réside dans le fait que la quantité de contenu qui y est ajouté chaque heure est colossale. De plus, ces contenus sont consultés de manière régulière par de nombreuses personnes à longueur de journée.</p>
<p>Pour résumer, le contenu distribué sur Internet a largement grossi à cause de la vidéo mais les utilisateurs ont également la possibilité de le récupérer à des vitesses élevés. Au final, il était nécessaire de trouver un solution efficace et le moins cher possible car tous ses contenus sont accessibles gratuitement.</p>
<h3>Problématiques historiques</h3>
<p>Nous venons de voir un certains nombre de facteurs récents qui ont modifié l&#8217;utilisation de l&#8217;Internet. Nous allons maintenant nous intéresser aux problématiques qui ne sont elles pas récentes.</p>
<p>La première problématique est le coût de la mise en place des liaisons transocéaniques et transcontinentales. L&#8217;investissement initial est élevé et la maintenance sur ces câbles est exceptionnellement compliquée. Les procédés de fabrication des fibres ont été améliorés et leur utilisation a été optimisé mais il reste nécessaire de faire traverser l&#8217;océan par un navire câblier ou bien de creuser les trous pour enfouir les fibres. Cette problématique induit le fait que plus le trafic réseau parcourt de la distance, plus les couts sont élevés.</p>
<p style="text-align: center;"><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/06/repart.png"><img class="size-medium wp-image-1200 aligncenter" title="repart" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/06/repart-300x193.png" alt="" width="300" height="193" /></a></p>
<p>La seconde problématique est la vitesse de la lumière. Transcrit en des termes plus informatiques, la seconde problématique est la latence. Cette dernière est bornée inéluctablement par la vitesse de propagation d&#8217;un signal dans une fibre optique qui dépend de la vitesse de la lumière. Les utilisateurs veulent non seulement du contenu mais le veulent rapidement. La latence peut devenir un problème dans le cas de liaisons transocéaniques. Des chiffres donnés par Akamai évoquent une latence de 1,6 ms pour du contenu situé à 160 Km et une latence de 96 ms pour du contenu situé sur un autre continent.</p>
<p>Au final, ces deux jeux de problématiques s&#8217;additionnent et viennent compliquer la vision traditionnelle de la distribution de contenu sur Internet. Les réseaux de distribution de contenu ont été créé dans l&#8217;objectif de résoudre au mieux à toutes ces problématiques.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/06/content-delivery-networks-introduction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Génération de certificats OpenVPN par lots</title>
		<link>http://www.antoinebenkemoun.fr/2010/04/generation-de-certificats-openvpn-par-lots/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/04/generation-de-certificats-openvpn-par-lots/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 09:01:39 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Explication]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[OS]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1094</guid>
		<description><![CDATA[J&#8217;ai déjà eu l&#8217;occasion de parler d&#8217;OpenVPN plusieurs fois sur ce blog car je pense qu&#8217;il s&#8217;agit d&#8217;une application très intéressante. J&#8217;avais déjà traité l&#8217;installation d&#8217;OpenVPN sur OpenSolaris et le client MacOS Viscosity. Une problématique régulièrement rencontrée est la génération de certificats SSL pour OpenVPN afin de créer des accès utilisateur à un serveur. La [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/02/site_internet.jpg"><img class="alignleft size-medium wp-image-947" title="site_internet" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/02/site_internet-300x225.jpg" alt="" width="189" height="142" /></a>J&#8217;ai déjà eu l&#8217;occasion de parler d&#8217;OpenVPN plusieurs fois sur ce blog car je pense qu&#8217;il s&#8217;agit d&#8217;une application très intéressante. J&#8217;avais déjà traité l&#8217;<a href="http://www.antoinebenkemoun.fr/2010/01/installation-dopenvpn-sur-opensolaris/">installation d&#8217;OpenVPN sur OpenSolaris </a>et le client <a href="http://www.antoinebenkemoun.fr/2009/07/un-client-openvpn-pour-mac-os-viscosity/">MacOS Viscosity</a>. Une problématique régulièrement rencontrée est la génération de certificats SSL pour OpenVPN afin de créer des accès utilisateur à un serveur.</p>
<p>La méthode la plus simple consiste à utiliser les outils <em>easy-rsa</em> en ligne de commande. Ces outils simplifient réellement la tâche par rapport à l&#8217;utilisation directe d&#8217;OpenSSL. Le problème avec l&#8217;utilisation de ces outils est la nécessité d&#8217;interagir avec le terminal. Cet outil va vous demander bon nombre de renseignements tels que le pays, la ville, l&#8217;adresse email, etc. Cette interaction rend compliquée la création par lots de certificats.</p>
<p>Une méthode plus compliquée, mais plus efficace, consiste à adapter les scripts <em>easy-rsa</em> afin de rendre leur utilisation plus linéaire et non interactive afin qu&#8217;un script puisse les exécuter. De plus, j&#8217;ai souhaité donner la possibilité de spécifier la durée de validité du certificat au cas par cas, ce qui n&#8217;est pas possible par défaut.</p>
<p>Le premier script, <em>build-key-batch</em>, permet de créer une clé en spécifiant une durée de validité. Il n&#8217;y a qu&#8217;une toute petite modification qui permet de récupérer la durée de validité passée en argument.</p>
<blockquote><p>#!/bin/sh</p>
<p>if test $# -ne 2; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &laquo;&nbsp;usage: build-key-batch &lt;name&gt; &lt;duree&gt;&nbsp;&raquo;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1<br />
fi</p>
<p>if test $KEY_DIR; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cd $KEY_DIR &amp;&amp; \<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openssl req -days $2 -nodes -new -keyout $1.key -out $1.csr -batch -config $KEY_CONFIG &amp;&amp; \<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openssl ca -days $2 -out $1.crt -in $1.csr -batch -config $KEY_CONFIG &amp;&amp; \<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chmod 0600 $1.key<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo you must define KEY_DIR<br />
fi</p></blockquote>
<p>Par défaut, <em>easy-rsa</em> nécessite d&#8217;exécuter le fichier vars dont le rôle est d&#8217;exporter un certain nombre de variables d&#8217;environnement utilisées par les scripts de génération de clé. Cela ne me convenait pas car je souhaitais exécuter un seul fichier contenant toutes les informations dont je pouvais avoir besoin. J&#8217;ai donc créé un script nommé <em>build-batch</em> qui contient toutes les options.</p>
<blockquote><p>#!/bin/sh<br />
if test $# -ne 2; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &laquo;&nbsp;usage: batch-build &lt;name&gt; &lt;duree&gt;&nbsp;&raquo;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Definition des variables<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export D=`pwd`<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_CONFIG=$D/openssl.cnf<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_DIR=$D/keys<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_SIZE=1024<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_COUNTRY=FR<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_PROVINCE=XX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_CITY=Paris<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_ORG=&nbsp;&raquo;Keeyyyy&nbsp;&raquo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_EMAIL=&nbsp;&raquo;$1&#8243;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export KEY_CNAME=$1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;./build-key-batch $1 $2<br />
fi</p></blockquote>
<p>Ce script nécessite une petite modification du fichier openssl.cnf présent dans le dossier <em>easy-rsa</em> qui est la suivante :</p>
<blockquote><p>commonName                      = Common Name (eg, your name or your server\&#8217;s hostname)<br />
commonName_max                  = 64<br />
++ commonName_default              = $ENV::KEY_CNAME</p></blockquote>
<p>Le script a exécuter afin de générer un certificat est donc <em>build-batch</em> suivi de deux arguments qui sont le nom du certificat et la durée de validité. Vous pourrez ainsi générer des certificats pour OpenVPN simplement et efficacement sans nécessiter une intervention humaine.</p>
<p>Source : <a href="http://intuitinnovations.com/blog/archives/100" class="broken_link" rel="nofollow">insights</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/04/generation-de-certificats-openvpn-par-lots/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Architecture réseau d’une LAN Party : Conclusion</title>
		<link>http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-conclusion/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-conclusion/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 19:30:22 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Evénement]]></category>
		<category><![CDATA[Sécurité]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1084</guid>
		<description><![CDATA[Ce billet constituera la 8ème fois que nous parlerons de l&#8217;architecture réseau d&#8217;une LAN Party et plus particulièrement, l&#8217;Utt Arena 2010. Je souhaite conclure par ce billet cette longue série qui m&#8217;a permis de parler d&#8217;une bonne quantité de technologies diverses et variées. Je ne referais pas de bilan spécifique car ce dernier a déjà [...]]]></description>
			<content:encoded><![CDATA[<p>Ce billet constituera la 8ème fois que nous parlerons de l&#8217;architecture réseau d&#8217;une LAN Party et plus particulièrement, l&#8217;Utt Arena 2010. Je souhaite conclure par ce billet cette longue série qui m&#8217;a permis de parler d&#8217;une bonne quantité de technologies diverses et variées.</p>
<p>Je ne referais pas de bilan spécifique car ce dernier a déjà été fait dans un <a href="http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-premier-bilan/">billet précédent</a>. Je n&#8217;ai pas d&#8217;élément à ajouter à ce que j&#8217;ai déjà dit précédemment. Malgré quelques problématiques humaines, je suis satisfait du réseau que nous avons mis en place lors de cette édition de l&#8217;Utt Arena.</p>
<p>Pour commencer cette conclusion, voici un récapitulatif de tous les billets de cette série :</p>
<ul>
<li><a href="../2010/03/architecture-reseau-dune-lan-party-introduction/">Architecture  réseau d’une LAN Party : Introduction</a></li>
<li><a href="../2010/03/architecture-reseau-d%e2%80%99une-lan-party-conception/">Architecture  réseau d’une LAN Party : Conception</a></li>
<li><a href="../2010/03/architecture-reseau-d%e2%80%99une-lan-party-filtrage/">Architecture  réseau d’une LAN Party : Filtrage</a></li>
<li><a href="../2010/03/architecture-reseau-d%e2%80%99une-lan-party-configuration-des-asa/">Architecture  réseau d’une LAN Party : Configuration des ASA</a></li>
<li><a href="../2010/04/architecture-reseau-d%e2%80%99une-lan-party-dhcp/">Architecture  réseau d’une LAN Party : DHCP</a></li>
<li><a href="../2010/04/architecture-reseau-d%e2%80%99une-lan-party-la-latence/">Architecture  réseau d’une LAN Party : La latence</a></li>
<li><a href="../2010/04/architecture-reseau-d%e2%80%99une-lan-party-premier-bilan/">Architecture  réseau d’une LAN Party : Premier bilan</a></li>
</ul>
<p>Ensuite, je vous ai fait un <a href="http://www.antoinebenkemoun.fr/data/conf-lan-ua.tgz">paquet</a> avec toutes les configurations des équipements. Il s&#8217;agit des configurations que nous avons sauvegardé à la fin de l&#8217;événement, elle n&#8217;inclut donc pas la configuration avant la transition vers les ASA. Pour rappel, les 3750 s&#8217;appellaient Kilimandjaro et StHelens et les ASA s&#8217;appellaient Etna, Kilauea, Fuji et Pinatubo.</p>
<p>Nous avons mis en place une weathermap lors de l&#8217;événement dont voici une capture. A ce moment, les joueurs tentaient de récupérer le GUI CS:Source. La bande passante du serveur étant limitée à 100Mbit/s, la montée en couleur a été réduite. Si vous souhaitez visionner la carte en taille réelle, il suffit de cliquer dessus.</p>
<p style="text-align: center;"><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/04/Weathermap3.png"><img class="size-medium wp-image-1087 aligncenter" title="Weathermap3" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/04/Weathermap3-300x176.png" alt="" width="300" height="176" /></a></p>
<p style="text-align: left;">Les résultats de Smokeping ont été également très satisfaisants. La capture d&#8217;écran ci-dessous montre un graph de la latence entre le serveur Smokeping et une interface IP d&#8217;une 3750 dans le LAN des joueurs. Les données avant le &laquo;&nbsp;trou&nbsp;&raquo; correspondent aux mesures faites avant la transition vers les ASA. On remarque un pic de latence suite à la transition. Cela correspond à la récupération du GUI par les joueurs et n&#8217;a donc pas impacté les tournois.</p>
<p style="text-align: center;"><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/04/SmokePing-CS4-30h.png"><img class="size-medium wp-image-1089   aligncenter" title="SmokePing-CS4-30h" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/04/SmokePing-CS4-30h-300x136.png" alt="" width="300" height="136" /></a></p>
<p style="text-align: left;">Pour ceux que cela pourrait intéresser, j&#8217;ai fait un <a href="http://www.antoinebenkemoun.fr/data/graphs_ua.zip">paquet</a> contenant de nombreux graphs que j&#8217;ai pu sauvegarder le dernier jour de la LAN avant de tout déconnecter. Il y a de nombreux graphs incluant notamment les uplinks vers les tables et les interfaces des ASA.</p>
<p style="text-align: left;">Au final, la gestion du réseau de cet événement fut un réel plaisir et m&#8217;a permis d&#8217;acquérir de nouvelles compétences notamment au niveau de l&#8217;utilisation des Cisco ASA et 3750 mais aussi des outils Cacti et Smokeping. Ici s&#8217;achève donc la plus longue série de billets de ce blog jusqu&#8217;à présent.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-conclusion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Architecture réseau d’une LAN Party : Premier bilan</title>
		<link>http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-premier-bilan/</link>
		<comments>http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-premier-bilan/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 07:43:44 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Libre]]></category>
		<category><![CDATA[Réseau]]></category>
		<category><![CDATA[Evénement]]></category>
		<category><![CDATA[Fibre Optique]]></category>
		<category><![CDATA[LAN]]></category>
		<category><![CDATA[Sécurité]]></category>

		<guid isPermaLink="false">http://www.antoinebenkemoun.fr/?p=1062</guid>
		<description><![CDATA[Ce billet servira de premier bilan en ce qui concerne le réseau de l&#8217;Utt Arena 2010. Je m&#8217;excuse d&#8217;avance si ce billet n&#8217;est pas des plus clairs mais la fatigue se fait réellement sentir au troisième jour de LAN. Je vais effectuer un bilan technique des solutions que nous avons implémenté. Phase 1 Tout d&#8217;abord, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/03/gathering.jpg"><img class="alignleft size-medium wp-image-992" title="gathering" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/03/gathering-300x225.jpg" alt="" width="192" height="144" /></a>Ce billet servira de premier bilan en ce qui concerne le réseau de l&#8217;Utt Arena 2010. Je m&#8217;excuse d&#8217;avance si ce billet n&#8217;est pas des plus clairs mais la fatigue se fait réellement sentir au troisième jour de LAN. Je vais effectuer un bilan technique des solutions que nous avons implémenté.</p>
<h3>Phase 1</h3>
<p>Tout d&#8217;abord, nous n&#8217;avions pas la possibilité d&#8217;avoir les équipements réseau type Cisco ASA et 2800 avant le Samedi midi car ils n&#8217;arrivaient pas avant ce moment là. Nous avons donc du faire avec une solution secondaire par le biais des 3750. Cela était parfaitement prévu depuis quelques semaines mais je n&#8217;avais pas souhaité en parler afin d&#8217;éviter l&#8217;effet placebo lors de la transition vers le réseau définitif.</p>
<p>La mise en place des deux 3750 s&#8217;est faite sans aucun soucis particulier. Le premier 3750 nommé Kilimandjaro disposait d&#8217;une interface IP dans tous les VLAN et effectuer le routage entre ces derniers. Le second 3750 nommé StHelens avait pour seule fonctionnalité la commutation des paquets associées à ses interfaces. Nous avions également prévu ce second 3750 afin d&#8217;avoir une solution de secours en cas de panne du premier 3750.</p>
<h3>Transition</h3>
<p>Lorsque les ASA sont arrivés, nous avons dû effectuer la transition du réseau initial vers le réseau prévu. Les joueurs n&#8217;ont pas été mis au courant de ce changement afin d&#8217;éviter un effet placebo qui correspondrait à voir des pannes partout sans réelle raison. Les organisateurs ont cependant été mis au courant ce qui a provoqué une avalanche de remontées de problèmes divers et, en grande partie, sans aucun rapport avec transition. La gestion des remontées de ces problèmes a été plutôt mauvaise car tous les organisateurs remontaient vers l&#8217;équipe réseau tous les problèmes, incluant ceux n&#8217;ayant aucun rapport de près ou de loin avec le réseau.</p>
<p><a href="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/04/IMG_29481.png"><img class="size-medium wp-image-1073 alignright" title="IMG_2948" src="http://www.antoinebenkemoun.fr/wp-content/uploads/2010/04/IMG_29481-225x300.png" alt="" width="225" height="300" /></a>Nous avons racké les ASA dans la baie prévue à cet effet. J&#8217;évoquerais l&#8217;architecture physique ultérieurement. Nous avons ensuite injecté les configurations en port série et nous avons validé que nous avions bien un accès Telnet à ses équipements afin d&#8217;éviter de mauvaises surprises. Nous avons ensuite connecté tous les ports de Management et d&#8217;interconnexion des ASA afin qu&#8217;ils prennent connaissance de la topologie IP. Nous avons ensuite basculé les interfaces IP du 3750 vers les ASA une par une. Nous avons tout de même laissé une interface par VLAN sur les 3750 pour la fonctionnalité DHCP. Pour les routeurs, nous avons appliqué une méthodologie similaire.</p>
<p>Lors de la transition, nous avions donc une partie des VLAN routés par le 3750 et une partie des VLAN routés par les ASA/2800. Cette configuration temporaire a impliqué un routage asymétrique. Autant les routeurs sont peu sensibles aux asymétries de routage, les ASA ne le sont pas car ils effectuent un suivi de la session TCP. Nous avons réussir à contenir en bonne partie l&#8217;asymétrie du routage en jouant avec les identifiants de routeur OSPF ou du moins on pense que ce fut le cas. De toute manière, la transition a duré une petite heure.</p>
<p>Une fois la topologie reconstituée, nous avons coupé l&#8217;OSPF sur le 3750 afin qu&#8217;il soit exclu du processus de routage et nous avons laissé les ASA et les 2800 faire leur travail. Une coupure d&#8217;une trentaine de secondes est induite par la réélection OSPF et le recalcul des routes.</p>
<h3>Phase 2</h3>
<p>Une fois toute l&#8217;architecture en place, nous avons pu commencé à débugger nos configurations. Nous avons essentiellement eu des soucis de configuration de VLAN sur les switchs que nous avons mis un peu de temps à corriger. Les remontées de problèmes pertinentes ont mis un peu de temps à nous parvenir réellement car elles étaient noyées dans un volume assez important de demandes.</p>
<p>Nous n&#8217;avons pas rencontré de problème particulier lié à notre architecture réseau suite aux reconfigurations initiales. Les joueurs Warcraft III ont rencontré de nombreux problèmes de connexion aux parties alors qu&#8217;ils étaient tous dans le même VLAN voire sur le même switch. Nous n&#8217;avons pas réussi à déterminer l&#8217;origine de ce problème épisodique. La piste d&#8217;un applicatif malicieux est privilégiée car de multiples changements de switch et un passage en IP fixe n&#8217;ont apporté aucune solution à ce problème. La latence est tout à fait correcte selon nos mesures bien que nous rencontrons quelques problèmes du coté des serveurs CSS qui se montrent quelque peu capricieux. Nous avons mis le LLQ pour le principe mais la différence de latence ne parait pas significative.</p>
<p>Au final, la préparation nous a permis d&#8217;effectuer une transition propre et plutôt efficace. La vraie difficulté a été la qualification et la pertinence des problèmes remontés aux administrateurs réseaux. Je referais un point une fois l&#8217;évènement passé.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antoinebenkemoun.fr/2010/04/architecture-reseau-d%e2%80%99une-lan-party-premier-bilan/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

