<?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>Eolya Consulting &#187; Debian</title>
	<atom:link href="http://www.eolya.fr/category/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eolya.fr</link>
	<description>Moteurs de recherche d&#039;entreprise et verticaux</description>
	<lastBuildDate>Thu, 24 Nov 2011 10:52:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Installation d&#8217;un serveur Linux Debian 6.0 (Squeeze)</title>
		<link>http://www.eolya.fr/2011/02/06/installation-dun-serveur-linux-debian-6-0-squeeze/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installation-dun-serveur-linux-debian-6-0-squeeze</link>
		<comments>http://www.eolya.fr/2011/02/06/installation-dun-serveur-linux-debian-6-0-squeeze/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 15:10:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.zoonix.fr/?p=850</guid>
		<description><![CDATA[Debian 6.0 Squeeze est disponible depuis aujourd&#8217;hui. C&#8217;est l&#8217;occasion de mettre à jour l&#8217;article Installation d&#8217;un serveur Linux Debian qui à l&#8217;époque a été écrit pour une version Debian 5.0 Lenny. Pour cet article, je pars d&#8217;une image debian-6.0.0-amd64-netinst.iso. Je déroule la procédure d&#8217;installation simplement afin d&#8217;arriver à un serveur de base vierge d&#8217;interface graphique [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-126" title="debian1" src="http://www.zoonix.fr/uploads/2008/12/debian1.jpg" alt="debian1" width="84" height="88" /><strong>Debian 6.0 Squeeze</strong> est disponible depuis aujourd&#8217;hui. C&#8217;est l&#8217;occasion de mettre à jour l&#8217;article <a href="http://www.zoonix.fr/2008/12/15/installation-serveur-linux-debian/">Installation d&#8217;un serveur Linux Debian</a> qui à l&#8217;époque a été écrit pour une version <strong>Debian 5.0 Lenny</strong>.</p>
<p>Pour cet article, je pars d&#8217;une image debian-6.0.0-amd64-netinst.iso. Je déroule la procédure d&#8217;installation simplement afin d&#8217;arriver à un serveur de base vierge d&#8217;interface graphique et de tous logiciels sauf SSH. Je vais décrire maintenant les étapes de l&#8217;installation des packages complémentaires afin de disposer de Apache, MySQL, PHP, Java et Tomcat. Ceci peut vous intéresser, mais c&#8217;est également un aide mémoire pour moi-même. C&#8217;est un peu technique, mais je n&#8217;entre pas dans les détails.</p>
<p>Dans le précédent article j&#8217;utilisais le gestionnaire de package <strong>Apt</strong>. Je profite de cette mise à jour pour utiliser <strong>Aptitude</strong>. Afin que la gestion ds dépendance, les mises à jours et les suppressions fonctionnent correctement, il faut éviter d&#8217;utiliser alternativement les 2 outils sur un même serveur. Il faut donc faire attention à ne plus utiliser par réflexe apt-get et apt-cache.</p>
<p><span id="more-850"></span>Les commandes qui sont indiquées doivent être exécutées sous le compte root ou avec <strong>sudo </strong>(on va voir sudo plus loin).</p>
<p><strong>Mettre à jour les dépots Apt / Aptitude<br />
</strong></p>
<p><strong>Apt</strong> et <strong>Aptitude</strong>, sont les outils qui permettent d&#8217;installer des packages et de gérer les dépendances. Les 2 outils utilisent les mêmes dépots. La mise à jour en question a pour but de mettre à jour la liste des packages disponibles.</p>
<p>Je commence par modifier le fichier /etc/apt/sources.list pour ajouter les dépots contrib et non-free ainsi que pour désactiver le CDROM. Mon fichier contient ceci :</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 NETINST Binary-1 20110205-14:31]/ squeeze main</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 NETINST Binary-1 20110205-14:31]/ squeeze main</span>
&nbsp;
deb http<span style="color: #339933;">://</span>ftp<span style="color: #339933;">.</span>fr<span style="color: #339933;">.</span>debian<span style="color: #339933;">.</span>org<span style="color: #339933;">/</span>debian<span style="color: #339933;">/</span> squeeze main contrib non<span style="color: #339933;">-</span>free
deb<span style="color: #339933;">-</span>src http<span style="color: #339933;">://</span>ftp<span style="color: #339933;">.</span>fr<span style="color: #339933;">.</span>debian<span style="color: #339933;">.</span>org<span style="color: #339933;">/</span>debian<span style="color: #339933;">/</span> squeeze main contrib non<span style="color: #339933;">-</span>free
&nbsp;
deb http<span style="color: #339933;">://</span>security<span style="color: #339933;">.</span>debian<span style="color: #339933;">.</span>org<span style="color: #339933;">/</span> squeeze<span style="color: #339933;">/</span>updates main contrib non<span style="color: #339933;">-</span>free
deb<span style="color: #339933;">-</span>src http<span style="color: #339933;">://</span>security<span style="color: #339933;">.</span>debian<span style="color: #339933;">.</span>org<span style="color: #339933;">/</span> squeeze<span style="color: #339933;">/</span>updates main contrib non<span style="color: #339933;">-</span>free
&nbsp;
deb http<span style="color: #339933;">://</span>ftp<span style="color: #339933;">.</span>fr<span style="color: #339933;">.</span>debian<span style="color: #339933;">.</span>org<span style="color: #339933;">/</span>debian<span style="color: #339933;">/</span> squeeze<span style="color: #339933;">-</span>updates main contrib non<span style="color: #339933;">-</span>free
deb<span style="color: #339933;">-</span>src http<span style="color: #339933;">://</span>ftp<span style="color: #339933;">.</span>fr<span style="color: #339933;">.</span>debian<span style="color: #339933;">.</span>org<span style="color: #339933;">/</span>debian<span style="color: #339933;">/</span> squeeze<span style="color: #339933;">-</span>updates main contrib non<span style="color: #339933;">-</span>free</pre></div></div>

<p>Et enfin :</p>
<pre>aptitude update</pre>
<p><strong>Installation du serveur OpenSSH</strong></p>
<p>Dans mon installation de base, j&#8217;ai installé le serveur SSH sur le serveur. Si ce n&#8217;est pas fait, il faut installer <strong>OpenSSH</strong> depuis la console physique de serveur.</p>
<pre>aptitude install openssh-server</pre>
<p><strong>Création de l&#8217;utilisateur &laquo;&nbsp;dominique&nbsp;&raquo;</strong></p>
<pre>useradd -d /home/dominique -m -s /bin/bash dominique      

