<?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</title>
	<atom:link href="http://www.tommyblue.it/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>Fri, 19 Feb 2010 11:42:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Abilitare l&#8217;accesso SSH su ESXi 4</title>
		<link>http://www.tommyblue.it/2010/02/19/abilitare-laccesso-ssh-su-esxi-4/</link>
		<comments>http://www.tommyblue.it/2010/02/19/abilitare-laccesso-ssh-su-esxi-4/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 11:32:28 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[ESX]]></category>
		<category><![CDATA[ESXi]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=893</guid>
		<description><![CDATA[Breve how-to per abilitare l'accesso SSH su VMWare ESXi 4]]></description>
			<content:encoded><![CDATA[<p>Di default <a title="VMWare ESXi" href="http://www.vmware.com/products/esxi/" target="_blank">VMWare ESXi</a> non permette l&#8217;accesso SSH ma solo con la console vSphere. È però molto comodo accedervi in SSH, ad esempio per fare una copia delle macchine virtuali o automatizzare altre operazioni.</p>
<p>Su ESXi versione 4, per abilitare il server SSH basta effettuare questi passaggi:</p>
<ol>
<li>Premere Alt+F1</li>
<li>Digitare <em>unsupported</em> (non vedrete nulla a schermo)</li>
<li>Verrà chiesta la password di root</li>
<li>Una volta entrati editare il file <em>/etc/inetd.conf</em> (usando <em>vi</em> o un altro editor)</li>
<li>Decommentare le riche riguardanti SSH (ovvero togliere il cancelletto <em>#</em>). Ci sono due righe riguardanti SSH, una per TCPv4 e una per TCPv6</li>
<li>Lanciare <em>services.sh restart</em></li>
</ol>
<p>Se dopo questi passaggi ancora non è possibile accedere bisogne identificare il PID di inetd (con <em>ps aux | grep inetd</em>) e poi riavviarlo con <em>kill -HUP &lt;pid&gt;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/02/19/abilitare-laccesso-ssh-su-esxi-4/feed/</wfw:commentRss>
		<slash:comments>2</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.mailalyzer.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>0</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 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 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>0</slash:comments>
		</item>
		<item>
		<title>Convertire un&#8217;immagine di Virtualbox in una per VMWare con QEMU su Mac</title>
		<link>http://www.tommyblue.it/2010/02/05/convertire-unimmagine-di-virtualbox-in-una-per-vmware-con-qemu-su-mac/</link>
		<comments>http://www.tommyblue.it/2010/02/05/convertire-unimmagine-di-virtualbox-in-una-per-vmware-con-qemu-su-mac/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 11:39:13 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Memoria usiliaria]]></category>
		<category><![CDATA[conversione]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualizzazione]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=804</guid>
		<description><![CDATA[Può capitare di avere un&#8217;immagine di un s.o. virtuale in formato vdi (VirtualBox) e di doverla trasformare in un&#8217;immagine che possa funzionare con VMWare (vmdk), il tutto su Mac OS X.
La soluzione esiste ed è interessante che comporti l&#8217;uso di un terzo software di emulazione: QEMU :-)
L&#8217;utility che ci serve è qemu-img che nell&#8217;installazione Mac [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tommyblue.it/wp-content/uploads/2010/02/qemu.gif" rel="lightbox[804]"><img class="alignleft size-full wp-image-805" title="QEMU" src="http://www.tommyblue.it/wp-content/uploads/2010/02/qemu.gif" alt="" width="84" height="81" /></a>Può capitare di avere un&#8217;immagine di un s.o. virtuale in formato <em>vdi</em> (<a href="http://www.virtualbox.org/">VirtualBox</a>) e di doverla trasformare in un&#8217;immagine che possa funzionare con <a href="http://www.vmware.com/">VMWare</a> (<em>vmdk</em>), il tutto su <em>Mac OS X</em>.</p>
<p>La soluzione esiste ed è interessante che comporti l&#8217;uso di un terzo software di emulazione: <a href="http://www.kju-app.org/">QEMU</a> :-)</p>
<p>L&#8217;utility che ci serve è <strong>qemu-img</strong> che nell&#8217;installazione Mac si trova in <em>/Applications/Q.app/Contents/MacOS/qemu-img</em></p>
<p>La conversione è molto semplice e non richiede troppo tempo:</p>
<pre>cd /Applications/Q.app/Contents/MacOS/
./qemu-img convert /path2virtualbox/img2convert.vdi  /path2vmware/converted_img.vmdk</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/02/05/convertire-unimmagine-di-virtualbox-in-una-per-vmware-con-qemu-su-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il gioco dell&#8217;8</title>
		<link>http://www.tommyblue.it/2010/01/23/il-gioco-dell8/</link>
		<comments>http://www.tommyblue.it/2010/01/23/il-gioco-dell8/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 15:18:00 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[Università]]></category>
		<category><![CDATA[Apprendimento]]></category>
		<category><![CDATA[Gioco dell'8]]></category>
		<category><![CDATA[Intelligenza Artificiale]]></category>
		<category><![CDATA[Reti neurali]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=795</guid>
		<description><![CDATA[Con Cosimo abbiamo terminato e consegnato le tesine riguardanti il gioco dell&#8217;8 e l&#8217;apprendimento con reti neurali per il corso di Intelligenza Artificiale del prof. Soda, le allego quindi per futura memoria:

Tesina sul gioco dell&#8217;8
Tesina apprendimento &#8211; dataset diabetes

]]></description>
			<content:encoded><![CDATA[<p>Con <a href="http://blogs.gnome.org/cosimoc/" target="_blank">Cosimo</a> abbiamo terminato e consegnato le tesine riguardanti il gioco dell&#8217;8 e l&#8217;apprendimento con reti neurali per il corso di Intelligenza Artificiale del prof. Soda, le allego quindi per futura memoria:</p>
<ul>
<li><a href="http://www.tommyblue.it/wp-content/uploads/2010/01/Tesina_otto_v1.1.pdf">Tesina sul gioco dell&#8217;8</a></li>
<li><a href="http://www.tommyblue.it/wp-content/uploads/2010/01/Tesina_diabetes_v1.0.pdf">Tesina apprendimento &#8211; dataset diabetes</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/01/23/il-gioco-dell8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminare le righe di commento con Vim</title>
		<link>http://www.tommyblue.it/2010/01/21/eliminare-le-righe-di-commento-con-vim/</link>
		<comments>http://www.tommyblue.it/2010/01/21/eliminare-le-righe-di-commento-con-vim/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 10:23:29 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Memoria usiliaria]]></category>
		<category><![CDATA[Regexp]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=789</guid>
		<description><![CDATA[Muovendo i miei primi passi nelle regular expressions ho cercato la regexp per eliminare le righe di commento da un file, ovviamente con Vim. Il risultato è questo:
:g/^\s*#.*/d
mi resta da capire perché questa seconda regexp non funziona:
:g/^[# ]+.*/d

]]></description>
			<content:encoded><![CDATA[<p>Muovendo i miei primi passi nelle <em>regular expressions</em> ho cercato la regexp per eliminare le righe di commento da un file, ovviamente con <em>Vim</em>. Il risultato è questo:</p>
<pre>:g/^\s*#.*/d</pre>
<p>mi resta da capire perché questa seconda regexp non funziona:</p>
<pre>:g/^[# ]+.*/d</pre>
<p><img class="size-full wp-image-790 aligncenter" title="Regexp" src="http://www.tommyblue.it/wp-content/uploads/2010/01/regexp.jpg" alt="" width="180" height="240" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/01/21/eliminare-le-righe-di-commento-con-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Browsers Trip</title>
		<link>http://www.tommyblue.it/2010/01/20/browsers-trip/</link>
		<comments>http://www.tommyblue.it/2010/01/20/browsers-trip/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 00:43:36 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Riflessioni]]></category>
		<category><![CDATA[Tempo Libero]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Extensions]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=784</guid>
		<description><![CDATA[Dedico una riflessione al mio eterno viaggio nella scelta del browser definitivo, sempre che sceglierne solo uno sia un vantaggio.
Non sarà una classifica perché non sarei in grado di farla, ma più un elenco di pregi e difetti dei tre browser in esame: Mozilla Firefox, Apple Safari e Google Chrome.
Ma veniamo ai fatti!
Apple Safari
Non c&#8217;ho [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-785" title="Mozilla Firefox, Google Chrome, Apple Safari" src="http://www.tommyblue.it/wp-content/uploads/2010/01/browsers.jpg" alt="" width="222" height="102" />Dedico una riflessione al mio eterno viaggio nella scelta del <strong>browser</strong> definitivo, sempre che sceglierne solo uno sia un vantaggio.<br />
Non sarà una classifica perché non sarei in grado di farla, ma più un elenco di pregi e difetti dei tre browser in esame: <strong><a href="http://www.mozilla-europe.org/it/firefox/" target="_blank">Mozilla Firefox</a></strong>, <strong><a href="http://www.apple.com/it/safari/" target="_blank">Apple Safari</a></strong> e <strong><a href="http://www.google.com/chrome/?hl=it" target="_blank">Google Chrome</a></strong>.</p>
<p>Ma veniamo ai fatti!<span id="more-784"></span></p>
<h3>Apple Safari</h3>
<p>Non c&#8217;ho mai avuto troppa confidenza. Per tutti un browser veloce, a me è sempre sembrato lento. Forse è solo una questione di feeling, ma per quanto, periodicamente, ci riprovi, non riesco a usarlo più di tanto (la stessa cosa mi succede con <em>Mail</em>). In particolare non riesco a trovarmi bene con le password salvate (troppo &#8220;incastrate&#8221; con quelle di sistema) e gli shortcut, che sono troppo cervellotici (direi una caratteristica di casa Cupertino). Anche la barra degli strumenti non mi convince: personalizzabile ma solo fino a un certo punto.<br />
<strong>A quando le estensioni?<br />
</strong>Sebbene il giudizio sembri totalmente negativo, <strong>Safari in un certo qualmodo mi intriga</strong> e so che il mio giudizio non è definitivo.</p>
<h3>Google Chrome</h3>
<p><strong>Veloce e pratico.</strong> A Google sanno (s)fruttare l&#8217;esperienza fatta dagli altri (che tutto sommato è un pregio): vi trovo quasi tutte le cose che mi piacciono di Firefox. Non mi sono trovato troppo bene con i preferiti e la gestione dei download, perdipiù, ancora in beta, spesso crasha (riesce comunque sempre a recuperare i tab aperti). L&#8217;attuale (e temporanea) mancanza di estensioni mi limita troppo, motivo per cui è stato, per ora, messo nel cassetto.</p>
<h3>Mozilla Firefox</h3>
<p>Il vero motivo per cui nasce quest&#8217;articolo, punto di inizio e fine: usato per anni, l&#8217;ho &#8220;abbandonato&#8221; qualche settimana per testare gli altri browsers.<br />
La scelta di cambiare è stata causata dalla sua <strong>lentezza nel caricarsi</strong>, sicuramente derivante da anni di lavoro in cui gliene ho fatte di tutti i colori, tra estensioni, <em>about:config</em> e altro.<br />
Ma prima o poi, si sa, si torna a casa e così è stato anche stavolta: in queste settimane ho continuato comunque a usare Firefox per fini lavorativi, in particolare a &#8220;causa&#8221; delle estensioni <a href="http://getfirebug.com/" target="_blank">Firebug</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">WebDeveloper</a> e <a href="http://www.colorzilla.com/" target="_blank">ColorZilla</a>, ma dopo la fallita ricerca di alternative a estensioni come Delicious, la libera aggiunta di motori di ricerca e il tanto agognato <em>feeling</em>, sono tornato ad usarlo in pianta stabile, comunque con un occhio sempre puntato sui &#8220;rivali&#8221;.<br />
Per chi non lo avesse ancora fatto, consiglio anche l&#8217;uso del suo figlioletto <a href="http://flock.com/" target="_blank">Flock</a>.</p>
<h3>Quindi?</h3>
<p>Niente. Queste sono le mie impressioni, nel giudizio pesa sicuramente la scelta del sistema operativo<a href="http://www.apple.com/macosx/" target="_blank"> Mac OSX &#8220;Snow Leopard&#8221;</a>. Su Linux, oltre a non avere Safari, Chrome avrebbe dato sicuramente un&#8217;impressione migliore.<br />
Invito chiunque voglia ad aggiungere i propri pareri su questi e altri browser</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/01/20/browsers-trip/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DNS e Postfix: come non generare &#8220;spam&#8221;</title>
		<link>http://www.tommyblue.it/2010/01/18/dns-e-postfix-come-non-generare-spam/</link>
		<comments>http://www.tommyblue.it/2010/01/18/dns-e-postfix-come-non-generare-spam/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 01:02:50 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[DKIM]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[DomainKeys]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[reverse DNS]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[SPF]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=768</guid>
		<description><![CDATA[Edit (29/01/2010): Aggiunte una correzione per far funzionare la firma DKIM su server di relay
Ho recentemente configurato alcuni server per l&#8217;invio di email. Parte del lavoro ha riguardato la corretta configurazione di Postfix e del server DNS per evitare che le email inviate venissero rilevate come spam.
In una diversa guida spiegherò come ottimizzare la configurazione [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Edit (29/01/2010): Aggiunte una correzione per far funzionare la firma DKIM su server di relay</strong></p>
<p>Ho recentemente configurato alcuni server per l&#8217;invio di email. Parte del lavoro ha riguardato la corretta configurazione di Postfix e del server DNS per evitare che le email inviate venissero rilevate come spam.<br />
<em>In una diversa guida spiegherò come ottimizzare la configurazione di Postfix per grandi quantità di email (≥1.000.000/mese). Dato che già in molti me lo hanno chiesto: no, non si tratta di server per l&#8217;invio di spam, ma server per il <a href="http://en.wikipedia.org/wiki/E-mail_marketing" target="_blank">mail marketing</a> (quando il servizio sarà pubblico potrò tranquillamente rivelarne il nome).<br />
</em></p>
<p>La configurazione ha riguardato <strong>tre punti principali</strong>:</p>
<ul>
<li>Impostazione del record A e del reverse address</li>
<li>Impostazione di SPF</li>
<li>Configurazione di DKIM e DomainKeys</li>
</ul>
<p><span id="more-768"></span></p>
<h3>Record A e Reverse Address</h3>
<p>Per iniziare, il server SMTP deve avere un <strong>record DNS di tipo A</strong> associato. Quindi, ad esempio:</p>
<pre>mailer1.mydomain.com IN A 12.34.56.78</pre>
<p>Tale impostazione è a carico del proprietario del dominio <em>mydomain.com</em> (ovvero: voi).<br />
Allo stesso tempo bisogna impostare il <strong>DNS inverso</strong> per una corretta risoluzione: infatti il server che riceverà una mail dall&#8217;ip <em>12.34.56.78,</em> che dice di essere <em>mailer1.mydomain.com</em>, vorrà avere riscontro di tale associazione <strong>IP&lt;=&gt;Dominio</strong>. Effettuerà quindi una risoluzione DNS inversa che, nel caso in esempio, dovrà restituire <em>mailer1.mydomain.com</em>. Questa configurazione è a carico del fornitore della connettività e dell&#8217;ip, generalmente coloro che vi forniscono l&#8217;hosting.</p>
<p>Per verificare la corretta configurazione basta usare <strong>dig</strong>:</p>
<pre>~$ dig +short mailer1.mydomain.com
12.34.56.78 

~$ dig +short -x 12.34.56.78
mailer1.mydomain.com.</pre>
<h3>Sender Policy Framework</h3>
<address><strong>Sender Policy Framework</strong> abbreviato in <strong>SPF</strong> è un metodo per limitare gli abusi del nome del mittente nei messaggi di posta elettronica. Si tratta di un protocollo tramite il quale è possibile definire <em>da dove</em> viene spedita la posta elettronica per una certa classe di mittenti. (WikiPedia)</address>
<p>Sebbene non nuovissimo, SPF è largamente utilizzato e una sua corretta configurazione permette già una certa sicurezza nel fatto che le mail inviate non vengano riconosciute come spam. Si tratta semplicemente di impostare un record DNS di tipo TXT indicante quali server sono autorizzati ad inviare email per tale dominio.</p>
<p>Le configurazioni possibili sono molte (potete consultarle nell&#8217;<a href="http://tools.ietf.org/html/rfc4408" target="_blank">RFC 4404</a>), nel nostro caso il record potrebbe essere:</p>
<pre>v=spf1 mx ip4:12.34.56.78 ~all</pre>
<p>Oltre alla versione (<strong>v=spf1</strong>), indica che gli host con associato un record MX per il dominio, oltre al server con ip <em>12.34.56.78</em>, possono inviare email. Inoltre indica, con <strong>~all</strong>, che tale configurazione comprende tutti i possibili host che inviano email per il dominio.</p>
<p>Potete utilizzare <a href="http://old.openspf.org/wizard.html" target="_blank">questo tool</a> per creare i vostri record SPF.</p>
<h3>DKIM e DomainKeys</h3>
<p>DomainKeys e DKIM sono due sistemi per la verifica del mittente nel dominio e l&#8217;integrità del messaggio. Entrambi utilizzano il sistema a chiave pubblica/privata: la chiave pubblica è distribuita in un record DNS e la chiave privata viene utilizzata dal server SMTP per firmare l&#8217;email prima del suo invio. <strong>DomainKeys</strong> è nata in casa <strong>Yahoo</strong> (che, tra i grandi ISP, è l&#8217;unica che lo utilizza, a quanto ne so), <strong>DKIM</strong> (<strong><a href="http://en.wikipedia.org/wiki/DomainKeys_Identified_Mail" target="_blank">DomainKeys Identified Mail</a></strong>) è la sua evoluzione.</p>
<p>Nel mio caso uno tra i requisiti del server è quello di permettere la personalizzazione dei campi <em>From</em> e <em>Reply-To</em> mentre il collegamento col server di invio è rappresentato dal campo <em>Return-Path</em> valorizzato con il dominio del server. Data la difficoltà nell&#8217;impostare DomainKeys con tale configurazione e data la sua scarsa diffusione, mi sono intanto limitato alla configurazione di DKIM per la quale ho seguito <a href="https://help.ubuntu.com/community/Postfix/DKIM" target="_blank">questa guida</a> con alcune modifiche.</p>
<p>Si inizia installando <strong>dkim-filter</strong>:</p>
<pre>~$ sudo apt-get install dkim-filter</pre>
<p>e generando le chiavi per il server con l&#8217;apposito tool</p>
<pre>~$ dkim-genkey -s mailer1 -d mydomain.com -t</pre>
<p>Dopo questo comando nel file <strong>mailer1.private</strong> vi sarà la chiave privata mentre nel file <strong>mailer1.txt</strong> una possibile configurazione per il record DNS:</p>
<pre>mailer1._domainkey IN TXT "v=DKIM1; g=*; k=rsa; t=y; p=MIGfMA0GC[...cut...]8FsXOPbuUQIDAQAB" ; ----- DKIM mailer1 for mailalyzer.com</pre>
<p>Sebbene questo record sia corretto, le opzioni sono molte e consiglio un&#8217;attenta lettura degli RFC (linkati sulla <a href="http://en.wikipedia.org/wiki/DomainKeys_Identified_Mail" target="_blank">pagina dedicata di WikiPedia</a>), in particolare potreste essere interessati a modificare &#8220;<strong>t=y;</strong>&#8221; in &#8220;<strong>t=;</strong>&#8221; dichiarando che il servizio di firma non è in fase di test. A tale record consiglio di aggiungerne un secondo, più generale:</p>
<pre>_domainkey.mydomain.com. IN TXT "o=~"</pre>
<p>che indica che non tutte le email generate dal dominio vengono firmate (l&#8217;alternativa è &#8220;<strong>o=-</strong>&#8220;).</p>
<p>A questo punto si prosegue con la configurazione del file <strong>/etc/default/dkim-filter</strong>. Basta decommentare una delle righe che specificano un socket. Io ho scelto di utilizzare:</p>
<pre>SOCKET="inet:20209@localhost"</pre>
<p>Proseguiamo quindi con <strong>/etc/dkim-filter.conf.</strong> Riporto tutte le configurazioni fatte, ricordandovi che tale configurazione è studiata per permettere la personalizzazione dei campi From e Reply-To (e quindi una sorta di configurazione multidominio):</p>
<pre>Syslog                  yes
SyslogSuccess           yes
UMask                   022
UserID                  dkim-filter:dkim-filter
Socket                  inet:20209@localhost
Domain                  *
Selector                mailer1
AutoRestart             yes
Background              yes
Canonicalization        simple
DNSTimeout              5
Mode                    sv
SignatureAlgorithm      rsa-sha1
SubDomains              no
X-Header                yes
Statistics              /var/log/dkim-filter/dkim-stats
AllowSHA1Only           no
AlwaysAddARHeader       no
AutoRestartRate         10/1h
Canonicalization        simple/simple
KeyList                 /etc/mail/dkim/keylist
MTA                     MSA
On-Default              reject
On-BadSignature         reject
On-DNSError             tempfail
On-InternalError        accept
On-NoSignature          accept
On-Security             discard
PidFile                 /var/run/dkim-milter/dkim-milter.pid
RemoveOldSignatures     yes</pre>
<p>Il file <strong>/etc/mail/dkim/keylist</strong> contiene:</p>
<pre>*:mydomain.com:/etc/mail/dkim/keys/mydomain.com/mailer1</pre>
<p>mentre il file <strong>/etc/mail/dkim/keys/mydomain.com/mailer1</strong> contiene la chiave privata, ovvero il file <strong>mailer1.private</strong> precedentemente creato, spostato in una cartella adatta e con i giusti permessi:</p>
<pre>~$ mv mailer1.private /etc/mail/dkim/keys/mydomain.com/mailer1
~$ chmod 600 /etc/mail/dkim/keys/mydomain.com/mailer1
~$ chown dkim-filter:dkim-filter /etc/mail/dkim/keys/mydomain.com/mailer1</pre>
<p>Se il server di invio email riceverà email da altri server (di cui è quindi un <em>relayhost</em>) sarà necessario specificare quali sono i server &#8220;fidati&#8221;. Quindi nel file <strong>/etc/dkim-filter.conf</strong> bisogna aggiungere:</p>
<pre>InternalHosts           /etc/mail/dkim/trusted-hosts</pre>
<p>e bisogna creare il file /<strong>etc/mail/dkim/trusted-hosts</strong> contenente (uno per linea) gli indirizzi ip dei server (attenzione che contenga anche l&#8217;indirizzo ip di localhost, <em>127.0.0.1</em>).</p>
<p>Per concludere è necessario configurare Postfix per firmare le email, aggiungendo nel file <strong>/etc/postfix/main.cf</strong>:</p>
<pre>smtpd_milters = inet:localhost:20209
non_smtpd_milters = inet:localhost:20209
milter_protocol = 2
milter_default_action = accept</pre>
<p>Adesso basta far partire i due demoni e si può provare ad inviare una email:</p>
<pre>~$ sudo /etc/init.d/dkim-filter start
~$ sudo /etc/init.d/postfix start
~$ echo "Questa email è una prova" | mail -a "From: qualcosa@miodominio.it" -a "Reply-To: dilloame@dominio.it" -s "Email di test" recipient@dominioricevente.it -- -f mailer1@mydomain.com</pre>
<p>In <strong>/var/log/mail.log</strong> potete verificare l&#8217;avvenuta firma:</p>
<pre>Jan 18 00:26:35 mailer1 dkim-filter[21178]: XXXXXXXXXX "DKIM-Signature" header added</pre>
<p>Se inviate la mail a un dominio <em>yahoo.com</em> o <em>gmail.com</em> potete verificare subito se la firma ha avuto successo. Ad esempio ecco l&#8217;header di una mail ricevuta da Yahoo:</p>
<pre>Authentication-Results: mta1169.mail.mud.yahoo.com  from=miodominio.it; domainkeys=neutral (no sig); from=mydomain.com; dkim=pass (ok)</pre>
<p>Questa prima guida è conclusa. Spero di riuscire a trovare a breve una soluzione per la configurazione di DomainKeys in modo da poter integrare questo articolo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/01/18/dns-e-postfix-come-non-generare-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>News@Tumblr</title>
		<link>http://www.tommyblue.it/2010/01/03/newstumblr/</link>
		<comments>http://www.tommyblue.it/2010/01/03/newstumblr/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 21:49:21 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Sito]]></category>
		<category><![CDATA[Tumblr]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=762</guid>
		<description><![CDATA[Da un po&#8217; sentivo la necessità di poter postare tutto ciò che mi passa per la mente durante la giornata, ma il blog non mi sembrava il modo adatto. Ho quindi aperto un miniblog su Tumblr in cui mi sbizzarrirò :-)
]]></description>
			<content:encoded><![CDATA[<p><a href="http://news.tommyblue.it"><img class="aligncenter size-full wp-image-763" title="News" src="http://www.tommyblue.it/wp-content/uploads/2010/01/news.png" alt="" width="416" height="107" /></a>Da un po&#8217; sentivo la necessità di poter postare tutto ciò che mi passa per la mente durante la giornata, ma il blog non mi sembrava il modo adatto. Ho quindi aperto un <a href="http://news.tommyblue.it">miniblog su Tumblr</a> in cui mi sbizzarrirò :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2010/01/03/newstumblr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rip dei giochi WII in ISO su Mac</title>
		<link>http://www.tommyblue.it/2009/12/26/rip-dei-giochi-wii-in-iso-su-mac/</link>
		<comments>http://www.tommyblue.it/2009/12/26/rip-dei-giochi-wii-in-iso-su-mac/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 16:19:51 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Memoria usiliaria]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[WII]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=758</guid>
		<description><![CDATA[Una breve guida al ripping dei giochi della WII in formato ISO su Mac.
L&#8217;utilità di avere i giochi in formato ISO è, ad esempio, quella di poterli poi caricare su un hard disk USB per lanciarli direttamente con HomeBrew Channel e USB Loader GX senza dover cambiare dvd in continuazione.
Dopo aver inserito il disco aprite [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-759" title="Nintendo WII rip" src="http://www.tommyblue.it/wp-content/uploads/2009/12/10189609-nintendo-wii-console-e1261843825277.jpg" alt="" width="200" height="200" />Una breve guida al ripping dei giochi della WII in formato ISO su Mac.</p>
<p>L&#8217;utilità di avere i giochi in formato ISO è, ad esempio, quella di poterli poi caricare su un hard disk USB per lanciarli direttamente con <strong>HomeBrew Channel</strong> e <strong>USB Loader GX</strong> senza dover cambiare dvd in continuazione.</p>
<p>Dopo aver inserito il disco aprite <strong>Utility disco</strong> e selezionate il dvd. Quindi cliccate su <strong>Nuova immagine</strong> e salvate con le opzioni standard. Verrà creata un&#8217;immagine di tipo <strong>dmg</strong>.</p>
<p>Il secondo passaggio consiste nell&#8217;aprire il terminale e utilizzare questo comando:</p>
<pre>hdiutil convert nomefile.dmg -format UDTO -o nomefile.iso</pre>
<p>Al termine dell&#8217;operazione (pochi minuti rispetto all&#8217;interminabile creazione del file dmg) il file avrà estensione <strong>.iso.cdr</strong>. Rinominatelo <strong>.iso</strong> e, se volete, cambiate la regione del gioco utilizzando <strong>WiiJunkies</strong>.</p>
<p>Se poi volete caricare l&#8217;iso su un hard disk usb utilizzate <strong>WBFS for MacOS X</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2009/12/26/rip-dei-giochi-wii-in-iso-su-mac/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
