<?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>TommyBlue.it &#187; ALIX</title>
	<atom:link href="http://www.tommyblue.it/tag/alix/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tommyblue.it</link>
	<description>Bombardare per la pace è un po' come trombare per la verginità...</description>
	<lastBuildDate>Tue, 24 Jan 2012 09:34:19 +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>IPv6 in pochi passi con ALIX e SixXS</title>
		<link>http://www.tommyblue.it/2011/08/03/ipv6-in-pochi-passi-con-alix-e-sixxs/</link>
		<comments>http://www.tommyblue.it/2011/08/03/ipv6-in-pochi-passi-con-alix-e-sixxs/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 15:41:51 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[ALIX]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[SixXs]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=1190</guid>
		<description><![CDATA[Come ormai saprete (1 &#8211; 2) ho un debole per gli embedded ALIX di PcEngines. In questo caso userò una scheda 2d13 con RTC, indispensabile perché se il vostro orologio non è sincronizzato con quello del broker IPv4-IPv6 (±30 secondi) non avrete la connessione IPv6! Come da tradizione il sistema operativo è Debian Voyage, ma tutta la [...]]]></description>
			<content:encoded><![CDATA[<p>Come ormai saprete (<a href="http://www.tommyblue.it/2010/05/25/endian-firewall-su-alix/">1</a> &#8211; <a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/">2</a>) ho un debole per gli embedded ALIX di <a title="PC Engines" href="http://pcengines.ch/" target="_blank">PcEngines</a>. In questo caso userò una scheda <a href="http://pcengines.ch/alix2d13.htm" target="_blank">2d13</a> con <strong>RTC</strong>, indispensabile perché se il vostro orologio non è sincronizzato con quello del broker IPv4-IPv6 (±30 secondi) non avrete la connessione IPv6!</p>
<p>Come da tradizione il sistema operativo è <a href="http://linux.voyage.hk/" target="_blank">Debian Voyage</a>, ma tutta la procedura può comunque essere applicata ad una qualsiasi macchina con installato un os <em>Debian-based</em> (a meno di qualche piccola modifica). Per altri sistemi operativi guardate la <a title="Wiki di SixXS" href="https://www.sixxs.net/wiki/" target="_blank">wiki di SixXS</a>.</p>
<h2>SixXS</h2>
<p>Il primo passo è, per l&#8217;appunto, quello di <a href="http://www.sixxs.net/signup/create/" target="_blank">registrarsi su SixXS</a> e richiedere un account. La registrazione, prima di essere accettata, deve essere verificata manualmente quindi probabilmente potrebbe passare qualche giorno (nel mio caso ci sono voluti pochi minuti).</p>
<p>Una volta ottenuti i dati di accesso bisogna richiedere un tunnel. In questa guida coprirò la configurazione di un tunnel heartbeat con Aiccu. Anche la richiesta del tunnel richiede approvazione, quindi in attesa possiamo configurare il sistema (una volta approvato il tunnel basta inserirne il nome in <em>/etc/aiccu.conf</em> e gli ip in <em>/etc/network/interfaces</em>).</p>
<h2>AICCU</h2>
<p>Come premesso il sistema deve avere l&#8217;ora corretta con uno scarto massimo di 30 secondi, altrimenti AICCU non stabilisce la connessione. Nel più semplice dei casi per farlo basta installare il pacchetto <strong>ntp</strong>. AICCU logga in <em>/var/log/syslog</em>, ecco il tipico errore per problemi di sincronizzazione:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~<span style="color: #666666; font-style: italic;"># cat /var/log/syslog | grep aiccu</span><br />
<br />
Apr <span style="color: #000000;">28</span> 08:<span style="color: #000000;">50</span>:<span style="color: #000000;">19</span> voyage aiccu<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1731</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: sock_getline<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> : <span style="color: #ff0000;">&quot;200 Client Identity accepted&quot;</span><br />
Apr <span style="color: #000000;">28</span> 08:<span style="color: #000000;">50</span>:<span style="color: #000000;">19</span> voyage aiccu<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1731</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: sock_printf<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>  : <span style="color: #ff0000;">&quot;get unixtime&quot;</span><br />
Apr <span style="color: #000000;">28</span> 08:<span style="color: #000000;">50</span>:<span style="color: #000000;">19</span> voyage aiccu<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1731</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: sock_getline<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> : <span style="color: #ff0000;">&quot;200 1312374039&quot;</span><br />
Apr <span style="color: #000000;">28</span> 08:<span style="color: #000000;">50</span>:<span style="color: #000000;">19</span> voyage aiccu<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1731</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: The clock is off by <span style="color: #000000;">355469420</span> seconds, use NTP to <span style="color: #c20cb9; font-weight: bold;">sync</span> it<span style="color: #000000; font-weight: bold;">!</span><br />
Apr <span style="color: #000000;">28</span> 08:<span style="color: #000000;">50</span>:<span style="color: #000000;">19</span> voyage aiccu<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1731</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: sock_printf<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>  : <span style="color: #ff0000;">&quot;QUIT Aborting: Clock is off by 355469420 seconds &quot;</span><br />
Apr <span style="color: #000000;">28</span> 08:<span style="color: #000000;">50</span>:<span style="color: #000000;">19</span> voyage aiccu<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1731</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: Couldn<span style="color: #ff0000;">'t retrieve first tunnel for the above reason, aborting</span></div></div>
<p>Una volta sincronizzato l&#8217;orario si può procedere installando il pacchetto <strong>aiccu</strong><em> </em>. All&#8217;installazione vi verranno chiesti i dati di accesso a SixXS. Oltre a questo ho scommentato soltanto due righe in <em>/etc/aiccu.conf</em>, riporto tutto il file:</p>
<pre>username MY_USERNAME
password MY_PASSWORD
protocol tic
server tic.sixxs.net
ipv6_interface sixxs
tunnel_id MY_TUNNEL
verbose false
daemonize true
automatic true
requiretls false
makebeats true</pre>
<p>Basta adattare le variabili <em>username</em>, <em>password</em> e <em>tunnel_id</em> (tutti dati che vi devono essere dati da SixXS) e il gioco è fatto.<br />
Molte informazioni le potete trovare anche nella wiki di SixXS: <a href="http://www.sixxs.net/wiki/Aiccu" target="_blank">http://www.sixxs.net/wiki/Aiccu</a></p>
<h2>Interfaccia di rete</h2>
<p>Quando il tunnel ci verrà attivato potremo configurare l&#8217;interfaccia, nello specifico inserendo questa configurazione in <em>/etc/network/interfaces</em> (utilizzando i dati che abbiamo ottenuto):</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">auto sixxs<br />
iface sixxs inet6 v4tunnel<br />
address MY_IPV6_IP<br />
netmask <span style="color: #000000;">64</span><br />
endpoint 213.254.12.34<br />
ttl <span style="color: #000000;">64</span><br />
up <span style="color: #c20cb9; font-weight: bold;">ip link</span> <span style="color: #000000; font-weight: bold;">set</span> mtu <span style="color: #000000;">1280</span> dev sixxs<br />
up <span style="color: #c20cb9; font-weight: bold;">ip route</span> add default via MY_IPV6_GATEWAY dev sixxs</div></div>
<p>L&#8217;IPv4 dell&#8217;endpoint è quello italiano, ad ogni modo nella mail di conferma attivazione del tunnel c&#8217;è scritto tutto. Il vostro indirizzo IP e quello del gateway differiscono soltanto per l&#8217;ultima cifra: <strong>:1</strong> per il gateway e <strong>:2</strong> per il vostro IP.</p>
<h2>Test IPv6</h2>
<p>Terminati questi passaggi il nostro IPv6 dovrebbe essere pronto. Riavviamo AICCU e la rete (<em>/etc/init.d/networking restart</em>) e testiamo il tutto pingando (occhio, ci vuole <em>ping6</em>) il gateway IPv6.<br />
Per ulteriore prova si può visitare ﻿ la home page di <a title="SixXS" href="http://www.sixxs.net/" target="_blank">SixXS</a> dove un blocchetto verde ci accoglierà con un festante <strong>&#8220;You&#8217;ve got IPv6!&#8221;</strong>.<br />
Se siete a terminale e volete testare qualche sito in IPv6 fate attenzione che <strong>lynx</strong> supporta IPv6 mentre <strong>links2</strong> no.</p>
<h2>Subnet, routing e assegnazione IP</h2>
<p>Ora che abbiamo un IPv6 e lo usiamo per navigare da un pc, è giunto il momento di ottenere una subnet <strong>/48</strong> per poter assegnare un IPv6 ad ogni nostro apparato (ovvero ai nostri<strong> <a title="IPv6 Subnet Size Reference Table" href="http://www.potato-people.com/blog/2009/02/ipv6-subnet-size-reference-table/" target="_blank">1.208.925.819.614.629.500.000.000</a> </strong>apparati).</p>
<p>Come al solito il primo passo è richiedere a SixXS una subnet. Una volta ottenuta la rete /48, seguendo la <a href="https://www.sixxs.net/wiki/Installing_a_Subnet" target="_blank">guida nella wiki di Sixxs</a>, andiamo a configurare una /64 per la nostra rete.<br />
Assegniamo staticamente uno di questi indirizzi in <em>/etc/network/interfaces</em>:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">iface eth0 inet6 static<br />
address MY_IP_FROM_SUBNET<br />
netmask <span style="color: #000000;">64</span></div></div>
<p>Riavviata la rete, il nostro ALIX avrà un secondo IPv6 (oltre a quello del tunnel). Per permettere il routing e l&#8217;advertising degli indirizzi ip usiamo <strong>radvd</strong>: non si tratta di un DHCPv6 (al momento non esiste un DHCPv6 veramente funzionante) ma di un router IPv6 che periodicamente invia pacchetti multicast di Router Advertisement per permettere l&#8217;autoconfigurazione degli apparati di rete utilizzando gli ip della nostra subnet.<br />
Dopo aver installato il pacchetto <strong>radvd</strong> bisogna creare il file <em>/etc/radvd.conf</em> con il seguente contenuto:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">﻿interface eth0<span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
AdvSendAdvert on;<br />
prefix MY_IP_FROM_SUBNET<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">64</span><br />
<span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
AdvOnLink on;<br />
AdvAutonomous on;<br />
AdvRouterAddr on;<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span>;<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span>;</div></div>
<p>Avviamo radvd e abilitiamo il forwarding:</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;net.ipv6.conf.all.forwarding=1&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysctl.conf<br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;net.ipv6.conf.default.forwarding=1&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>sysctl.conf<br />
sysctl <span style="color: #660033;">-p</span></div></div>
<p>Se tutto è andato come doveva le macchine nella vostra rete dovrebbero ottenere un indirizzo IPv6 (parlo di Mac e Linux, per Windows arrangiatevi.. :) e navigare IPv6.<br />
Provate ad aprire il sito SixXS per averne conferma:</p>
<p><a href="http://www.tommyblue.it/wp-content/uploads/2011/08/Youve-got-ipv6.png" rel="lightbox[1190]"><img class="aligncenter size-full wp-image-1223" title="You've got IPv6!" src="http://www.tommyblue.it/wp-content/uploads/2011/08/Youve-got-ipv6.png" alt="" width="219" height="78" /></a></p>
<h2>Firewall IPv6</h2>
<p>Una cosa che ben presto si capisce di IPv6 è che le tanto odiate NAT in certi casi facevano comodo. Uno di questi è che un IP privato era <strong>privato</strong>. Con IPv6 quasi tutto è pubblico e quindi un firewall è indispensabile.</p>
<p>Ho scritto un breve script per <strong>ip6tables</strong> prendendo spunto dalla wiki si SixXS, dopo averlo personalizzato (dovete settare qualche IP) basta metterlo in <em>/etc/init.d</em> e aggiungerlo al runlevel di default (<em>update-rc.d firewall-ipv6 defaults</em>):</p>
<div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">#! /bin/bash</span><br />
<br />
<span style="color: #666666; font-style: italic;">### BEGIN INIT INFO</span><br />
<span style="color: #666666; font-style: italic;"># Provides: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; firewall-ipv6</span><br />
<span style="color: #666666; font-style: italic;"># Required-Start: &nbsp; &nbsp; &nbsp; $remote_fs $syslog</span><br />
<span style="color: #666666; font-style: italic;"># Required-Stop: &nbsp; &nbsp; &nbsp; &nbsp;$remote_fs $syslog</span><br />
<span style="color: #666666; font-style: italic;"># Default-Start: &nbsp; &nbsp; &nbsp; &nbsp;2 3 4 5</span><br />
<span style="color: #666666; font-style: italic;"># Default-Stop: &nbsp; &nbsp; &nbsp; &nbsp; 0 1 6</span><br />
<span style="color: #666666; font-style: italic;"># Short-Description: &nbsp; &nbsp;IPTables-based IPv6 firewall</span><br />
<span style="color: #666666; font-style: italic;">### END INIT INFO</span><br />
<br />
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #660033;">-e</span><br />
<br />
<span style="color: #666666; font-style: italic;"># /etc/init.d/firewall-ipv6: start and stop the ip6tables firewall</span><br />
<br />
<span style="color: #007800;">IP6</span>=<span style="color: #ff0000;">&quot;/sbin/ip6tables&quot;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># L'indirizzo IP di questa macchina</span><br />
<span style="color: #007800;">THIS_HOST</span>=<span style="color: #ff0000;">&quot;2001:1418:AAAA:AAAA::2&quot;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># La subnet assegnata da SixXS</span><br />
<span style="color: #007800;">SUBNET_PREFIX</span>=<span style="color: #ff0000;">&quot;2001:1418:BBBB::/48&quot;</span><br />
<br />
stop_firewall<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
<span style="color: #666666; font-style: italic;"># First, delete all:</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-F</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-X</span><br />
<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-P</span> INPUT &nbsp; ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-P</span> FORWARD ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-P</span> OUTPUT &nbsp;ACCEPT<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
start_firewall<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span><br />
stop_firewall<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow anything on the local link</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> INPUT &nbsp;<span style="color: #660033;">-i</span> lo <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-o</span> lo <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow anything out on the internet</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-o</span> sixxs <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow the localnet access us:</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> INPUT &nbsp; &nbsp;<span style="color: #660033;">-i</span> eth0 &nbsp; <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> OUTPUT &nbsp; <span style="color: #660033;">-o</span> eth0 &nbsp; <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Filter all packets that have RH0 headers:</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-m</span> rt <span style="color: #660033;">--rt-type</span> <span style="color: #000000;">0</span> <span style="color: #660033;">-j</span> DROP<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> FORWARD <span style="color: #660033;">-m</span> rt <span style="color: #660033;">--rt-type</span> <span style="color: #000000;">0</span> <span style="color: #660033;">-j</span> DROP<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-m</span> rt <span style="color: #660033;">--rt-type</span> <span style="color: #000000;">0</span> <span style="color: #660033;">-j</span> DROP<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow Link-Local addresses</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-s</span> fe80::<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-s</span> fe80::<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow multicast</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-s</span> ff00::<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> OUTPUT <span style="color: #660033;">-s</span> ff00::<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow ICMPv6 everywhere</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-I</span> INPUT &nbsp;<span style="color: #660033;">-p</span> icmpv6 <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-I</span> OUTPUT <span style="color: #660033;">-p</span> icmpv6 <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-I</span> FORWARD <span style="color: #660033;">-p</span> icmpv6 <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Allow forwarding</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> FORWARD <span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> NEW <span style="color: #660033;">-i</span> eth0 <span style="color: #660033;">-o</span> sixxs <span style="color: #660033;">-s</span> <span style="color: #007800;">$SUBNET_PREFIX</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> FORWARD <span style="color: #660033;">-m</span> state <span style="color: #660033;">--state</span> ESTABLISHED,RELATED <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># SSH verso questa macchina</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-A</span> INPUT <span style="color: #660033;">-i</span> sixxs <span style="color: #660033;">-p</span> tcp <span style="color: #660033;">-d</span> <span style="color: #007800;">$THIS_HOST</span> <span style="color: #660033;">--dport</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-j</span> ACCEPT<br />
<br />
<span style="color: #666666; font-style: italic;"># Accesso a macchine della rete</span><br />
<span style="color: #666666; font-style: italic;">#$IP6 -A FORWARD -i sixxs -p tcp -d $IP_DA_RAGGIUNGERE --dport $PORTA_DA_RAGGIUNGERE -j ACCEPT</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Set the default policy</span><br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-P</span> INPUT &nbsp; DROP<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-P</span> FORWARD DROP<br />
<span style="color: #007800;">$IP6</span> <span style="color: #660033;">-P</span> OUTPUT &nbsp;ACCEPT<br />
<span style="color: #7a0874; font-weight: bold;">&#125;</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">test</span> <span style="color: #660033;">-x</span> <span style="color: #007800;">$IP6</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span><br />
<br />
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #660033;">-e</span><br />
<br />
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000; font-weight: bold;">in</span><br />
start<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;Starting Firewall&quot;</span><br />
stop_firewall<br />
start_firewall<br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
stop<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;Stopping Firewall&quot;</span><br />
stop_firewall<br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
restart<span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;Restarting Firewall&quot;</span><br />
stop_firewall<br />
start_firewall<br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span><br />
<span style="color: #007800;">N</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$NAME</span><br />
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: <span style="color: #007800;">$N</span> {start|stop|restart}&quot;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000;">2</span><br />
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span><br />
<span style="color: #000000; font-weight: bold;">;;</span><br />
<span style="color: #000000; font-weight: bold;">esac</span><br />
<br />
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></div></div>
<p>Per essere sicuri che il firewall funzioni si può usare questa applicazione web: <a title="Tim's Free IPv6 TCP Port Scanner (Firewall Tester)" href="http://ipv6.chappell-family.com/ipv6tcptest/" target="_blank">http://ipv6.chappell-family.com/ipv6tcptest/</a>. Se tutto va bene il risultato dovrebbe essere questo:</p>
<p><a href="http://www.tommyblue.it/wp-content/uploads/2011/08/Firewall-check.png" rel="lightbox[1190]"><img class="aligncenter size-medium wp-image-1224" title="IPv6 firewall check" src="http://www.tommyblue.it/wp-content/uploads/2011/08/Firewall-check-300x144.png" alt="" width="300" height="144" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2011/08/03/ipv6-in-pochi-passi-con-alix-e-sixxs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurare i check passivi in Nagios per l&#8217;integrazione con Munin</title>
		<link>http://www.tommyblue.it/2010/09/16/configurare-i-check-passivi-in-nagios-per-l-integrazione-con-munin/</link>
		<comments>http://www.tommyblue.it/2010/09/16/configurare-i-check-passivi-in-nagios-per-l-integrazione-con-munin/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 16:51:16 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[ALIX]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Debian Voyage]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Munin]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[NRPE]]></category>
		<category><![CDATA[NSCA]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=990</guid>
		<description><![CDATA[Continuo la serie di guide sulla configurazione di Nagios spiegando come attivare i check passivi con NSCA e come usare Munin per avvertire Nagios di ciò che non va&#8217;. Intanto ricordo i link alla prima e alla seconda parte della guida: Parte 1 Parte 2 Tornando a Nagios e Munin: l&#8217;uso dei check passivi può [...]]]></description>
			<content:encoded><![CDATA[<p>Continuo la serie di guide sulla configurazione di Nagios spiegando come attivare i check passivi con <a href="http://www.nagios.org/download/addons" target="_blank">NSCA</a> e come usare Munin per avvertire Nagios di ciò che non va&#8217;.</p>
<p>Intanto ricordo i link alla prima e alla seconda parte della guida:</p>
<ul>
<li><a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/">Parte 1</a></li>
<li><a href="http://www.tommyblue.it/2010/02/17/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-2/">Parte 2</a></li>
</ul>
<p>Tornando a Nagios e Munin: l&#8217;uso dei check passivi può tornare utile se si va ad installare Nagios in una rete in cui è già presente Munin che, per chi non lo conoscesse, è un software che crea grafici di andamento di una lunga serie di servizi o aspetti dei server (anch&#8217;esso configurabile con agenti su vari server e un&#8217;applicazione centralizzata per la raccolta dei dati).<br />
Se Munin non fosse già installato si può valutare una configurazione Nagios-centrica con i check effettuati da NRPE e i grafici fatti con <a href="http://nagiosgraph.sourceforge.net/" target="_blank">NagiosGraph</a>.</p>
<p>Nel mio caso era già presente Munin e ho quindi optato per la configurazione dei check passivi.<span id="more-990"></span></p>
<h2>Configurazione del server (Nagios e nsca)</h2>
<p>Si comincia come sempre installando i pacchetti necessari:</p>
<pre>apt-get install libmcrypt-dev xinetd</pre>
<p>Quindi si scarica NSCA dalla <a href="http://www.nagios.org/download/addons" target="_blank">pagina degli addon di Nagios</a>, si scompatta, si compila e si installa:</p>
<pre>tar xzf nsca-2.7.2.tar.gz
cd nsca-2.7.2/
./configure prefix=/usr/local/nagios --with-nsca-user=nagios --with-nsca-grp=nagcmd
make all
cp -a src/nsca /usr/local/nagios/bin/
cp sample-config/nsca.cfg /usr/local/nagios/etc/
chown nagios:nagcmd /usr/local/nagios/etc/nsca.cfg
chmod g+r /usr/local/nagios/etc/nsca.cfg
cp sample-config/nsca.xinetd /etc/xinetd.d/nsca</pre>
<p>Bisogna anche aggiungere al file <em>/etc/services</em> il servizio NSCA con la riga:</p>
<pre>nsca    5667/tcp    # NSCA</pre>
<p>Nel file <em>/etc/xinetd.d/nsca</em> bisogna modificare il parametro <em>only_from</em> per consentire l&#8217;accesso al server in cui gira Munin, poi possiamo riavviare xinetd.</p>
<h2>Configurazione del client (send_nsca e Munin)</h2>
<p>Nel client da cui arriveranno i check (ovvero dove gira Munin) bisogna ugualmente scaricare il pacchetto NSCA e compilarlo. Differisce l&#8217;installazione del binario che in questo caso è <strong>send_nsca</strong> e può essere posizionato dove si vuole (stessa cosa vale per il suo file di configurazione). Dato che nel mio caso Munin e Nagios sono sullo stesso server ho usato la directory di Nagios per ospitare questi file:</p>
<pre>cp -a src/send_nsca /usr/local/nagios/bin/
cp sample-config/send_nsca.cfg /usr/local/nagios/etc/</pre>
<p>Se i due software sono su server diversi potete impostare un metodo di cifratura nel file <em>send_nsca.cfg</em> e impostare una password (che deve essere la stessa sul server e sul client).</p>
<p><strong>Proviamo adesso se <em>send_nsca</em> funziona.</strong> I check passivi consistono in una riga contenente:</p>
<pre>HOSTNAME[tab]SERVIZIO[tab]CODICE[tab]DESCRIZIONE</pre>
<p>quindi per fare un test possiamo creare un file con il contenuto:</p>
<pre>hostAcaso   pippo   0   OK</pre>
<p>e fare un test di connessione con:</p>
<pre>/usr/local/nagios/bin/send_nsca localhost -c /usr/local/nagios/etc/send_nsca.cfg &lt; test
1 data packet(s) sent to host successfully.</pre>
<p>Nei log di Nagios troveremo:</p>
<pre>nagios: Warning:  Passive check result was received for service 'pippo' on host 'hostAcaso', but the host could not be found!</pre>
<p>Funziona! Non fatevi spaventare dal <em>warning</em>: Nagios ha ricevuto il check ma non ha nessun host corrispondente nella sua configurazione. Niente di male, glielo spiegheremo più tardi.</p>
<p>Possiamo quindi configurare Nagios per accettare i check passivi. Per farlo andiamo nel server e inseriamo nel file <em>etc/objects/templates.cfg</em> il template per un servizio che accetta sono check passivi:</p>
<pre>define service{
 name                            passive-service
 use                             generic-service
 active_checks_enabled           0
 passive_checks_enabled          1
 flap_detection_enabled          0
 register                        0
 is_volatile                     0
 check_period                    24x7
 max_check_attempts              1
 normal_check_interval           5
 retry_check_interval            1
 check_freshness                 0
 contact_groups                  admins
 notification_options            w,u,c,r
 stalking_options                w,c,u
 notification_interval           120
 check_command                   check_dummy!0
}</pre>
<p>Inseriamo poi nel file <em>etc/objects/commands.cfg</em> la definizione del comando <em>check_dummy</em>:</p>
<pre>define command{
 command_name    check_dummy
 command_line    $USER1$/check_dummy $ARG1$
}</pre>
<p>Fatto questo possiamo inserire un check di prova in un host:</p>
<pre>define service{
 use                             passive-service
 host_name                       hostCheEsiste
 service_description             TestMessage
}</pre>
<p>Una volta riavviato Nagios vedremo questo servizio in stato pending. Modificando il file di prima con:</p>
<pre>hostCheEsiste    TestMessage    0     Messaggio di OK</pre>
<p>ed eseguendo nuovamente:</p>
<pre>/usr/local/nagios/bin/send_nsca localhost -c /usr/local/nagios/etc/send_nsca.cfg &lt; test</pre>
<p>possiamo mettere il servizio in stato di OK.</p>
<p>Per finire dobbiamo dire a Munin di chiamare Nagios quando qualcosa non va. Per farlo dobbiamo modificare il file <em>munin.conf</em> inserendo:</p>
<pre>contacts nagios
contact.nagios.command /usr/local/nagios/bin/send_nsca -H localhost -c /usr/local/nagios/etc/send_nsca.cfg</pre>
<p>Modificate le path secondo la vostra configurazione e inserite nel file <em>send_nsca.cfg</em> l&#8217;eventuale password per comunicare con NSCA.</p>
<h2>Ma come funzionano in dettaglio gli avvertimenti di Munin?</h2>
<p>Munin si basa su plugin e ognuno di essi ha dei limiti. Per vederli basta lanciare (in questo caso interrogo il plugin <strong>cpu</strong>):</p>
<pre>munin-run cpu config</pre>
<p>Nella risposta si possono individuare i limiti:</p>
<pre>system.warning 60
system.critical 100</pre>
<p>Tali limiti possono essere monitorati da munin-limits, un eseguibile che, per essere lanciato automaticamente, va inserito in crontab. Di base ne trovate una configurazione in <em>/etc/cron.d/munin</em> (se non c&#8217;è createlo). Io l&#8217;ho modificato così:</p>
<pre>*/5 * * * *     munin if [ -x /usr/share/munin/munin-limits ]; then /usr/share/munin/munin-limits --force --contact nagios --contact old-nagios; fi</pre>
<p>Quindi ogni 5 minuti fa il check e contatta Nagios per passargli il risultato.</p>
<p>L&#8217;ultima cosa da fare è adattare i limiti di ogni plugin secondo le proprie esigienze. Si possono definire in <em>munin.conf</em> per ogni host:</p>
<pre>df._mapper_sda1_vm_root.warning      0:90
df._mapper_sda1_vm_root.critical     0:95
df.notify_alias     Disk usage</pre>
<p>La logica con cui vengono definiti i limiti è un po&#8217; cervellotica e dipende molto dal tipo di plugin. In questo caso ho usato <strong>df</strong> che controlla l&#8217;uso del disco.<br />
Il limite di warning 0:90 viene superato se il limite è al di fuori di questo range (il range è 0:100). Ma a sua volta il limite critico è al di fuori del range 0:95. Il risultato è che il plugin entra in <strong>warning</strong> se la partizione è occupata tra il 90% e il 94% e in <strong>critical</strong> da 95% in sù.<br />
Vi lascio divertire con gli altri plugin :)</p>
<h2>Inseriamo in Nagios questi check</h2>
<p>Ho già mostrato prima come inserire un check passivo in un host, ovvero:</p>
<pre>define service{
 use                             passive-service
 host_name                       hostCheEsiste
 service_description             TestMessage
}
</pre>
<p>Per accettare un check passivo valido da Munin bisogna modificare <strong>service_description</strong> affinchè sia uguale al nome del servizio che definisce il plugin di Munin. Dato che hanno nomi non facilmente individuabili e che a volte contengono caratteri incompatibili con Nagios (ad esempio %) una cosa furba è rinominarli in <em>munin.conf</em> con <strong>.notify_alias</strong> (guardate qualche riga più in sù nel caso del <strong>df</strong>) e usare quell&#8217;alias in Nagios.</p>
<p>A questo punto la teoria è finita e non rimane altro da fare che iniziare a scrivere le definizioni dei check in Nagios e le configurazioni dei plugin in Munin, buon lavoro!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/09/16/configurare-i-check-passivi-in-nagios-per-l-integrazione-con-munin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Endian Firewall su ALIX</title>
		<link>http://www.tommyblue.it/2010/05/25/endian-firewall-su-alix/</link>
		<comments>http://www.tommyblue.it/2010/05/25/endian-firewall-su-alix/#comments</comments>
		<pubDate>Tue, 25 May 2010 22:37:25 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[ALIX]]></category>
		<category><![CDATA[Endian Firewall]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=936</guid>
		<description><![CDATA[Lo spippolo di ieri ha dato i suoi frutti e sono riuscito a installare correttamente Endian Firewall sul mio embedded ALIX 6e1 (qui di fianco, se ci cliccate, ne vedrete uno screenshot). Di base non ci sarebbe niente di strano dato che le ALIX sono x86-compatible, però non fanno boot da usb (e se anche [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tommyblue.it/wp-content/uploads/2010/05/EFW.jpg" rel="lightbox[936]"><img class="alignleft size-thumbnail wp-image-939" title="Endian Firewall" src="http://www.tommyblue.it/wp-content/uploads/2010/05/EFW-150x150.jpg" alt="" width="150" height="150" /></a>Lo spippolo di <a href="http://www.tommyblue.it/2010/05/24/stasera-si-spippola/">ieri</a> ha dato i suoi frutti e sono riuscito a installare correttamente E<a href="http://www.endian.com/en/community/" target="_blank">ndian Firewall</a> sul mio embedded <a href="http://pcengines.ch/alix6e1.htm" target="_blank">ALIX 6e1</a> (qui di fianco, se ci cliccate, ne vedrete uno screenshot).</p>
<p>Di base non ci sarebbe niente di strano dato che le ALIX sono <em>x86-compatible</em>, però non fanno boot da usb (e se anche lo facessero, non sono riuscito a rendere bootabile Endian su una penna usb&#8230;).</p>
<p>C&#8217;è quindi da fare un arzigogolo un po&#8217; particolare: è necessario un pc a cui staccare gli hard disk e a cui attaccare la Compact Flash con il suo lettorino USB. A questo punto se si avvia da cdrom la iso di Endian, il s.o. trova solo la compact flash e la prende per il suo hard disk (<em>sda</em>), installandocisi.<br />
Al termine basta, prima del primo riavvio, staccare la compact flash e attaccarla alla mobo ALIX. Sarà possibile proseguire la configurazione via web all&#8217;indirizzo ip indicato in fase di installazione.<br />
<strong>NB: Se volete accedere al s.o. via seriale, ditelo all&#8217;installer durante uno dei passaggi dell&#8217;installazione.</strong></p>
<p>Piuttosto facile, vero?<br />
E infatti lo spippolo di ieri è durato troppo poco e al termine mi sono preso il tempo di provare qualche player di video HTML 5 utilizzando, per l&#8217;occasione, un video di pochi secondi realizzato al nuovo firewall mentre faceva il suo duro lavoro.</p>
<p>Se il vostro browser lo supporta, buona visione!</p>
<!-- degradable html5 audio and video plugin --><div class="video_wrap html5video"><div style="display:none;"><object width="480" height="320" type="application/x-shockwave-flash" data="http://www.tommyblue.it/wp-content/plugins/degradable-html5-audio-and-video/incl/videoplayer.swf?file=http://www.tommyblue.it/wp-content/uploads/2010/05/Alix.m4v" id="f-html5video-0"><param name="movie" value="http://www.tommyblue.it/wp-content/plugins/degradable-html5-audio-and-video/incl/videoplayer.swf?file=http://www.tommyblue.it/wp-content/uploads/2010/05/Alix.m4v" /></object></div><video width="480" height="320" controls autobuffer id="html5video-0" class="html5video"><source src="http://www.tommyblue.it/wp-content/uploads/2010/05/Alix.m4v" type="video/mp4" /><object width="480" height="320" type="application/x-shockwave-flash" data="http://www.tommyblue.it/wp-content/plugins/degradable-html5-audio-and-video/incl/videoplayer.swf?file=http://www.tommyblue.it/wp-content/uploads/2010/05/Alix.m4v" id="f-html5video-0"><param name="movie" value="http://www.tommyblue.it/wp-content/plugins/degradable-html5-audio-and-video/incl/videoplayer.swf?file=http://www.tommyblue.it/wp-content/uploads/2010/05/Alix.m4v" /><p>Could not use HTML&nbsp;5 or <em>Flash</em> for playback. You can download the file as <a href="http://www.tommyblue.it/wp-content/uploads/2010/05/Alix.m4v">MPEG4/H.264</a> or <a href="http://www.tommyblue.it/wp-content/uploads/2010/05/Alix">Ogg Theora</a> file.</p></object></video></div><script type="text/javascript">if (jQuery.browser.mozilla) {tempvid=document.getElementsByTagName("video")[0]; jQuery(tempvid).remove(); jQuery("div.video_wrap div").show()} else jQuery("div.video_wrap div object").remove();</script>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/05/25/endian-firewall-su-alix/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Stasera: si spippola!</title>
		<link>http://www.tommyblue.it/2010/05/24/stasera-si-spippola/</link>
		<comments>http://www.tommyblue.it/2010/05/24/stasera-si-spippola/#comments</comments>
		<pubDate>Mon, 24 May 2010 21:05:51 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Tempo Libero]]></category>
		<category><![CDATA[ALIX]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Endian Firewall]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=931</guid>
		<description><![CDATA[Con traslochi e contro-traslochi più o meno finiti posso finalmente dedicare una serata allo spippolo in libertà. Obiettivo della serata: installare Endian Firewall Community Ed. su una macchina ALIX (quella usata per l&#8217;installazione di Nagios). Nella foto qui sopra potete notare il caos ordinato sulla mia scrivania all&#8217;inizio della serata, chissà alla fine&#8230; :-)]]></description>
			<content:encoded><![CDATA[<p>Con traslochi e contro-traslochi più o meno finiti posso finalmente dedicare una serata allo <strong>spippolo in libertà</strong>. Obiettivo della serata: installare <a href="http://www.endian.com/en/community/" target="_blank">Endian Firewall Community Ed.</a> su una macchina ALIX (quella usata per <a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/">l&#8217;installazione di Nagios</a>).</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-932" title="Spippolo libero!" src="http://www.tommyblue.it/wp-content/uploads/2010/05/spippolo.jpg" alt="" width="400" height="268" /></p>
<p>Nella foto qui sopra potete notare il <em>caos ordinato</em> sulla mia scrivania all&#8217;inizio della serata, chissà alla fine&#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/05/24/stasera-si-spippola/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Costruirsi un sistema di monitoraggio &#8220;casalingo&#8221; con Nagios – parte 2</title>
		<link>http://www.tommyblue.it/2010/02/17/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-2/</link>
		<comments>http://www.tommyblue.it/2010/02/17/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-2/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 14:01:37 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[ALIX]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Debian Voyage]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[NRPE]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=853</guid>
		<description><![CDATA[Costruzione di un sistema di monitoraggio a basso costo con una scheda embedded x86, Debian Voyage e Nagios]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/"><strong>Leggi la prima parte della guida</strong></a></p>
<p>In questa seconda parte della guida illustrerò alcune <strong>configurazioni di base</strong> per i check di <a title="Nagios" href="http://www.nagios.org/" target="_blank">Nagios</a> e l&#8217;uso dell&#8217;addon <strong>NRPE</strong> per check locali su sistemi remoti.</p>
<h3>La struttura</h3>
<p>In questa guida prenderò in considerazione la struttura qui si seguito che permette di illustrare vari tipi di configurazione:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-860" title="Schema Nagios" src="http://www.tommyblue.it/wp-content/uploads/2010/02/schema-nagios.jpg" alt="" width="450" height="454" /></p>
<p>Una panoramica sugli host e i servizi:</p>
<ul>
<li>Host A, server Linux con:
<ul>
<li>Server HTTP Apache</li>
<li>VMWare Server con una macchina virtuale E con un server Zimbra</li>
</ul>
</li>
<li>Host B, server Linux con:
<ul>
<li>Server HTTP Apache</li>
<li>Server MySQL</li>
</ul>
</li>
</ul>
<p>Quindi E dipende da C che a sua volta dipende da A. Invece D dipende da B.<br />
Entrambi i server Apache rispondono sulle porte 80 e 443, l&#8217;interfaccia di amministrazione di VMWare Server risponde sulla porta 8333 (con SSL).<br />
La macchina virtuale Zimbra fornisce i servizi SMTP, POP3 e le interfaccie di webmail e amministrazione (porta 7071).<br />
Infine nella macchina B il server MySQL risponde solo sull&#8217;interfaccia locale, non è quindi possibile accedervi dall&#8217;esterno.</p>
<p><span id="more-853"></span>Negli esempi successivi gli elementi <strong>A</strong>, <strong>C</strong> ed <strong>E</strong> saranno del cliente <em>Company A</em> (dominio <em>company-a.com</em>) e <strong>B</strong> e <strong>D</strong> saranno del cliente <em>Company B</em> con dominio <em>company-b.com</em>.<br />
I nomi host saranno i seguenti:</p>
<ul>
<li><em>A =&gt; web.company-a.com<br />
</em></li>
<li><em>C (macchina virtuale) =&gt; mail.company-a.com<br />
</em></li>
<li><em>B =&gt; web.company-b.com</em></li>
</ul>
<p>Per un maggior dettaglio nella spiegazione delle singole configurazioni tenete sempre sott&#8217;occhio la guida ufficiale alla pagina <a href="http://nagios.sourceforge.net/docs/3_0/objectdefinitions.html" target="_blank"><strong>Object Definitions</strong></a>.</p>
<h3>Organizzazione dei file</h3>
<p>Una volta installato Nagios seguendo la <a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/">prima parte della guida</a>, troverete tutte le configurazioni in <em>/usr/local/nagios/etc</em>. Il file che <em>comanda</em> è <em>nagios.cfg</em> il quale poi richiama tutti gli altri. È quindi possibile, e consigliabile, creare una gerarchia di file che possa poi più facilmente permettere di gestire tutte le configurazioni (senza <em>perdersi</em> per strada i vari pezzi).<br />
Nel file <em>nagios.cfg</em> ci sono due direttive inerenti questo aspetto e sono <em>cfg_file</em> e <em>cfg_dir</em>. La prima indica direttamente un file da cui leggere ulteriori configurazioni, la seconda indica intere directory da cui saranno inclusi tutti i file che terminano con <em>.cfg</em>. Io consiglio di intervenire usando questa seconda direttiva, le cartelle che ho creato sono:</p>
<pre>cfg_dir=/usr/local/nagios/etc/personalized_objects
cfg_dir=/usr/local/nagios/etc/servers
cfg_dir=/usr/local/nagios/etc/groups</pre>
<p>Oltre alle due cartelle con le configurazioni dei server e dei gruppi, ho aggiunto una cartella in cui inserirò i <em>template</em> personalizzati, ad esempio con <em>timeperiods</em> o <em>contact groups</em> diversi da quelli standard.</p>
<h3>Gruppi di host e servizi</h3>
<p>È possibile definire dei gruppi di host (ad esempio a seconda dell&#8217;azienda di appartenenza o del tipo di hardware) e dei gruppi di servizi (server di posta, server web, ecc.). Personalmente inserisco queste configurazioni nella cartella <em>groups</em>.</p>
<p>Esempi di configurazione sono i seguenti:</p>
<pre>define hostgroup{
    hostgroup_name     companyA-servers
    alias              Company A Servers
    members            mail.company-a.com,web.company-a.com
}
define hostgroup{
    hostgroup_name     companyB-servers
    alias              Company B Servers
    members            web.company-b.com
}
define servicegroup{
    servicegroup_name  web-servers
    alias              Web Servers
    members            web.company-a.com,HTTP,web.company-b.com,HTTP
}</pre>
<p>In entrambi i casi gli host indicati in <em>members</em> devono ricalcare il nome con cui quegli host sono definiti (attributo <em>host_name</em>). Nel caso dei servizi, oltre al nome dell&#8217;host, deve essere indicato il nome del servizio (anche in questo caso deve essere uguale a quello inserito in <em>service_description</em>).</p>
<h3>Definizione degli host</h3>
<p>Iniziamo con la configurazione dei server. I file <em>web.company-a.com.cfg</em>, <em>web.company-b.com.cfg</em> e <em>mail.company-a.com.cfg</em> verranno creati nella cartella <em>servers</em>. Non c&#8217;è molto da spiegare, inserisco dei commenti direttamente nelle configurazioni:</p>
<p><em><strong>web.company-a.com.cfg</strong></em></p>
<pre>define host {
    use             linux-server   ;   Template da cui ereditare
    host_name       web.company-a.com   ;   L'host name è ciò che viene usato per identificare l'host negli altri file
    alias           CompanyA Web Server
    address         1.2.3.4
    hostgroups      comapanyA-servers   ;   Come in hostgroup, tale configurazione può essere alternativa o in aggiunta
}</pre>
<p><em><strong>web.company-b.com.cfg</strong></em></p>
<pre>define host {
    use             linux-server
    host_name       web.company-b.com
    alias           CompanyB Web Server
    address         1.2.3.5
    hostgroups      comapanyB-servers
}</pre>
<p><em><strong>mail.company-a.com.cfg</strong></em></p>
<pre>define host {
    use             linux-server
    host_name       mail.company-a.com
    alias           CompanyA Web Server
    address         1.2.3.6
    hostgroups      comapanyA-servers
    parents         web.company-a.com   ;   L'host da cui questo host dipende
}</pre>
<h3>Definizione dei servizi</h3>
<p>La definizione dei servizi è direttamente collegata ai plugin, ovvero usano questi ultimi per effettuare i check. In verità il valore dell&#8217;attributo <em>check_command</em>, anche se in genere ricalca il nome del plugin (i plugin sono nella cartella <em>libexec</em>), non lo indica direttamente ma ha una corrispondenza nel valore dell&#8217;attributo <em>command_name</em> nella definizione di un comando (file <em>etc/objects/commands.cfg</em>).</p>
<p><em><strong>mail.company-a.com.cfg</strong></em></p>
<pre>define service {
 use                     generic-service
 host_name               mail.company-a.com
 service_description     SMTP
 check_command           check_smtp!-t 5
}
define service {
 use                     generic-service
 host_name               mail.company-a.com
 service_description     IMAP
 check_command           check_imap!-t 5
}
define service {
 use                     generic-service
 host_name               mail.company-a.com
 service_description     POP3
 check_command           check_pop!-t 5
}</pre>
<p>Nella direttiva <em>check_command</em> viene indicato il tipo di comando da eseguire. Dopo il punto esclamativo vengono indicati gli argomenti. Se date uno sguardo a <em>etc/objects/commands.cfg</em> vedrete che gli argomenti vengono passati al plugin con <em>$ARG1$, $ARG2$, ecc</em>. In alcuni è presente soltanto un argomento, quindi nella definizione del servizio, dopo il punto esclamativo, devono essere indicati tutti gli argomenti (tipo <em>./check_dummy -t pippo -x pluto</em>) mentre in altri comandi sono presenti più argomenti, spesso associati ad una specifica opzione (tipo <em>./check_dummy -t </em><em>$ARG1$</em><em> -x </em><em>$ARG2$</em>). Nella definizione del servizio, più argomenti possono essere indicati con più punti esclamativi (tipo <em>check_dummy!pippo!pluto</em>). Per avere più informazioni su un plugin lanciatelo con <em>libexec/check_dummy &#8211;help</em>.</p>
<p>Un esempio di check un po&#8217; più complesso può essere, ad esempio, quello necessario per controllare se l&#8217;interfaccia di amministrazione di Zimbra sta girando correttamente (HTTPS sulla porta 7071):</p>
<p><em><strong>mail.company-a.com.cfg</strong></em></p>
<pre>define service{
 use                             generic-service
 host_name                       mail.comapany-a.com
 service_description             ZimbraAdmin
 check_command                   check_http!"-H mail.company-a.com -p 7071 -w 5 -c 15 --ssl"
}</pre>
<p>Com&#8217;è facile intuire, con <em>check_http</em> è possibile quindi monitorare ogni singolo sito presente su un server web.</p>
<p>Ecco gli altri file necessari per la nostra configurazione:</p>
<p><em><strong>web.company-a.com.cfg</strong></em></p>
<pre>define service{
 use                             generic-service
 host_name                       web.company-a.com
 service_description             HTTP
 check_command                   check_http   ;   Semplice check sulla porta 80
}</pre>
<pre>define service{
 use                             generic-service
 host_name                       web.company-a.com
 service_description             VMWareAdmin
 check_command                   check_http!"-H web.company-a.com -p 8333 -w 5 -c 15 --ssl"
}</pre>
<p><em><strong>web.company-b.com.cfg</strong></em></p>
<pre>define service{
 use                             generic-service
 host_name                       web.company-b.com
 service_description             HTTP
 check_command                   check_http
}</pre>
<h3>NRPE</h3>
<p>L&#8217;ultima cosa che rimane da controllare è lo stato del server MySQL. Dato che il servizio risponde soltanto sull&#8217;interfaccia locale non è possibile controllarne direttamente lo stato dal server Nagios. L&#8217;addon<em> NRPE </em>fa proprio questo: installato sulla macchina da controllare, esegue dei check locali quando interrogato da Nagios.Il plugin da usare sul server è <em>check_nrpe</em> e l&#8217;argomento da passargli è il nome del check definito nel client, il quale a sua volta dovrà associare questo nome ad un check locale (quindi sul client dobbiamo installare i plugin).</p>
<p>Su entrambe le macchine va compilato  l&#8217;addon:</p>
<pre>tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12/
./configure --enable-ssl
make all</pre>
<p>A questo punto l&#8217;installazione tra host e client differisce. Per l&#8217;installazione nel client dei plugin seguite la <a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/" target="_blank">prima parte della guida</a>.</p>
<p><strong>Host</strong></p>
<pre>make install-plugin</pre>
<p>e quindi bisogna creare il template del comando:</p>
<p><em><strong>commands.cfg</strong></em></p>
<pre>define command {
 command_name    check_nrpe
 command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}</pre>
<p><strong>Client</strong></p>
<p>Se non è installato, installate <em>xinetd</em>:</p>
<pre>apt-get install xinetd</pre>
<p>Installate quindi il demone</p>
<pre>make install-daemon
make install-daemon-config
make install-xinetd</pre>
<p>Aggiungete NRPE al file <em>/etc/services</em>:</p>
<pre>nrpe 5666/tcp # NRPE</pre>
<p>Aggiungete l&#8217;ip del server Nagios al file <em>/etc/xinetd.d/nrpe</em> (in questo caso un fittizio <em>4.3.2.1</em>):</p>
<pre>only_from = 127.0.0.1 4.3.2.1</pre>
<p>Infine riavviate il server xinetd e controllate che NRPE sia in ascolto:</p>
<pre>~# /etc/init.d/xinetd restart
~# netstat -at | grep nrpe
tcp        0      0 *:nrpe                  *:*                     LISTEN</pre>
<p>A questo punto si può testare il servizio in locale con:</p>
<pre>~# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12</pre>
<p><strong>Controllare MySQL</strong></p>
<p>Arriviamo al nostro obiettivo: controllare che il server MySQL stia correttamente girando. Creiamo un utente MySQL non privilegiato:</p>
<pre>mysql&gt; CREATE USER 'nagiosCheck'@'localhost' IDENTIFIED BY 'some_pass';</pre>
<p>Il check, lanciato da linea di comando, sarà il seguente:</p>
<pre>~# /usr/local/nagios/libexec/check_mysql -u nagiosCheck -p some_pass
Uptime: 1061012  Threads: 2  Questions: 192277  Slow queries: 0  Opens: 198  Flush tables: 1  Open tables: 64  Queries per second avg: 0.181</pre>
<p>Inseriamo quindi tale check in <em>/usr/local/nagios/etc/nrpe.cfg</em>:</p>
<pre>command[check_mysql]=/usr/local/nagios/libexec/check_mysql -u nagiosCheck -p some_pass</pre>
<p>Da notare che nel server Nagios il nome dell&#8217;argomento da passare a <em>check_nrpe </em>sarà <em>check_mysql</em> come definito tra le parentesi quadre.<br />
A questo punto dal server Nagios si può testare il check remoto:</p>
<pre>~# /usr/local/nagios/libexec/check_nrpe -H tomcat.mydomain.com -c check_mysql
Uptime: 1061534  Threads: 2  Questions: 192280  Slow queries: 0  Opens: 198  Flush tables: 1  Open tables: 64  Queries per second avg: 0.181</pre>
<p>Se è tutto ok non resta che inserirlo tra i servizi dell&#8217;host <strong>B</strong>:</p>
<p><em><strong>web.company-b.com.cfg</strong></em></p>
<pre>define service{
 use                             generic-service
 host_name                       web.company-b.com
 service_description             MySQL
 check_command                   check_nrpe!check_mysql
}</pre>
<p>E questo conclude la configurazione della nostra rete di test. Nella prossima <em>puntata</em> spiegherò come configurare dei server <em>slave</em> per effettuare check passivi, necessari, ad esempio, in configurazioni di rete complesse in cui il server <em>master</em> non può direttamente raggiungere gli host da controllare (se l&#8217;host da controllare è all&#8217;interno di una LAN, per dirne una).</p>
<p><a href="http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/"><strong>Leggi la prima parte della guida</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/02/17/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Costruirsi un sistema di monitoraggio &#8220;casalingo&#8221; con Nagios &#8211; parte 1</title>
		<link>http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/</link>
		<comments>http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 19:49:08 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[ALIX]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Debian Voyage]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=812</guid>
		<description><![CDATA[Costruzione di un sistema di monitoraggio a basso costo con una scheda embedded x86, Debian Voyage e Nagios]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-813" title="Embedded PC" src="http://www.tommyblue.it/wp-content/uploads/2010/02/embedded.jpg" alt="" width="300" height="254" />Se, come me, avete vari server a giro per il mondo a cui fare da baby-sitter, probabilmente avrete sentito la necessità di avere tutto sotto controllo e di scoprire (e magari risolvere) i problemi non appena si presentano.</p>
<p>Dopo aver configurato sistemi di monitoraggio per alcune P.A. e aziende, mi sono deciso a farlo anche per i miei server e descriverò in queste pagine ciò che ho fatto o sto ancora facendo.</p>
<p>Dividerò questa guida in più parti, per renderla più leggibile e per poter facilmente aggiungere nuove parti via via che incremento le funzionalità del sistema.</p>
<p>Questa prima parte descrive l&#8217;<strong>hardware</strong> scelto, l&#8217;<strong>installazione del sistema operativo</strong> e l&#8217;<strong>installazione base di <a title="Nagios" href="http://www.nagios.org/" target="_blank">Nagios</a></strong>.<br />
<span id="more-812"></span></p>
<h3>Hardware</h3>
<p>La scelta dell&#8217;hardware è caduta su un <em>embedded</em> acquistato (per circa 80€) su <a title="PC Engines" href="http://www.pcengines.ch" target="_blank">pcengines.ch</a> ampiamente in grado di fornire la <strong>potenza</strong> necessaria allo scopo e con <strong>consumi</strong> estremamente limitati.</p>
<p>Nello specifico ecco le caratteristiche principali:</p>
<div id="_mcePaste">
<ul>
<li><strong>CPU</strong>: 500 MHz AMD Geode LX800</li>
<li><strong>DRAM</strong>: 256 MB DDR DRAM</li>
<li><strong>Storage</strong>: CompactFlash socket</li>
<li><strong>Power</strong>: DC jack or passive POE, min. 7V to max. 20V</li>
<li><strong>Expansion</strong>: 2 miniPCI slots, dual USB port</li>
<li><strong>Connectivity</strong>: 2 Ethernet channels (Via VT6105M 10/100)</li>
</ul>
</div>
<p>Oltre alla scheda ho acquistato anche il case (damn! non avevano quello rosa shocking!) e l&#8217;alimentatore.</p>
<p>Costo complessivo <strong>101,31€</strong> così distribuiti:</p>
<ul>
<li><strong>Scheda</strong>: 72,23 €</li>
<li><strong>Case</strong>: 6,63 €</li>
<li><strong>Alimentatore</strong>: 4,05 €</li>
<li><strong>Spedizione</strong>: 18,40 €</li>
</ul>
<p>A questo è necessario aggiungere una memoria <strong>CompactFlash</strong> (io ne ho usata una da 2GB), un <strong>lettore/scrittore di tali memorie</strong> e un <strong>adattatore seriale&lt;=&gt;USB</strong> (o soltanto un cavo seriale se avete una porta adatta). Attenzione al cavo seriale che deve essere RS-232 altrimenti la connessione non funziona.</p>
<h3>Sistema operativo</h3>
<p>Il sistema operativo scelto è <a title="Debian Voyage" href="http://linux.voyage.hk/" target="_blank">Debian Voyage</a>, una versione di Debian ottimizzata per le piattaforme <strong>embedded x86</strong>. La sua installazione sulla CompactFlash è estremamente semplice e veloce (per i dettagli vi rimando alla <a title="Wiki di Debian Voyage" href="http://wiki.voyage.hk/dokuwiki/doku.php?id=installation" target="_blank">pagina wiki dedicata</a>).<br />
Una volta installato si può montare la memoria nella mainboard e agganciare il pc via seriale. Per visualizzare la console remota si può usare il software <strong>screen</strong>:</p>
<pre>screen /dev/ttyUSB0 38400</pre>
<p>Si può quindi alimentare la scheda e osservare il boot. Per accedere la prima volta a voyager usare l&#8217;utente <em>root </em>con password <em>voyage</em>.<br />
Consiglio di configurare subito la rete con un ip statico (usate <em>/etc/network/interfaces</em>) e installare <em>openssh-server</em> che permetterà di lavorare in remoto con la console preferita.</p>
<p>Per prepararsi all&#8217;installazione di Nagios dobbiamo fare un po&#8217; di cose:</p>
<pre>apt-get install locales dialog build-essential apache2 libapache2-mod-php5 mailx postfix
addgroup --system nagios
adduser --system --no-create-home --home /usr/local/nagios --ingroup nagios --disabled-password nagios
addgroup --system nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data</pre>
<p>Configuriamo <a title="Postfix" href="http://www.postfix.org" target="_blank">Postfix</a> con i parametri corretti per la nostra connessione e inseriamo in <em>/etc/aliases</em> l&#8217;alias per l&#8217;utente root:</p>
<pre>postmaster: root
nagios: root
root: io@mio-dominio.com</pre>
<p>e aggiorniamo:</p>
<pre>newaliases
</pre>
<p>Anzichè <a title="Apache" href="http://www.apache.org" target="_blank">Apache</a> (un po&#8217; oneroso in termini di memoria consumata) volevo usare <a title="Nginx" href="http://nginx.org/" target="_blank">Nginx</a> ma per configurarlo per fornire pagine <a title="PHP" href="http://www.php.net" target="_blank">PHP</a> è necessario lavorarci un po&#8217;, quindi lascio questa configurazione per il futuro (considererò anche l&#8217;eventuale uso di <a title="Lighttpd" href="http://www.lighttpd.net/" target="_blank">Lighttpd</a>).</p>
<h3>Nagios</h3>
<p>Si può quindi iniziare a installare il software di monitoraggio, ovviamente <a title="Nagios" href="http://www.nagios.org/" target="_blank">Nagios</a>. Per alcuni check potrebbero essere necessari alcuni pacchetti, eccone alcuni tra i più comuni:</p>
<pre>apt-get install libgd2-xpm libgd2-xpm-dev libpng3 libpng3-dev libjpeg62 libjpeg-dev zlib1g zlib1g-dev libnet-snmp-perl snmp libssl-dev libpq-dev libmysqlclient15-dev smbclient qstat fping libradiusclient-ng-dev libldap2-dev</pre>
<p>Scarichiamo <a title="Download Nagios Core" href="http://www.nagios.org/download/core/" target="_blank">Nagios Core</a> in <em>/usr/src</em> e compiliamolo:</p>
<pre>tar xzf nagios-3.2.0.tar.gz
cd nagios-3.2.0/
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --with-httpd-conf=/etc/apache2/conf.d/
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf</pre>
<p>Per ulteriori informazioni seguite la <a title="Guida a Nagios" href="http://nagios.sourceforge.net/docs/3_0/quickstart.html" target="_blank">guida ufficiale</a>.<br />
Compiliamo e installiamo anche i plugin, scaricati da <a title="Download Nagios Plugins" href="http://www.nagios.org/download/plugins/" target="_blank">qui</a>:</p>
<pre>tar xzf nagios-plugin-1.4.14.tar.gz
cd nagios-plugin-1.4.14
./configure  --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make
make install</pre>
<p>Creiamo adesso la password per l&#8217;accesso a Nagios:</p>
<pre>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</pre>
<p>Se cambiate il nome utente sostituite tutte le occorrenze di <em>nagiosadmin</em> col nuovo utente nel file <em>/usr/local/nagios/etc/cgi.cfg</em>.<br />
Aggiungiamo Nagios all&#8217;avvio del sistema:</p>
<pre>update-rc.d nagios defaults</pre>
<p>e iniziamo la configurazione. Una volta terminato, prima di lanciare o riavviare Nagios, possiamo verificare la correttezza della configurazione con:</p>
<pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
</pre>
<p>La prima parte della guida termina qui, nella prossima vedremo come configurare i check di base e i controlli remoti con <a title="Nagios NRPE" href="http://www.nagios.org/download/addons/" target="_blank">Nagios NRPE</a>.</p>
<p><a href="http://www.tommyblue.it/2010/02/17/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-2/"><strong>Leggi la seconda parte della guida</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/02/12/costruirsi-un-sistema-di-monitoraggio-casalingo-con-nagios-parte-1/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