passwd</pre>
<p><strong>Installer sudo</strong></p>
<p><strong>sudo </strong>permet d&#8217;exécuter des commandes comme utilisateur root sans être connecté sous le compte root.</p>
<pre>aptitude install sudo</pre>
<p>Déclarer l&#8217;utilisateur dominique dans sudo en ajoutant la ligne suivante dans &laquo;&nbsp;<em>/etc/sudoers</em>&nbsp;&raquo;</p>
<pre>dominique ALL=(ALL) ALL</pre>
<p>A partir de là, tout se fait si possible sous le compte &laquo;&nbsp;dominique&nbsp;&raquo; (et utilisation de sudo pour les actions nécessitants les droits root).</p>
<p><strong>Augmentation des limites systèmes (optionnel)</strong></p>
<p>Pour mes besoins j&#8217;ai besoin d&#8217;augmenter certaines limites systèmes. Cela se fait en éditant le fichier  /etc/security/limits.conf</p>
<pre>vi /etc/security/limits.conf</pre>
<p>Personnellement, j&#8217;y ajoute les lignes suivantes :</p>
<pre>*                soft    nofile        8192
*                hard    nofile        16384
*                soft    stack         16384
*                hard    stack         32768</pre>
<p><strong>Installation de apache2.2</strong></p>
<pre>sudo aptitude install apache2</pre>
<p>Activer le mode rewrite</p>
<pre>sudo a2enmod rewrite</pre>
<pre>sudo /etc/init.d/apache2 restart</pre>
<p><strong>Installation de mysql server 5.1</strong></p>
<pre>sudo aptitude install mysql-server-5.1</pre>
<p><strong>Installation PHP 5</strong></p>
<p>J&#8217;ai besoin de PHP 5 et quelques librairies complémentaires (curl par exemple pour appeler des web services en http, mysql, PEAR, &#8230;).</p>
<pre>sudo aptitude install php5 php5-cli libapache2-mod-php5 php5-curl php5-gd php5-mysql php5-dev
sudo aptitude install locales-all</pre>
<p><strong>Installation et mise à jour de PHP PEAR</strong></p>
<pre>sudo aptitude install php-pear</pre>
<pre>sudo pear upgrade PEAR</pre>
<p>Puis installation de quelques modules Pear</p>
<pre>sudo pear install Mail Net_Smtp</pre>
<p><strong>Modification du php.ini</strong></p>
<p>Editer &laquo;&nbsp;/etc/php5/apache2.php.ini&nbsp;&raquo; et mettre</p>
<pre>output_buffering=4096</pre>
<p><strong>Installation d&#8217;un JDK</strong></p>
<p>On peut soit installer openJDK 6 ou Sun JDK 6</p>
<p><strong>openJDK<br />
</strong></p>
<pre>sudo aptitude install openjdk-6-jre openjdk-6-jdk</pre>
<p><strong>Sun JDK<br />
</strong></p>
<pre>sudo aptitude install sun-java6-jdk sun-java6-fonts</pre>
<p><strong>Installation de tomcat 6<br />
</strong></p>
<pre>sudo aptitude install tomcat6 tomcat6-admin</pre>
<p><strong>Installation de pdftotext</strong></p>
<pre>sudo aptitude install xpdf-utils</pre>
<p><strong>Installation de lftp</strong></p>
<p>lftp est un client ftp qui sera utile pour mettre les sauvegardes sur le serveur FTP mis a disposition par OVH.</p>
<pre>sudo aptitude install lftp</pre>
<p><strong>Paramétrage de apache</strong></p>
<p>Copier le fichier de configuration de mon virtualhost dans &laquo;&nbsp;<em>/etc/apache2/site-available</em>&laquo;&nbsp;,<br />
activer le site et relancer Apache.</p>
<pre>sudo a2ensite xxxxxx (ou xxxxxx est le nom du fichier .conf du virtualhost)
sudo /etc/init.d/apache2 reload</pre>
<p><strong>Paramétrage Tomcat</strong></p>
<p>Dans /var/lib/tomcat6/conf/server.xml, on vérifie que le connecteur non-SSL inclut l&#8217;attribut &laquo;&nbsp;URIEncoding=&nbsp;&raquo;UTF-8&#8243;&nbsp;&raquo;. C&#8217;est le cas apparemment par défaut maintenant.</p>
<pre>    &lt;!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --&gt;
    &lt;Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443"/&gt;</pre>
<p>Sous Debian, Tomcat est très sécurisé. Une autre manière radicale de passer outre cette sécurisation est de la désactiver dans le fichier &laquo;&nbsp;/etc/init.d/tomcat6&#8243;, en indiquant :</p>
<pre>TOMCAT6_SECURITY=no</pre>
<p>Je constate que c&#8217;est la configuration par défaut maintenant. Par contre, je ne me permet ceci parce que je n&#8217;autorise l&#8217;accès à mon serveur Tomcat que localement. Dans /var/lib/tomcat6/conf/server.xml, j&#8217;ajoute une définition de valve au niveau engine :</p>
<pre>    &lt;Engine name="Catalina" defaultHost="localhost"&gt;
      &lt;Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127.0.0.1" deny=""/&gt;</pre>
<p>Je change également le fichier &laquo;&nbsp;/etc/default/tomcat6&#8243; pour lui indiquer le bon timezone et augmenter ses ressources mémoires. Editer le fichier &laquo;&nbsp;/etc/default/tomcat6&#8243;, pour modifier la ligne JAVA_OPTS=&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">JAVA_OPTS<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;-Djava.awt.headless=true -Xms256M -Xmx1024M -Duser.timezone=Europe/Paris -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC&quot;</span></pre></div></div>

<p>Relancer tomcat</p>
<pre>sudo /etc/init.d/tomcat6 restart</pre>
<p><strong>Installer le compilateur GCC et l&#8217;outil make</strong></p>
<pre>sudo aptitude install gcc g++ make</pre>
<p><strong>Installer memcached</strong></p>
<pre>sudo aptitude install memcached php5-memcache</pre>
<p>Dans <a href="http://www.zoonix.fr/2008/02/24/memcached-mise-en-cache-et-partage-de-donnees-entre-applications/">cet article</a>,  je décris memcached.</p>
<p>Pour son installation à partir des sources, suivre la procédure parfaitement décrite dans <a href="http://www.lullabot.com/articles/how_install_memcache_debian_etch" target="_blank">cet article</a>. Par contre, il faut vérifier quelles sont les dernières versions des modules à télécharger.</p>
<p><strong>Installer ntpdate<br />
</strong></p>
<pre>sudo aptitude install ntpdate</pre>
<p>Pour mettre à l&#8217;heure en utilisant le serveur de temps de l&#8217;observatoire de Paris</p>
<pre>sudo /usr/sbin/ntpdate ntp-p1.obspm.fr</pre>
<p>Dans la crontab ajouter la ligne suivante afin de synchroniser l&#8217;heure tous les matins à 3h</p>
<pre>0 3 * * * root /usr/sbin/ntpdate ntp-p1.obspm.fr &gt;/dev/null</pre>
<p><strong>Installer fail2ban</strong></p>
<p>En fonctionnement, un serveur s&#8217;expose à des attaques. <strong>Fail2ban </strong>permet de se protéger contre les attaques de masse sur certains ports TCP ou UDP en attente de connexion. Le premier protocole à protéger (le seul exposé à la livraison du serveur lorsque qu&#8217;il n&#8217;y a pas de logiciel complémentaire installé) est <strong>ssh</strong>. <strong>Ssh</strong> permet de prendre la main sur un serveur à distance. Mais si on connaît le port d&#8217;attente (22 par défaut) et le mot de passe root, on peut tout faire sur le serveur. <strong>Fail2ban</strong> scrute les logs des services en attente de connexion pour déterminer si une attaque est en cours et si donc il doit bloquer l&#8217;adresse IP de l&#8217;attaquant.</p>
<pre>sudo aptitude install fail2ban</pre>
<p>dans &laquo;&nbsp;<em>/etc/fail2ban/jail.conf&nbsp;&raquo;</em>, j&#8217;ajout mon ip perso dans les ip a ignorer</p>
<p>ignoreip = 127.0.0.1 82.xxx.xxx.xxx</p>
<p>redémarrage de fail2ban</p>
<pre>sudo /etc/init.d/fail2ban restart</pre>
<p>Concernant la sécurité, on peut  (et on doit) aller plus loin, mais cela n&#8217;ai pas couvert par cet article.</p>
<p><strong>Cas de l&#8217;installation sous Vmware server 2.0</strong></p>
<p>Dans ce cas, il faut installer les vmware tools. Pour cela :</p>
<p>1. Dans l&#8217;administration Web Vmware Server 2.0, cliquer sur &laquo;&nbsp;Install VMware Tools&nbsp;&raquo; du serveur en question</p>
<p>2. Ouvrir une console Vmware pour accéder au serveur, se connecter sous le compte root et exécuter les commandes suivantes :</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">aptitude install autoconf automake binutils cpp gcc linux<span style="color: #339933;">-</span>headers<span style="color: #339933;">-</span>$<span style="color: #009900;">&#40;</span>uname <span style="color: #339933;">-</span>r<span style="color: #009900;">&#41;</span> make psmisc
mount <span style="color: #339933;">/</span>media<span style="color: #339933;">/</span>cdrom
cp <span style="color: #339933;">/</span>media<span style="color: #339933;">/</span>cdrom<span style="color: #339933;">/</span>VMwareTools<span style="color: #339933;">-</span>7.7.6<span style="color: #339933;">-</span><span style="color: #0000dd;">203138</span>.<span style="color: #202020;">tar</span>.<span style="color: #202020;">gz</span> <span style="color: #339933;">/</span>tmp<span style="color: #339933;">/</span>.
<span style="color: #202020;">cd</span> <span style="color: #339933;">/</span>tmp<span style="color: #339933;">/</span>
tar xvfz VMwareTools<span style="color: #339933;">-</span>7.7.6<span style="color: #339933;">-</span><span style="color: #0000dd;">203138</span>.<span style="color: #202020;">tar</span>.<span style="color: #202020;">gz</span>
cd vmware<span style="color: #339933;">-</span>tools<span style="color: #339933;">-</span>distrib<span style="color: #339933;">/</span>
.<span style="color: #339933;">/</span>vmware<span style="color: #339933;">-</span>install.<span style="color: #202020;">pl</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.eolya.fr/2011/02/06/installation-dun-serveur-linux-debian-6-0-squeeze/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installation de Munin sur Debian Lenny</title>
		<link>http://www.eolya.fr/2010/10/12/installation-de-munin-sur-debian-lenny/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installation-de-munin-sur-debian-lenny</link>
		<comments>http://www.eolya.fr/2010/10/12/installation-de-munin-sur-debian-lenny/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 14:52:06 +0000</pubDate>
		<dc:creator>dominique</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Technique]]></category>

		<guid isPermaLink="false">http://www.zoonix.fr/?p=655</guid>
		<description><![CDATA[Cet article d&#233;crit l&#39;installation de base du moniteur de ressources Numin, puis fourni un lien sur un article d&#233;crivant comment ajouter un plugin pour le monitoring des vhosts apache. Activation des modules apache : sudo a2enmod status sudo a2enmod info Installation de Munin (voir&#160;http://www.howtoforge.com/server-monitoring-with-munin-and-monit-on-debian-lenny) : sudo apt-get install munin munin-node libwww-perl vi /etc/munin/munin.conf pour modifier [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zoonix.fr/uploads/2010/10/munin.png"><img alt="" class="alignleft size-full wp-image-663" src="http://www.zoonix.fr/uploads/2010/10/munin.png" style="width: 121px; height: 30px;" title="munin" /></a>Cet article d&eacute;crit l&#39;installation de base du moniteur de ressources Numin, puis fourni un lien sur un article d&eacute;crivant comment ajouter un plugin pour le monitoring des vhosts apache.<span id="more-655"></span></p>
<h4>Activation des modules apache :</h4>
<pre>sudo a2enmod status
sudo a2enmod info</pre>
<h4>Installation de Munin (voir&nbsp;http://www.howtoforge.com/server-monitoring-with-munin-and-monit-on-debian-lenny) :</h4>
<pre>sudo apt-get install munin munin-node libwww-perl
vi /etc/munin/munin.conf pour modifier [localhost.localdomain]
sudo /etc/init.d/munin-node restart
</pre>
<h4>Activation de plugin Munin qui ne le sont pas par d&eacute;faut (http://www.crashdump.fr/tutoriels/munin-le-top-du-monitoring-3/) :</h4>
<pre>sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/
sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/
sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/
sudo ln -s /usr/share/munin/plugins/netstat /etc/munin/plugins/netstat
sudo ln -s /usr/share/munin/plugins/uptime /etc/munin/plugins/uptime</pre>
<h4>Modification des droits pour le plugin netstat :</h4>
<p>Cr&eacute;er le fichier&nbsp;/etc/munin/plugin-conf.d/netstat</p>
<pre>sudo vi /etc/munin/plugin-conf.d/netstat</pre>
<p>avec le contenu suivant</p>
<pre>[netstat]
user root</pre>
<h4>Pour le monitoring des vhost apache :</h4>
<p><a href="http://stubbedtoe.co.nz/index.php/2009/09/apache-vhost-monitoring-with-munin/">http://stubbedtoe.co.nz/index.php/2009/09/apache-vhost-monitoring-with-munin/</a></p>
<h4>Un plugin fail2ban :</h4>
<p><a href="http://www.majorxtrem.be/2009/08/14/plugins-fail2ban-pour-munin/" target="_blank">http://www.majorxtrem.be/2009/08/14/plugins-fail2ban-pour-munin/</a></p>
<p>Penser &agrave; ajouter le droit d&#39;ex&eacute;cution sur le plugin</p>
<pre>sudo chmod +x /usr/share/munin/plugins/fail2ban
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.eolya.fr/2010/10/12/installation-de-munin-sur-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer Atlassian Jira 4.1 et Confluence 3.3 sur Debian Lenny avec Tomcat 5.5 et MySQL</title>
		<link>http://www.eolya.fr/2010/10/11/installer-atlassian-jira-4-1-et-confluence-3-3-sur-debian-lenny-avec-tomcat-5-5-et-mysql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installer-atlassian-jira-4-1-et-confluence-3-3-sur-debian-lenny-avec-tomcat-5-5-et-mysql</link>
		<comments>http://www.eolya.fr/2010/10/11/installer-atlassian-jira-4-1-et-confluence-3-3-sur-debian-lenny-avec-tomcat-5-5-et-mysql/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 08:38:29 +0000</pubDate>
		<dc:creator>dominique</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Technique]]></category>

		<guid isPermaLink="false">http://www.zoonix.fr/?p=629</guid>
		<description><![CDATA[Cet article est un r&#233;sum&#233; des proc&#233;dures d&#39;installation de Jira et Confluence telle qu&#39;on peut les trouver sur le site de Atlassian. Il est focalis&#233; sur un environnement Tomcat 5.5 et MySQL. Pre-requis Il s&#39;agit des pre-requis consolid&#233;s pour Jira et Confluence, notament pour la configuration de Tomcat qui n&#233;cessite quelques ajustements. Avoir JDK 6 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zoonix.fr/uploads/2010/10/logo_atlassian1.png"><img alt="" border="0" class="alignleft size-full wp-image-652" src="http://www.zoonix.fr/uploads/2010/10/logo_atlassian1.png" style="width: 130px; height: 30px;" title="logo_atlassian1" /></a>Cet article est un r&eacute;sum&eacute; des proc&eacute;dures d&#39;installation de Jira et Confluence telle qu&#39;on peut les trouver sur le site de <a href="http://www.atlassian.com/" target="_blank">Atlassian</a>. Il est focalis&eacute; sur un environnement Tomcat 5.5 et MySQL.<span id="more-629"></span></p>
<h3>Pre-requis</h3>
<p>Il s&#39;agit des pre-requis consolid&eacute;s pour Jira et Confluence, notament pour la configuration de Tomcat qui n&eacute;cessite quelques ajustements.</p>
<p>Avoir JDK 6 de Sun (openJDK 6 n&#39;est pas support&eacute; par Atlassian), Tomcat 5.5 et MySQL 5.x install&eacute;s.</p>
<p>Dans le fichier server.xml de Tomcat (/var/lib/tomcat5.5/conf/server.xml), ajouter le param&egrave;tre URIEncoding=&quot;UTF-8&quot; au connecteur &quot;non-SSL&quot;.</p>
<p>Dans le script de d&eacute;marrage de Tomcat (/etc/init.d/tomcat5.5), ajouter les param&egrave;tres suivants pour le d&eacute;marrage</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">if [ -z &amp;quot;$JAVA_OPTS&amp;quot; ]; then
    JAVA_OPTS=&amp;quot;-Djava.awt.headless=true -Xmx768M -Duser.timezone=Europe/Paris -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Dmail.mime.decodeparameters=true -XX:MaxPermSize=128m&amp;quot;
fi</pre></div></div>

<p>Dans /usr/share/tomcat5.5/common/lib, copier le fichier jar du connecteur java de MySQL disponible via cette page : <a href="http://www.mysql.com/downloads/connector/j/" target="_blank">http://www.mysql.com/downloads/connector/j/</a></p>
<h3>Jira</h3>
<p>Il s&#39;agit d&#39;installer la version EAR-WAR de Jira. La proc&eacute;dure d&#39;installation sur le site de Atlassian est &agrave; cette adresse :</p>
<p><a href="http://confluence.atlassian.com/display/JIRA/Installing+JIRA+WAR-EAR" target="_blank">http://confluence.atlassian.com/display/JIRA/Installing+JIRA+WAR-EAR</a></p>
<p>Cr&eacute;er la base de donn&eacute;e en utf-8 et donner les droits &agrave; un utilisateur.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">mysql&amp;gt; CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
mysql&amp;gt; grant all privileges on jiradb.* to &amp;#39;jira&amp;#39;@&amp;#39;localhost&amp;#39; identified by &amp;#39;jira&amp;#39; with grant option;</pre></div></div>

<p>T&eacute;l&eacute;charger la distribution &agrave; l&#39;adresse suivante : <a href="http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa" target="_blank">http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa</a></p>
<p>Au besoin, choisir le bon OS et afficher toutes les versions disponibles (&quot;show all&quot; au dessus du bouton &quot;download&quot;)</p>
<p>Contrairement &agrave; ce que demande la documentation sur le site de Atlassian, je ne cr&eacute;er pas de d&#39;utilisateur &quot;jira&quot;. J&#39;installe Jira dans /opt/atlassian.</p>
<p>D&eacute;compresser la distribution dans /opt/atlassian et cr&eacute;er un lien symbolique</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">gunzip atlassian-jira-enterprise-4.1.2.tar.gz
tar xf atlassian-jira-enterprise-4.1.2.tar
sudo chown -R un_utilisateur: /opt/atlassian
ln -s atlassian-jira-enterprise-4.1.2 jira</pre></div></div>

<p>J&#39;indique le Jira home path dans le fichier /opt/atlassian/jira/jira/edit-webapp/WEB-INF/classes/jira-application.properties</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">jira.home = /opt/atlassian/jira</pre></div></div>

<p>Donner les droits d&#39;&eacute;criture &agrave; tout le monde dans le r&eacute;pertoires /opt/atlassian/atlassian-jira-enterprise-4.1.2, /opt/atlassian/atlassian-jira-enterprise-4.1.2/cache et /opt/atlassian/atlassian-jira-enterprise-4.1.2/plugins</p>
<p>Configurer la connexion &agrave; la base de donn&eacute;es dans le fichier /opt/atlassian/jira/jira/edit-webapp/WEB-INF/classes/entityengine.xml&nbsp;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&amp;lt;datasource name=&amp;quot;defaultDS&amp;quot; field-type-name=&amp;quot;mysql&amp;quot;
    helper-class=&amp;quot;org.ofbiz.core.entity.GenericHelperDAO&amp;quot;
    check-on-start=&amp;quot;true&amp;quot;
    use-foreign-keys=&amp;quot;false&amp;quot;
    use-foreign-key-indices=&amp;quot;false&amp;quot;
    check-fks-on-start=&amp;quot;false&amp;quot;
    check-fk-indices-on-start=&amp;quot;false&amp;quot;
    add-missing-on-start=&amp;quot;true&amp;quot;
    check-indices-on-start=&amp;quot;true&amp;quot;&amp;gt;</pre></div></div>

<p>et v&eacute;rifier par la m&ecirc;me occasion :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&amp;lt;transaction-factory class=&amp;quot;org.ofbiz.core.entity.transaction.JNDIFactory&amp;quot;&amp;gt;
    &amp;lt;user-transaction-jndi jndi-server-name=&amp;quot;default&amp;quot; jndi-name= &amp;quot;java:comp/env/UserTransaction&amp;quot; /&amp;gt;&amp;nbsp;
    &amp;lt;transaction-manager-jndi jndi-server-name=&amp;quot;default&amp;quot; jndi-name=&amp;quot;java:comp/env/UserTransaction&amp;quot; /&amp;gt;
&amp;lt;/transaction-factory&amp;gt;</pre></div></div>

<p>Construire Jira</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">cd /opt/atlassian/jira
./build.sh</pre></div></div>

<p>Ajouter dans /usr/share/tomcat5.5/common/lib les librairies n&eacute;cessaires &agrave; jira et qui se trouvent sur le site Atlassian &agrave; l&#39;adresse : <a href="http://confluence.atlassian.com/download/attachments/200709089/jira-jars-tomcat5.zip?version=1&amp;modificationDate=1252474277460" target="_blank">http://confluence.atlassian.com/download/attachments/200709089/jira-jars-tomcat5.zip?version=1&amp;modificationDate=1252474277460</a></p>
<p>Stopper Tomcat</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">sudo /etc/init.d/tomcat5.5 stop</pre></div></div>

<p>Copier le fichier /opt/atlassian/jira/dist-tomcat/tomcat-5.5/jira.xml dans /var/lib/tomcat5.5/conf/Catalina/localhost</p>
<p>D&eacute;marrer Tomcat</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">sudo /etc/init.d/tomcat5.5 start</pre></div></div>

<h3>Confluence</h3>
<p>Cr&eacute;er la base de donn&eacute;e en utf-8 et donner les droits &agrave; un utilisateur.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">mysql&amp;gt; CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
mysql&amp;gt; grant all privileges on confluence.* to &amp;#39;confluence&amp;#39;@&amp;#39;localhost&amp;#39; identified by &amp;#39;confluence&amp;#39; with grant option;</pre></div></div>

<p>Il s&#39;agit de la version EAR-WAR de confluence. La proc&eacute;dure d&#39;installation sur le site de Atlassian est &agrave; cette adresse : <a href="http://confluence.atlassian.com/display/DOC/Installing+Confluence+EAR-WAR+on+Tomcat" target="_blank">http://confluence.atlassian.com/display/DOC/Installing+Confluence+EAR-WAR+on+Tomcat</a></p>
<p>T&eacute;l&eacute;charger la distribution &agrave; l&#39;adresse suivante : <a href="http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa" target="_blank">http://www.atlassian.com/software/confluence/ConfluenceDownloadCenter.jspa</a></p>
<p>Au besoin, choisir le bon OS et afficher toutes les versions disponibles (&quot;show all&quot; au dessus du bouton &quot;download&quot;)</p>
<p>D&eacute;compresser l&#39;archive dans /opt/atlassian et cr&eacute;er un lien symbolique</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">gunzip confluence-3.3.3.tar.gz
tar xf confluence-3.3.3.tar
sudo chown -R un_utilisateur: /opt/atlassian
ln -s confluence-3.3.3 confluence</pre></div></div>

<p>Donner les droits d&#39;&eacute;criture &agrave; tout le monde dans le r&eacute;pertoire confluence-3.3.3</p>
<p>Editer confluence/WEB-INF/classes/confluence-init.properties afin d&#39;indiquer le Confluence home path</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">confluence.home = /opt/atlassian/confluence</pre></div></div>

<p>Cr&eacute;er un fichier confluence.xml dans le r&eacute;pertoire conf/Catalina/localhost de Tomcat qui contient :</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">&amp;lt;Context path=&amp;quot;/confluence&amp;quot; docBase=&amp;quot;/opt/atlassian/confluence/confluence&amp;quot; debug=&amp;quot;0&amp;quot; reloadable=&amp;quot;true&amp;quot; /&amp;gt;</pre></div></div>

<p>Red&eacute;marrer Tomcat</p>
<p>Se connecter &agrave; confluence pour ex&eacute;cuter le wizard : http://serveur:8180/confluence/</p>
<h3>Probl&egrave;me connu</h3>
<p>Les menus de Confluence ne fonctionnent pas ou Confluence ne d&eacute;marre pas lorsque Conflunence et Jira sont h&eacute;berg&eacute;s dans le m&ecirc;me serveur Tomcat.</p>
<p>Ces probl&egrave;mes sont du au fait que ces deux produits utilisent une version diff&eacute;rente d&#39;une m&ecirc;me librairie Atlassian. Il s&#39;agit de org.apache.felix.main-2.0.0-atlassian-1.jar pour Jira et org.apache.felix.main-2.0.4-atlassian-3.jar pour Confluence. La solution consiste a :</p>
<ul>
<li>arr&ecirc;ter Tomcat</li>
<li>sauvegarder org.apache.felix.main-2.0.0-atlassian-1.jar de Jira</li>
<li>remplacer toutes les instances de org.apache.felix.main-2.0.0-atlassian-1.jar dans Jira (il y en a 2) par org.apache.felix.main-2.0.4-atlassian-3.jar de Confluence</li>
<li>d&eacute;marrer Tomcat</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.eolya.fr/2010/10/11/installer-atlassian-jira-4-1-et-confluence-3-3-sur-debian-lenny-avec-tomcat-5-5-et-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Déconnexions intempestives avec SSH</title>
		<link>http://www.eolya.fr/2010/01/11/deconnexions-intempestives-avec-ssh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=deconnexions-intempestives-avec-ssh</link>
		<comments>http://www.eolya.fr/2010/01/11/deconnexions-intempestives-avec-ssh/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 12:16:37 +0000</pubDate>
		<dc:creator>dominique</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Technique]]></category>

		<guid isPermaLink="false">http://www.zoonix.fr/?p=454</guid>
		<description><![CDATA[Avec ma connexion Numéricable (mais pas en ADSL avec Free), j&#8217;ai rencontré des problèmes de déconnexions SSH intempestives (aussi bien avec Putty qu&#8217;avec WinSCP). La solutions passe par une paramétrage du coté client pour envoyer des packets vides qui serviront à maintenir la connexion en vie. Avec Putty : Onglet Connections &#62; Seconds between keepalives [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zoonix.fr/uploads/2010/01/ssh1.jpg"><img class="alignleft size-full wp-image-489" title="ssh1" src="http://www.zoonix.fr/uploads/2010/01/ssh1.jpg" alt="ssh1" width="100" height="51" /></a>Avec ma connexion Numéricable (mais pas en ADSL avec Free), j&#8217;ai rencontré des problèmes de déconnexions SSH intempestives (aussi bien avec Putty qu&#8217;avec WinSCP).</p>
<p>La solutions passe par une paramétrage du coté client pour envoyer des packets vides qui serviront à maintenir la connexion en vie.</p>
<p>Avec Putty : Onglet Connections &gt; Seconds between keepalives : &laquo;&nbsp;60&#8243;</p>
<p>Sous Linux :  Dans &laquo;&nbsp;~/.ssh/config&nbsp;&raquo; &gt; &laquo;&nbsp;ServerAliveInterval 60&#8243;</p>
<p>Dans les cas ou cela est possible, cette configuration peut être réalisée coté serveur : dans &laquo;&nbsp;/etc/ssh/sshd_config&nbsp;&raquo; &gt; &laquo;&nbsp;ClientAliveInterval 60&#8243;</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eolya.fr/2010/01/11/deconnexions-intempestives-avec-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single Sign-On (SSO) avec CAS</title>
		<link>http://www.eolya.fr/2009/01/25/single-sign-on-sso-avec-cas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=single-sign-on-sso-avec-cas</link>
		<comments>http://www.eolya.fr/2009/01/25/single-sign-on-sso-avec-cas/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 16:52:18 +0000</pubDate>
		<dc:creator>dominique</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Technique]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CAS]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mod_auth_cas]]></category>
		<category><![CDATA[mod_cas]]></category>
		<category><![CDATA[openSSL]]></category>
		<category><![CDATA[phpCAS]]></category>
		<category><![CDATA[single sign-on]]></category>
		<category><![CDATA[sso]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.zoonix.fr/?p=107</guid>
		<description><![CDATA[Comme de souvent, c&#8217;est pour un projet en cours que je suis amené à m&#8217;intéresser aux solutions de SSO et donc de rédiger cet article. Qu&#8217;est-ce que le SSO ou Single Sign-On ? Il s&#8217;agit d&#8217;une technique permettant à un utilisateur de ne procéder qu&#8217;à une seule authentification pour accéder à plusieurs applications informatiques sécurisées [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-154" title="login" src="http://www.zoonix.fr/uploads/2009/01/login.jpeg" alt="login" width="71" height="71" />Comme de souvent, c&#8217;est pour un projet en cours que je suis amené à m&#8217;intéresser aux solutions de SSO et donc de rédiger cet article.</p>
<h3>Qu&#8217;est-ce que le SSO ou Single Sign-On ?</h3>
<p>Il s&#8217;agit d&#8217;une technique permettant à un utilisateur de ne procéder qu&#8217;à une seule <a title="Authentification" href="http://fr.wikipedia.org/wiki/Authentification">authentification</a> pour accéder à plusieurs applications informatiques sécurisées (généralement des sites Web).  Souvent dans une entreprise, les utilisateurs sont amenés à s&#8217;identifier dans différentes applications (intranet, courrier électronique, forums, agendas, &#8230;). Sans solution de SSO, il est nécessaire de s&#8217;identifier dans chacune de ces applications avec souvent des identifiants différents.<span id="more-107"></span></p>
<p>On trouve des articles qui expliquent le principe et les bienfaits du SSO sur Wikipédia en <a href="http://fr.wikipedia.org/wiki/Authentification_unique" target="_blank">Français</a> et en <a href="http://en.wikipedia.org/wiki/Single_sign-on" target="_blank">Anglais</a> (articles complémentaires).</p>
<h3>CAS une solution open source</h3>
<p>Dans le cadre du projet en question, le but est d&#8217;intégrer une application PHP à CAS (Central Authentication Service) une solution de SSO open source développée à l&#8217;origine par l&#8217;université de Yale puis reprise par JA-SIG. Le site officiel de CAS par JA-SIG est <a href="http://www.ja-sig.org/products/cas/index.html" target="_blank">ici</a>.</p>
<p>L&#8217;université de Rennes à l&#8217;occasion de la mise en place de CAS a élaboré un <a href="http://perso.univ-rennes1.fr/pascal.aubry/presentations/cas-jres2003/cas-jres2003-article.php" target="_blank">document très complet </a>sur le fonctionnement de CAS et notamment le dialogue entre le serveur SSO (CAS) et l&#8217;application cliente (l&#8217;application Web).</p>
<p>Les applications s&#8217;intègrent à CAS soit au niveau applicatif au moyen de librairies disponibles pour différents langages (PHP, ASP, C, Java, &#8230;), soit directement au niveau d&#8217;un serveur Web (module Apache pour CAS).</p>
<p>Ces Librairies ou modules Apache sont appelés clients CAS. <a href="http://www.ja-sig.org/wiki/display/CASC/Clients" target="_blank">En voici une liste disponible sur le site JA-SIG</a>.</p>
<p>De son coté, le serveur CAS s&#8217;interface avec un annuaire existant ou mis en place pour l&#8217;occasion (<a href="http://www.commentcamarche.net/contents/ldap/ldapintro.php3" target="_blank">annuaire LDAP</a> par exemple).</p>
<p>Pour réaliser le codage et les tests d&#8217;intégration d&#8217;une application avec CAS, il faut donc :</p>
<ul>
<li>Installer un serveur CAS qui va s&#8217;interfacer avec un annuaire existant.</li>
<li>Un client CAS</li>
</ul>
<h3>Mise en oeuvre de CAS</h3>
<p>J&#8217;ai procédé à l&#8217;installation d&#8217;un serveur CAS que j&#8217;ai interfacé avec une simple base MySQL contenant les noms et mots de passe des utilisateurs. Puis j&#8217;ai intégré l&#8217;appel au serveur CAS dans des pages PHP.</p>
<p>Voici les étapes de cette mise en oeuvre et des liens vers les tutoriels que j&#8217;ai suivis.</p>
<h4>Installation du serveur CAS sous Debian</h4>
<p>CAS est une application Java nécessitant un serveur d&#8217;application tel que Jetty, Tomcat, &#8230;</p>
<p>Voici <a href="http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-la-solution-de-single-sign-on-cas-sur-debian-4-0-etch" target="_blank">un tutoriel </a>qui explique l&#8217;installation complète de Java, Tomcat et de CAS sur un serveur Debian 4.0 Etch. Vérifiez si des versions plus récentes des différents composants sont disponibles. Bizarrement, ce tutoriel passe sous silence certains pré-prequis. Il s&#8217;agit de :</p>
<ul>
<li>Installer le JSDK 1.5 ou 1.6 de SUN sous Debian. Pour cela, vous aurez sans doute besoin de configurer les dépots APT. <a href="http://www.zoonix.fr/2008/12/20/installer-le-jdk-16-de-sun-sur-debian-etch/">Voici un article que j&#8217;ai écris à ce sujet</a>.</li>
<li>Installer OpenSSL sous Debian. Pour cela, exécuter la commande suivante (sous le compte root ou en sudo) : <span style="font-family: courier new,courier;">apt-get install openssl</span></li>
<li>Configurer <strong>Tomcat </strong>pour supporter le mode SSL (protocole https), qui est impératif pour une bonne sécurisation des échanges avec CAS. Pour cela, vous pouvez vous référer à <a href="http://blogs.dfwikilabs.org/pigui/2007/12/10/configuring-tomcat-55-for-ssl-using-openssl/" target="_blank">ce tutoriel</a> ou <a href="http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html" target="_blank">cette page</a> de la documentation Tomcat<a href="http://blogs.dfwikilabs.org/pigui/2007/12/10/configuring-tomcat-55-for-ssl-using-openssl/" target="_blank"><br />
</a></li>
</ul>
<h4>Intégration des appels CAS dans un application PHP</h4>
<p>Pour cette intégration, j&#8217;ai utilisé la librairie phpCAS. <a href="http://www.ja-sig.org/wiki/display/CASC/phpCAS" target="_blank">Cette page</a> du site JA-SIG est la documentation officielle avec tous les exemples nécessaires.</p>
<h4>Intégration de CAS au niveau du serveur WEB Apache</h4>
<p>Avec une intégration directement au niveau sur serveur Web Apache, ce n&#8217;est plus l&#8217;application Web qui est en charge de dialoguer avec le serveur CAS, mais directement le serveur Apache. L&#8217;application Web récupère l&#8217;identité de l&#8217;utilisateur dans les variables d&#8217;environnements du serveur Apache.</p>
<p>J&#8217;ai essayé de mettre en oeuvre cette solution mais je n&#8217;y suis pas parvenu car les informations que l&#8217;on trouve sur le sujet sont incomplètes, contradictoires ou obsolètes. Toutefois, ce que je peux mentionner est qu&#8217;il existe 2 modules CAS pour Apache : <strong>mod_cas</strong> qui semble obsolète et <strong>mod_auth_cas</strong> qui est la solution indiquée par JA-SIG.</p>
<p>De la documentation sur <strong>mod_cas</strong> est disponible <a href="http://www.esup-portail.org/consortium/espace/SSO_1B/tech/cas/cas_modApache2.html" target="_blank">ici</a> (ESUP) et <a href="http://www.ja-sig.org/wiki/display/CASC/MOD_CAS" target="_blank">ici</a> (JA-SIG).</p>
<p>De la documentation sur <strong>mod_auth_cas</strong> est disponible <a href="http://www.ja-sig.org/wiki/display/CASC/mod_auth_cas" target="_blank">ici </a>(JA-SIG).</p>
<p>Dans certaines de ces documentation, il est demandé de compiler les sources des modules. Il n&#8217;est pas mentionné qu&#8217;il faut disposer de différents outils et librairies de développement sous Debian. Pour les installer, il faut exécuter les commandes suivantes (sous le compte root ou en sudo) :</p>
<p><span style="font-family: courier new,courier;">sudo apt-get install gcc g++ make</span></p>
<p><span style="font-family: courier new,courier;">sudo apt-get install apache-dev apache2-threaded-dev</span></p>
<p><span style="font-family: courier new,courier;">sudo apt-get install kernel-package</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eolya.fr/2009/01/25/single-sign-on-sso-avec-cas/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Installation d&#8217;un serveur Linux Debian</title>
		<link>http://www.eolya.fr/2008/12/15/installation-serveur-linux-debian/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installation-serveur-linux-debian</link>
		<comments>http://www.eolya.fr/2008/12/15/installation-serveur-linux-debian/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 15:12:20 +0000</pubDate>
		<dc:creator>dominique</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Hébergement]]></category>
		<category><![CDATA[Technique]]></category>

		<guid isPermaLink="false">http://www.zoonix.fr/2008/02/12/installation-serveur-linux-debian/</guid>
		<description><![CDATA[Dans un pr&#233;c&#233;dent article, j&#39;explique que j&#39;ai eu besoin d&#39;un serveur d&#233;di&#233; et comment et ou&#160;je l&#39;ai lou&#233;. Dans cet article, je pars d&#39;une installation Debian 5.0 Lenny de base livr&#233;e par OVH (pour choisir la distribution Linux command&#233;e chez OVH, je me suis bas&#233; sur cette page). Je d&#233;crie les &#233;tapes de l&#39;installation des&#160; [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="debian1" class="alignleft size-full wp-image-126" height="88" src="http://www.zoonix.fr/uploads/2008/12/debian1.jpg" title="debian1" width="84" />Dans <a href="http://www.zoonix.fr/2008/02/12/location-dun-serveur-dedie/">un pr&eacute;c&eacute;dent article</a>, j&#39;explique que j&#39;ai eu besoin d&#39;un serveur d&eacute;di&eacute; et comment et ou&nbsp;je l&#39;ai lou&eacute;.</p>
<p>Dans cet article, je pars d&#39;une installation <strong>Debian 5.0 Lenny</strong> de base livr&eacute;e par <strong>OVH </strong>(pour choisir la distribution Linux command&eacute;e chez OVH, je me suis bas&eacute; sur cette <a href="http://www.archilinux.org/distributions/distributions.html" target="_blank" title="http://www.archilinux.org/distributions/distributions.html">page</a>). Je d&eacute;crie les &eacute;tapes de l&#39;installation des&nbsp; packages compl&eacute;mentaires afin de disposer de Apache, MySQL, PHP, Java et Tomcat. Ceci peut vous int&eacute;resser, mais c&#39;est &eacute;galement un aide m&eacute;moire pour moi-m&ecirc;me. C&#39;est un peu technique, mais je n&#39;entre pas dans les d&eacute;tails.</p>
<p>Les commandes qui sont indiqu&eacute;es doivent &ecirc;tre ex&eacute;cut&eacute;es sous le compte root ou en mode avec <strong>sudo </strong>(on va voir sudo plus loin).<span id="more-946"></span></p>
<p><strong>Mettre&nbsp;&agrave; jour le repository Apt</strong></p>
<p><strong>Apt</strong>, c&#39;est l&#39;outil qui permet d&#39;installer des packages. Un logiciel est constitu&eacute; de un ou plusieurs packages et peut &ecirc;tre d&eacute;pendant&nbsp;d&#39;autres packages. Les d&eacute;pendances entre packages sont g&eacute;r&eacute;es par la&nbsp;technologie de distribution par package. La mise&nbsp;&agrave; jour en question a pour but de mettre&nbsp;&agrave; jour la liste des packages disponibles.</p>
<pre>apt-get update
</pre>
<p>Pour &eacute;viter que les futurs installation de packages demande l&#39;insertion du CRDOM, on &eacute;dite le fichier listant les sources de packages (/etc/apt/sources.list) afin de supprimer le CDROM comme source. Pour cela, il faut mettre en commentaire avec vi mettre la ligne qui commence par &quot;deb cdrom:&quot;. On met un &quot;#&quot; en d&eacute;but de ligne.</p>
<p><strong>Installation du serveur OpenSSH</strong></p>
<p>Afin de pouvoir se connecter en SSH sur le serveur, il faut installer OpenSSH.</p>
<pre>apt-get install openssh-server
</pre>
<p><strong>Cr&eacute;ation de l&#39;utilisateur &quot;dominique&quot;</strong></p>
<pre>useradd -d /home/dominique -m -s /bin/bash dominique      

passwd</pre>
<p><strong>Installer sudo</strong></p>
<p><strong>sudo </strong>permet d&#39;ex&eacute;cuter des commandes comme utilisateur root sans &ecirc;tre connect&eacute; sous le compte root.</p>
<pre>apt-get install sudo</pre>
<p>D&eacute;clarer l&#39;utilisateur dominique dans sudo en ajoutant la ligne suivante dans &quot;<em>/etc/sudoer</em>&quot;</p>
<pre>dominique ALL=(ALL) ALL</pre>
<p>Red&eacute;marrer sudo</p>
<pre>/etc/init.d/sudo restart</pre>
<p>&agrave;&nbsp;partir de l&agrave;, tout se fait si possible sous le compte &quot;dominique&quot; (et utilisation de sudo pour les actions necessitants les droits root).</p>
<p><strong>Augmentation des limites syst&egrave;mes (optionnel)</strong></p>
<p>Pour mes besoins j&#39;ai besoin d&#39;augmenter certaines limites syst&egrave;mes. Cela se fait en &eacute;ditant le fichier&nbsp; /etc/security/limits.conf</p>
<pre>vi /etc/security/limits.conf
</pre>
<p>Personnellement, j&#39;y ajoute les lignes suivantes :</p>
<pre>*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soft&nbsp;&nbsp;&nbsp; nofile&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 8192
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hard&nbsp;&nbsp;&nbsp; nofile&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 16384
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soft&nbsp;&nbsp;&nbsp; stack &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 16384
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hard&nbsp;&nbsp;&nbsp; stack &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 32768
</pre>
<p><strong>Installation de apache2.2</strong></p>
<p>J&#39;installe Apache et l&#39;int&eacute;gration avec PHP 5</p>
<pre>sudo apt-get install apache2 libapache2-mod-php5</pre>
<p>Activer le mode rewrite</p>
<pre>sudo a2enmod rewrite</pre>
<pre>sudo /etc/init.d/apache2 force-reload</pre>
<p><strong>Installation de mysql server 5.0</strong></p>
<p>J&#39;installe mysql avec les librairies pour PHP 5.</p>
<pre>sudo apt-get install mysql-server-5.0 php5-mysql</pre>
<p><strong>Installation php5</strong></p>
<p>J&#39;ai besoin de PHP 5 et quelques librairies compl&eacute;mentaires (curl par exemple pour appeler des web services en http, mysql, PEAR, &#8230;).</p>
<pre>sudo apt-get install php5 php5-cli libapache2-mod-php5 php5-curl php5-gd <code>
</code>sudo apt-get install php5-mysql <code>php5-dev</code></pre>
<p><strong>Installation et mise &agrave; jour de PHP PEAR</strong></p>
<pre>sudo apt-get install php-pear</pre>
<pre>sudo pear upgrade PEAR</pre>
<p>Puis installation de quelques modules Pear</p>
<pre>sudo pear install Mail</pre>
<pre>sudo pear install Net_Smtp</pre>
<p><strong>Installation d&#39;un JDK</strong></p>
<p>On peut soit installer openJDK 6 ou Sun JDK 6</p>
<p><strong>openJDK<br />
	</strong></p>
<pre>sudo apt-get install openjdk-6-jre openjdk-6-jdk</pre>
<p><strong>Sun JDK<br />
	</strong></p>
<p>On commence par t&eacute;l&eacute;charger sur le site de sun la documentation en anglais du JDK (http://www.oracle.com/technetwork/java/javase/downloads/index.html). La derni&egrave;re version disponible du fichier au moment ou j&#39;&eacute;cris ces lignes est : jdk-6u21-docs.zip</p>
<p>Il faut copier se fichier dans le r&eacute;pertoire /tmp du serveur mais en le renommant jdk-6u12-docs.zip (version actuelle du JDK sun fournie par les repositories Debian).</p>
<p>Sans ce pr&eacute;-requis, l&#39;installation est stopp&eacute;e.</p>
<pre>sudo apt-get install sun-java6-jdk sun-java6-fonts</pre>
<p><strong>Installation de tomcat 5.5</strong></p>
<pre>sudo apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps</pre>
<p><strong>Installation de lftp</strong></p>
<p>lftp est un client ftp qui sera utile pour mettre les sauvegardes sur le serveur FTP mis a disposition par OVH.</p>
<pre>sudo apt-get install lftp</pre>
<p><strong>Param&eacute;trage de apache</strong></p>
<p>Copier le fichier de configuration&nbsp;de mon virtualhost&nbsp;dans &quot;<em>/etc/apache2/site-available</em>&quot;,<br />
	activer le site et relancer Apache.</p>
<pre>sudo a2ensite xxxxxx (ou xxxxxx est le nom du fichier .conf du virtualhost)
sudo /etc/init.d/apache2 reload</pre>
<p><strong>Param&eacute;trage Tomcat</strong></p>
<p>Dans /var/lib/tomcat5.5/conf/server.xml, modifier le connecteur non-SSL pour y ajouter l&#39;attribut &quot;URIEncoding=&quot;UTF-8&quot;&quot;</p>
<pre>    &lt;!-- Define a non-SSL HTTP/1.1 Connector on port 8180 --&gt;
    &lt;Connector port=&quot;8180&quot; maxHttpHeaderSize=&quot;8192&quot;
               maxThreads=&quot;150&quot; minSpareThreads=&quot;25&quot; maxSpareThreads=&quot;75&quot;
               enableLookups=&quot;false&quot; redirectPort=&quot;8443&quot; acceptCount=&quot;100&quot;
               connectionTimeout=&quot;20000&quot; disableUploadTimeout=&quot;true&quot;
               URIEncoding=&quot;UTF-8&quot; /&gt;
</pre>
<p>Sous Debian, Tomcat est tr&egrave;s s&eacute;curis&eacute;. Une autre mani&egrave;re radicale de passer outre cette s&eacute;curisation est de la d&eacute;sactiver dans le fichier &quot;/etc/init.d/tomcat5.5&quot;, en indiquant :</p>
<pre>TOMCAT5_SECURITY=no
</pre>
<p>Par contre, je ne me permet ceci parce que je n&#39;autorise l&#39;acces &agrave; mon serveur Tomcat que localement. Dans /var/lib/tomcat5.5/conf/server.xml, j&#39;ajoute une d&eacute;finition de valve au niveau engine :</p>
<pre>    &lt;Engine name=&quot;Catalina&quot; defaultHost=&quot;localhost&quot;&gt;
      &lt;Valve className=&quot;org.apache.catalina.valves.RemoteAddrValve&quot;
         allow=&quot;127.0.0.1&quot; deny=&quot;&quot;/&gt;
</pre>
<p>Je change &eacute;galement le fichier &quot;/etc/init.d/tomcat5.5&quot; pour lui indiquer le bon timezone et augmenter ses ressources m&eacute;moires. Editer le fichier &quot;/etc/init.d/tomcat5.5&quot;, trouver la ligne encadr&eacute;e par &quot;if [ -z &quot;$CATALINA_OPTS&quot; ]; then&quot; et &quot;fi&quot;, et modifiez la comme ceci.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#91;</span> <span style="color: #339933;">-</span>z <span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>$CATALINA_OPTS<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span> <span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> then
	CATALINA_OPTS<span style="color: #339933;">=&amp;</span>quot<span style="color: #339933;">;-</span>Djava.<span style="color: #006633;">awt</span>.<span style="color: #006633;">headless</span><span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">true</span> <span style="color: #339933;">-</span>Xms256M <span style="color: #339933;">-</span>Xmx768M <span style="color: #339933;">-</span>Duser.<span style="color: #006633;">timezone</span><span style="color: #339933;">=</span>Europe<span style="color: #339933;">/</span>Paris <span style="color: #339933;">-</span>XX<span style="color: #339933;">:</span>MaxPermSize<span style="color: #339933;">=</span>128m<span style="color: #339933;">&amp;</span>quot<span style="color: #339933;">;</span>
fi<span style="color: #339933;">&amp;</span>nbsp<span style="color: #339933;">;</span></pre></div></div>

<p>Relancer tomcat</p>
<pre>sudo /etc/init.d/tomcat5.5 restart</pre>
<p>A partir de l&agrave;, on dispose d&#39;une configuration de base Debian Etch. le serveur est op&eacute;rationnel.</p>
<p><strong>Installer le compilateur GCC et l&#39;outil make</strong></p>
<pre>sudo apt-get install gcc g++ make </pre>
<p><strong>Installer memcached</strong></p>
<p>apt-get install memcached php5-memcache</p>
<p>Dans <a href="http://www.zoonix.fr/2008/02/24/memcached-mise-en-cache-et-partage-de-donnees-entre-applications/">cet article</a>,&nbsp; je d&eacute;cris memcached.</p>
<p>Pour son installation &agrave; partir des sources, suivre la proc&eacute;dure parfaitement d&eacute;crite dans <a href="http://www.lullabot.com/articles/how_install_memcache_debian_etch" target="_blank">cet article</a>. Par contre, il faut v&eacute;rifier quelles sont les derni&egrave;res versions des modules &agrave; t&eacute;l&eacute;charger.</p>
<p><strong>Installer ntpdate<br />
	</strong></p>
<p>sudo apt-get install ntpdate</p>
<p>Pour mettre &agrave; l&#39;heure en utilisant le serveur de temps de l&#39;observatoire de Paris</p>
<p>/usr/sbin/ntpdate ntp-p1.obspm.fr</p>
<p>Dans la crontab ajouter la ligne suivante afin de synchroniser l&#39;heure tous les matins &agrave; 3h</p>
<p>0 3 * * * root /usr/sbin/ntpdate ntp-p1.obspm.fr &gt;/dev/null</p>
<p><strong>Installer fail2ban</strong></p>
<p>En fonctionnement, un serveur s&#39;expose &agrave; des attaques. <strong>Fail2ban </strong>permet de se prot&eacute;ger contre les attaques de masse sur certains ports TCP ou UDP en attente de connexion. Le premier protocole &agrave; prot&eacute;ger (le seul expos&eacute; &agrave; la livraison du serveur lorsque qu&#39;il n&#39;y a pas de logiciel compl&eacute;mentaire install&eacute;) est <strong>ssh</strong>. <strong>Ssh</strong> permet de prendre la main sur un serveur &agrave; distance. Mais si on conna&icirc;t le port d&#39;attente (22 par d&eacute;faut) et le mot de passe root, on peut tout faire sur le serveur. <strong>Fail2ban</strong> scrute les logs des services en attente de connexion pour d&eacute;terminer si une attaque est en cours et si donc il doit bloquer l&#39;adresse IP de l&#39;attaquant.</p>
<pre>apt-get install fail2ban</pre>
<p>dans &quot;<em>/etc/fail2ban/jail.conf&quot;</em>, j&#39;ajout mon ip perso dans les ip a ignorer</p>
<p>ignoreip = 127.0.0.1 82.xxx.xxx.xxx</p>
<p>red&eacute;marrage de fail2ban</p>
<pre>/etc/init.d/fail2ban restart</pre>
<p><strong>Mise en place de r&egrave;gles de filtrage d&#39;ip</strong></p>
<p>Pour l&#39;instant, il n&#39;y a que ssh comme service sensible. Il est traiter par <strong>Fail2ban</strong>.<br />
	Avec <strong>iptables</strong>, j&#39;ajoute des r&egrave;gles pour &eacute;viter des attaques par ping. J&#39;autorise le ping depuis le serveur lui m&ecirc;me, mon adresse IP perso et par les serveurs <strong>OVH </strong>(pour le support entre autre). Je fais un script pour ajouter les r&egrave;gles avec iptables.</p>
<p>set-iptables.sh contient :</p>
<pre>#!/bin/sh
iptables -A INPUT -i eth0 -p icmp -j DROP
iptables -A INPUT -i eth0 -p icmp --source 127.0.0.1 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source ping.ovh.net -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source 91.121.91.250 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --source 82.xxx.xxx.xxx -j ACCEPT</pre>
<p><code>&quot;iptables -L&quot; </code>permet de lister les r&egrave;gles en place apr&egrave;s l&#39;ex&eacute;cution du script.</p>
<p>Il faut faire attention de ne pas bloquer <strong>ssh</strong> avec ces r&egrave;gles, sinon on ne peut plus prendre la main sur le serveur et il faut lancer le proc&eacute;dure de r&eacute;installation du serveur (pas cool).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eolya.fr/2008/12/15/installation-serveur-linux-debian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

