<?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; debian</title>
	<atom:link href="http://www.tommyblue.it/tag/debian/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>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>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>Ancora una settimana di attesa per Fedora 11</title>
		<link>http://www.tommyblue.it/2009/05/29/ancora-una-settimana-di-attesa-per-fedora-11/</link>
		<comments>http://www.tommyblue.it/2009/05/29/ancora-una-settimana-di-attesa-per-fedora-11/#comments</comments>
		<pubDate>Fri, 29 May 2009 10:14:09 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Riflessioni]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[fedora]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=456</guid>
		<description><![CDATA[Mentre Fedora 10 batte i diretti concorrenti in un interessante confronto basato su apparenza, facilità d&#8217;uso, strumenti di amministrazione, gestione pacchetti, sicurezza, livello di supporto, il rilascio di Fedora 11 viene rimandato di un&#8217;altra settimana a causa di questo bug in Anaconda. Premesso che sono d&#8217;accordo con le motivazioni che hanno portato a far slittare [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-457" title="Strong ant" src="http://www.tommyblue.it/wp-content/uploads/2009/05/strong_ant_by_outlawsammy.jpg" alt="Strong ant" width="250" height="167" />Mentre Fedora 10 batte i diretti concorrenti in <a href="http://www.maximumpc.com/article/features/theres_way_more_linux_ubuntu_8_distros_compared">un interessante confronto</a> basato su <strong>apparenza, facilità d&#8217;uso, strumenti di amministrazione, gestione pacchetti, sicurezza, livello di supporto</strong>, il rilascio di Fedora 11 <a href="https://www.redhat.com/archives/fedora-announce-list/2009-May/msg00011.html">viene rimandato di un&#8217;altra settimana</a> a causa di <a href="https://bugzilla.redhat.com/show_bug.cgi?id=500808">questo bug</a> in Anaconda.</p>
<p>Premesso che sono d&#8217;accordo con le motivazioni che hanno portato a far slittare il rilascio di una settimana, mi imbarazza un po&#8217; vedere il banner del countdown del rilascio di Fedora 11 <strong>salire anziche&#8217; scendere</strong>. E quindi non posso che essere d&#8217;accordo con Felipe <a href="http://pollycoke.net/2009/05/20/fedora-11-in-ritardo-causa-sintomo-e-cura/">quando afferma</a> che il modello a rilasci fissi sia quantomeno imperfetto. Insomma, tutto sommato mi piace l&#8217;idea un po&#8217; Debian-style di rilasciare una versione solo quando e&#8217; pronta, sempre che non ci vogliano tre anni prima di decidersi a fare il passo&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2009/05/29/ancora-una-settimana-di-attesa-per-fedora-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aggiungere una chiave GPG di un repository</title>
		<link>http://www.tommyblue.it/2009/02/25/aggiungere-una-chiave-gpg-di-un-repository/</link>
		<comments>http://www.tommyblue.it/2009/02/25/aggiungere-una-chiave-gpg-di-un-repository/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 00:33:40 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Memoria usiliaria]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[repository]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=344</guid>
		<description><![CDATA[I comandi son solo due, ma me li dimentico sempre :D gpg --keyserver subkeys.pgp.net --recv CHIAVE gpg --export --armorCHIAVE &#124; sudo apt-key add - Et Volià&#8230;]]></description>
			<content:encoded><![CDATA[<p>I comandi son solo due, ma me li dimentico sempre :D</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">gpg --keyserver subkeys.pgp.net --recv CHIAVE<br />
gpg --export --armorCHIAVE | sudo apt-key add -</div></div>
<p>Et Volià&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2009/02/25/aggiungere-una-chiave-gpg-di-un-repository/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mailserver with OpenLDAP, Postfix, Dovecot, Horde from source on Debian Etch</title>
		<link>http://www.tommyblue.it/2008/10/06/mailserver-with-openldap-postfix-dovecot-horde-from-source-on-debian-etch/</link>
		<comments>http://www.tommyblue.it/2008/10/06/mailserver-with-openldap-postfix-dovecot-horde-from-source-on-debian-etch/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 20:37:14 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian etch]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[horde]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[imp]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[openldap]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pop]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=241</guid>
		<description><![CDATA[During this howto i&#8217;ll setup a mail server with LDAP users, Postfix virtual transport and POP/IMAP access (with SSL). I&#8217;ll moreover setup Apache2 with PHP support, Horde webmail, vacation messages and user quotas. Every program will be compiled into /usr/src and installed into /usr/local/program_name. The mailboxes (in Maildir format) will be stored into /mail/uid/ Debian [...]]]></description>
			<content:encoded><![CDATA[<p>During this howto i&#8217;ll setup a mail server with LDAP users, Postfix virtual transport and POP/IMAP access (with SSL). I&#8217;ll moreover setup Apache2 with PHP support, Horde webmail, vacation messages and user quotas.<br />
Every program will be compiled into <em>/usr/src</em> and installed into <em>/usr/local/<strong>program_name</strong></em>. The mailboxes (in Maildir format) will be stored into <em>/mail/<strong>uid</strong>/</em></p>
<h4>Debian Etch installation</h4>
<p>Let&#8217;s start installing Debian Etch from businesscard and unchecking all the default packages (Desktop environment and Base system). After the reboot install some basic package:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">apt-get install build-essential vim openssh-server psmisc autoconf file</div></div>
<p>OpenSSH is just an optional server, but i&#8217;m working on a VMWare virtual machine and an ssh console is more comfortable than the VMWare console :)<br />
<span id="more-241"></span></p>
<h4>Softwares</h4>
<p>Now download all the needed packages into <em>/usr/src</em>:</p>
<ul>
<li>OpenSSL 0.9.8i</li>
<li>BerkeleyDB 4.6.21 (<strong>version 4.7 is unsupported from OpenLDAP</strong>)</li>
<li>OpenLDAP 2.4.11</li>
<li>Apache 2.2.9</li>
<li>IMAP 2007b</li>
<li>PHP 5.2.6</li>
<li>Postfix 2.5 Patchlevel 5</li>
<li>Dovecot 1.1.3</li>
</ul>
<h4>OpenSSL</h4>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ cd /usr/src/openssl<br />
~$ ./config --openssldir=/usr/local/openssl --prefix=/usr/local/openssl<br />
~$ make<br />
~# make install</div></div>
<h4>BerkeleyDB</h4>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ cd /usr/src/db/build_unix<br />
~$ ../dist/configure --prefix=/usr/local/BerkeleyDB<br />
~$ make<br />
~# make install</div></div>
<h4>OpenLDAP</h4>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~# ln -s /usr/local/BerkeleyDB/include/db.h /usr/include/<br />
~$ CPPFLAGS=&quot;-I/usr/local/BerkeleyDB/include/&quot; LDFLAGS=&quot;-L/usr/local/lib -L/usr/local/BerkeleyDB/lib -R/usr/local/BerkeleyDB/lib&quot; LD_LIBRARY_PATH=&quot;/usr/src/db-4.6.21.NC/build_unix/.libs/&quot; ./configure --prefix=/usr/local/openldap --enable-crypt<br />
~$ make depend<br />
~$ make<br />
~$ make test<br />
~# make install</div></div>
<p>For this howto i&#8217;ll use <strong>dc=example,dc=com</strong>. Edit <em>/usr/local/openldap/etc/openldap/slapd.conf</em> including some schemas and setting the password for <strong>cn=Manager,dc=example,dc=com</strong></p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">include &nbsp; &nbsp; &nbsp; &nbsp; /usr/local/openldap/etc/openldap/schema/cosine.schema<br />
include &nbsp; &nbsp; &nbsp; &nbsp; /usr/local/openldap/etc/openldap/schema/nis.schema<br />
include &nbsp; &nbsp; &nbsp; &nbsp; /usr/local/openldap/etc/openldap/schema/inetorgperson.schema</div></div>
<p>Rename <em>/usr/local/openldap/var/openldap-data/DB_CONFIG.example</em> to <em>/usr/local/openldap/var/openldap-data/DB_CONFIG</em> and type:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/usr/local/openldap/libexec/slapd</div></div>
<p>to start the server.</p>
<p>Then create an ldif file (<strong>base.ldif</strong>) for the initial user:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dn: dc=example,dc=com<br />
&nbsp; &nbsp; &nbsp; objectclass: dcObject<br />
&nbsp; &nbsp; &nbsp; objectclass: organization<br />
&nbsp; &nbsp; &nbsp; o: example<br />
&nbsp; &nbsp; &nbsp; dc: example<br />
<br />
&nbsp; &nbsp; &nbsp; dn: cn=Manager,dc=example,dc=com<br />
&nbsp; &nbsp; &nbsp; objectclass: organizationalRole<br />
&nbsp; &nbsp; &nbsp; cn: Manager</div></div>
<p>and add it to the database:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/usr/local/openldap/bin/ldapadd -x -D &quot;cn=Manager,dc=example,dc=com&quot; -W -f base.ldif</div></div>
<p>Now let&#8217;s create some users, i&#8217;ll use these objects:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">objectClass: inetOrgPerson<br />
&nbsp;objectClass: top<br />
&nbsp;objectClass: posixAccount<br />
&nbsp;objectClass: shadowAccount</div></div>
<p>An example:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dn: cn=tommaso,ou=utenti,dc=example,dc=com<br />
cn: Tommaso<br />
gidNumber: 10001<br />
homeDirectory: /mail/tommaso<br />
sn: Visconti<br />
uid: tommaso<br />
uidNumber: 10001<br />
objectClass: inetOrgPerson<br />
objectClass: posixAccount<br />
objectClass: shadowAccount<br />
objectClass: top<br />
loginShell: /bin/bash<br />
givenName: Tommaso<br />
mail: tommaso@example.com<br />
shadowWarning: 7<br />
shadowMax: 99999<br />
shadowLastChange: 14121<br />
labeledURI: pippo<br />
employeeType: active<br />
userPassword: {CRYPT}cfBmIgztxLBh6</div></div>
<p>If you want to set these users as system users install <strong>libnss-ldap</strong></p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">apt-get install libnss-ldap</div></div>
<p>and edit <em>/etc/nsswitch.conf</em></p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">passwd: compat ldap<br />
group: &nbsp;compat ldap<br />
shadow: compat ldap</div></div>
<p>and create the group:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">groupadd -g 10001 users</div></div>
<p>You can verify with:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">getent passwd</div></div>
<h4>Apache</h4>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ cd /usr/src/apache2<br />
<br />
<br />
~$ ./configure --prefix=/usr/local/apache2 --enable-so --with-ssl=/usr/local/openssl/ --enable-ssl<br />
~$ make<br />
~# make install</div></div>
<p>Edit <em>/usr/local/apache2/conf/apache.conf</em> and launch with:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/usr/local/apache2/bin/apachectl -k start</div></div>
<h4>IMAP</h4>
<p>The IMAP library is needed from PHP to send email from the webmail.</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ wget ftp://ftp.cac.washington.edu/imap/imap.tar.Z<br />
~$ cd /usr/src<br />
~$ tar xvzf imap.tar.Z<br />
~$ cd imap-2007b<br />
~$ make slx SSLTYPE=none<br />
~$ mkdir -p /usr/local/imap/lib<br />
~$ mkdir /usr/local/imap/include<br />
~$ cp c-client/*.h /usr/local/imap/include/<br />
~$ cp c-client/*.c /usr/local/imap/lib/<br />
~$ cp c-client/c-client.a /usr/local/imap/lib/libc-client.a</div></div>
<h4>PHP</h4>
<p>First, download and unzip the mysql client libraries, then:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ apt-get install libjpeg-dev libpng-dev libxml2-dev libmcrypt-dev libmagic1<br />
~$ cd /usr/src/php<br />
~$ ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-gettext --with-~$ mcrypt --with-iconv --enable-mbstring=all --enable-mbregex --with-gd --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-mime-magic=/usr/share/file/magic.mime --with-sqlite --with-ldap=/usr/local/openldap/ --with-imap=/usr/local/imap --with-mysql=/usr/src/mysql-5.0.67-linux-i686/ --with-mysqli=/usr/src/mysql-5.0.67-linux-i686/bin/mysql_config<br />
~$ make<br />
~$ make install</div></div>
<p>Edit <strong>apache.conf</strong> adding <strong>index.php</strong> to the default pages; if not present add this too:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;filesmatch \.php$&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SetHandler application/x-httpd-php<br />
&amp;lt;/filesmatch&amp;gt;</div></div>
<h4>Postfix</h4>
<p>Create <strong>/etc/ld.so.conf.d/my_libraries.conf</strong>:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/usr/local/openssl/lib<br />
/usr/local/BerkeleyDB/lib<br />
/usr/local/openldap/lib</div></div>
<p>and launch <strong>ldconfig</strong>!</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~# ln -s /usr/local/BerkeleyDB/lib/libdb.so /usr/lib<br />
~# addgroup --system postfix<br />
~# adduser --system -ingroup postfix --home /mail --no-create-home --disabled-password postfix<br />
~# addgroup --system postdrop<br />
~# addgroup --gid 800 maildeliver<br />
~# adduser --system --uid 800 --gid 800 --home /mail --disabled-password --no-create-home maildeliver<br />
~$ export LD_LIBRARY_PATH=&quot;/usr/local/openldap/lib:/usr/local/BerkeleyDB/lib/&quot;<br />
~$ make makefiles CCARGS='-DDEF_CONFIG_DIR=\&quot;/usr/local/postfix/etc\&quot; -DDEF_COMMAND_DIR=\&quot;/usr/local/postfix/sbin\&quot; -DDEF_DAEMON_DIR=\&quot;/usr/local/postfix/libexec\&quot; -DDEF_MANPAGE_DIR=\&quot;/usr/local/postfix/man\&quot; -DDEF_SENDMAIL_PATH=\&quot;/usr/local/postfix/bin/sendmail\&quot; -DDEF_MAILQ_PATH=\&quot;/usr/local/postfix/bin/mailq\&quot; -DDEF_DATA_DIR=\&quot;/usr/local/postfix/lib\&quot; -DHAS_DB -I/usr/local/BerkeleyDB/include -DHAS_LDAP -I/usr/local/openldap/include' AUXLIBS='-llber -L/usr/local/BerkeleyDB/include/ -ldb -lldap -L/usr/local/openldap/lib'<br />
~$ make<br />
~# make install<br />
~# ln -s /usr/local/postfix/etc/aliases /etc/<br />
~# /usr/local/postfix/sbin/postfix -c /usr/local/postfix/etc/ set-permissions<br />
~# chown -R postfix /usr/local/postfix/lib</div></div>
<p>The gid and user 800 will be used for the virtual transport.</p>
<p>This is <strong>main.cf</strong>:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">queue_directory = /usr/local/postfix-2.5.5/spool<br />
command_directory = /usr/local/postfix-2.5.5/sbin<br />
daemon_directory = /usr/local/postfix-2.5.5/libexec<br />
data_directory = /usr/local/postfix-2.5.5/lib<br />
mail_owner = postfix<br />
debug_peer_level = 2<br />
debugger_command =<br />
&nbsp; &nbsp; &nbsp;PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin<br />
&nbsp; &nbsp; &nbsp;ddd $daemon_directory/$process_name $process_id &amp; sleep 5<br />
sendmail_path = /usr/local/postfix-2.5.5/sbin/sendmail<br />
newaliases_path = /usr/local/postfix-2.5.5/bin/newaliases<br />
mailq_path = /usr/local/postfix-2.5.5/bin/mailq<br />
setgid_group = postdrop<br />
html_directory = no<br />
manpage_directory = /usr/local/postfix-2.5.5/man<br />
readme_directory = no<br />
smtpd_banner = Benvenuti ai puri di cuore<br />
biff = no<br />
append_dot_mydomain = no<br />
myhostname = mail.example.com<br />
alias_maps = hash:/etc/aliases<br />
alias_database = hash:/etc/aliases<br />
myorigin = /etc/mailname<br />
mydestination = localhost<br />
relayhost = <br />
mynetworks = 127.0.0.0/8 192.168.0.0/24<br />
mailbox_size_limit = 0<br />
recipient_delimiter = +<br />
inet_interfaces = all<br />
home_mailbox = Maildir/<br />
virtual_transport = virtual<br />
virtual_uid_maps = static:800<br />
virtual_gid_maps = static:800<br />
virtual_mailbox_base = /mail<br />
virtual_mailbox_maps = ldap:/usr/local/postfix-2.5.5/etc/ldap-accounts.cf<br />
virtual_mailbox_domains = example.com<br />
virtual_alias_maps = hash:/etc/aliases<br />
relay_domains = localhost</div></div>
<p><strong>ldap-accounts.cf</strong>:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">server_host = localhost<br />
search_base = ou=utenti,dc=example,dc=com<br />
query_filter = mail=%s<br />
result_attribute = uid<br />
version = 3<br />
bind = yes<br />
bind_dn = cn=Manager,dc=example,dc=com<br />
bind_pw = pippo</div></div>
<p>Remember to create an user for bindings and edit Postfix and Dovecot configurations to use it.<br />
To verify the ldap file use postmap:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ postmap -q tommaso.visconti@example ldap:/usr/local/postfix/etc/ldap-aliases.cf <br />
tommaso</div></div>
<p>Start postfix with:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~# /usr/local/postfix/sbin/postfix start</div></div>
<h4>Dovecot</h4>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ cd /usr/src/dovecot<br />
~$ LDFLAGS=&quot;-L/usr/local/openldap/lib -L/usr/local/openssl/lib&quot; CPPFLAGS=&quot;-I/usr/local/openldap/include -I/usr/local/openssl/include/&quot; ./configure --prefix=/usr/local/dovecot --with-ldap=yes --with-ssl=openssl<br />
~$ make<br />
~# make install<br />
~# adduser --system -ingroup mail --home /usr/local/dovecot/lib --no-create-home --shell /bin/false --disabled-password dovecot</div></div>
<p>This is <strong>dovecot.conf</strong>:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">protocols = &nbsp;imap imaps pop3 pop3s<br />
mail_uid = 800<br />
mail_gid = 800<br />
listen = *<br />
disable_plaintext_auth = no<br />
shutdown_clients = yes<br />
log_path = /var/log/dovecot.log <br />
info_log_path = /var/log/mail.log<br />
log_timestamp = &quot;%Y-%m-%d %H:%M:%S &quot;<br />
syslog_facility = mail<br />
ssl_listen = *<br />
ssl_disable = no<br />
ssl_cert_file = /etc/ssl/certs/dovecot.pem<br />
ssl_key_file = /etc/ssl/private/dovecot.pem<br />
login_chroot = yes<br />
login_greeting = Welcome to my mail server.<br />
login_log_format_elements = user=&lt; %u&gt; method=%m rip=%r lip=%l %c<br />
login_log_format = %$: %s<br />
mail_location = maildir:/mail/%n <br />
mail_full_filesystem_access = no<br />
mail_debug = no<br />
first_valid_uid = 800<br />
last_valid_uid = 800<br />
first_valid_gid = 800<br />
last_valid_gid = 800<br />
protocol imap {<br />
}<br />
protocol pop3 {<br />
&nbsp; pop3_uidl_format = %08Xu%08Xv<br />
}<br />
auth_verbose = no<br />
auth_debug = no<br />
auth_debug_passwords = no<br />
auth default {<br />
&nbsp; mechanisms = PLAIN LOGIN<br />
&nbsp; passdb ldap {<br />
&nbsp; &nbsp; args = /usr/local/Dovecot-1.1.3/etc/dovecot-ldap.conf <br />
&nbsp; }<br />
&nbsp; userdb ldap {<br />
&nbsp; &nbsp; # Path for LDAP configuration file, see /etc/dovecot/dovecot-ldap.conf for example<br />
&nbsp; &nbsp; args = /usr/local/Dovecot-1.1.3/etc/dovecot-ldap.conf <br />
&nbsp; }<br />
&nbsp; user = mail_deliver<br />
}<br />
dict {<br />
}<br />
plugin {<br />
}</div></div>
<p>and <strong>dovecot-ldap.conf</strong>:</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">hosts = localhost<br />
dn = cn=Manager,dc=example,dc=come<br />
dnpass = pippo<br />
ldap_version = 3<br />
base = ou=utenti, dc=example, dc=com<br />
deref = never<br />
scope = subtree<br />
user_attrs = homeDirectory=home<br />
user_filter = (&amp;(employeeType=active)(mail=%u))<br />
pass_attrs = mail=user@domain,userPassword=password<br />
pass_filter = (&amp;(employeeType=active)(mail=%u))<br />
default_pass_scheme = CRYPT</div></div>
<p>Start dovecot with <strong>/usr/local/dovecot/sbin/dovecot</strong></p>
<h4>Webmail</h4>
<p>I suggest <a href="http://www.horde.org/">Horde Framework</a> or <a href="http://roundcube.net/">Roundcube</a></p>
<h4>Webography</h4>
<ul>
<li><a href="http://www.openssl.org/">OpenSSL</a></li>
<li><a href="http://www.oracle.com/technology/products/berkeley-db/index.html">BerkeleyDB</a></li>
<li><a href="http://www.openldap.org">OpenLDAP</a></li>
<li><a href="http://www.apache.org">Apache</a></li>
<li><a href="ftp://ftp.cac.washington.edu/imap/">IMAP</a></li>
<li><a href="http://www.php.net">PHP</a></li>
<li><a href="http://phpldapadmin.sourceforge.net/">PHPLdapAdmin</a></li>
<li><a href="http://www.postfix.org">Postfix</a></li>
<li><a href="http://www.dovecot.org">Dovecot</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2008/10/06/mailserver-with-openldap-postfix-dovecot-horde-from-source-on-debian-etch/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Chiudersi fuori casa</title>
		<link>http://www.tommyblue.it/2008/05/16/chiudersi-fuori-casa/</link>
		<comments>http://www.tommyblue.it/2008/05/16/chiudersi-fuori-casa/#comments</comments>
		<pubDate>Fri, 16 May 2008 16:39:48 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/?p=150</guid>
		<description><![CDATA[Come probabilmente molti di voi avranno letto, tutte le distribuzioni Debian-based sono state per un periodo vulnerabili ad un bug piuttosto grossetto (una specie di voragine, per usare un eufemismo): le chiavi generate da openssl patchato da Debian non erano casuali come avrebbero dovuto. Fattostà che il mondo linux ha come sempre reagito con rapidità [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tommyblue.it/wp-content/uploads/2008/05/foto-11.jpg" alt="" title="io&#038;giulia" width="250" height="188" class="alignleft size-full wp-image-151" /> Come probabilmente molti di voi <a href="http://metasploit.com/users/hdm/tools/debian-openssl/">avranno letto</a>, tutte le distribuzioni Debian-based sono state per un periodo vulnerabili ad un bug piuttosto grossetto (una specie di voragine, per usare un eufemismo): le chiavi generate da openssl patchato da Debian non erano casuali come avrebbero dovuto.</p>
<p>Fattostà che il mondo linux ha come sempre reagito con rapidità e sono fioccati gli aggiornamenti di sicurezza. In particolare Debian ha anche aggiunto il pacchetto <strong>openssl-blacklist</strong> in cui sono elencate una serie di chiavi vulnerabili. Fin qui tutto bene, non fosse che la chiave con cui accedevo via ssh al mio server sia stata simpaticamente messa in blacklist, col risultato che adesso sono allegramente chiuso fuori casa&#8230; </p>
<p>&#8230;e mi sono anche meritatamente preso di <strong>niubbo</strong> da <a href="http://pi242422.wordpress.com/">Alessandro</a> :(</p>
<p><strong>Edit:</strong></p>
<p>Aggiungo questa vignetta fantastica di <a href="http://dilbert.com/strips/comic/2001-10-25/">Dilbert</a> sulla randomizzazione secondo <a href="http://www.debian.org">Debian</a> :D<br />
<a href='http://www.tommyblue.it/wp-content/uploads/2008/05/schermata1.png' rel="lightbox[150]"><img src="http://www.tommyblue.it/wp-content/uploads/2008/05/schermata1-300x87.png" alt="" title="Dilbert.com" width="300" height="87" class="alignnone size-medium wp-image-152" /></a></p>
<p><strong>Edit 2:</strong></p>
<p>Sembra che a quelli di Debian proprio non vogliano fargliela passare liscia :D<br />
<img src="http://imgs.xkcd.com/comics/security_holes.png" alt="xkcd" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2008/05/16/chiudersi-fuori-casa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows Server 2003 virtuale su Debian Etch con VirtualBox</title>
		<link>http://www.tommyblue.it/2007/11/26/windows-server-2003-virtuale-su-debian-etch-con-virtualbox/</link>
		<comments>http://www.tommyblue.it/2007/11/26/windows-server-2003-virtuale-su-debian-etch-con-virtualbox/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 16:19:24 +0000</pubDate>
		<dc:creator>TommyBlue</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[etch]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[virtual server]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualizzazione]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.tommyblue.it/2007/11/26/windows-server-2003-virtuale-su-debian-etch-con-virtualbox/</guid>
		<description><![CDATA[English version L&#8217;idea è semplice: utilizzare una base sicura (e meglio &#8220;aggeggiabile&#8221;) come Debian Etch con cui virtualizzare Windows Server 2003 (per alcuni servizi che non si possono far girare altrimenti) utilizzando VirtualBox. Tutto sommato non è stato così difficile, ecco qua cosa ho fatto. Installazione Ho effettuato l&#8217;installazione del &#8220;sistema standard&#8221; aggiungendo poi ai [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tommyblue.it/wp-content/uploads/2007/11/snapshot113aq1.png" alt="VirtualBox" align="left" /></p>
<p><strong><a href="http://www.tommyblue.it/wp-content/uploads/2007/12/virtualbox_eng.pdf" title="Virtual Windows Server 2003 on Debian Etch with VirtualBox">English version</a></strong></p>
<p>L&#8217;idea è semplice: utilizzare una base sicura (e meglio &#8220;aggeggiabile&#8221;) come Debian Etch con cui virtualizzare Windows Server 2003 (per alcuni servizi che non si possono far girare altrimenti) utilizzando <a href="http://www.virtualbox.org">VirtualBox</a>.<br />
Tutto sommato non è stato così difficile, ecco qua cosa ho fatto.<br />
<span id="more-84"></span><br />
<strong>Installazione</strong></p>
<p>Ho effettuato l&#8217;installazione del &#8220;sistema standard&#8221; aggiungendo poi ai repository quello di virtualbox come descritto nella <a href="http://www.virtualbox.org/wiki/Downloads">pagina ufficiale di download</a>.<br />
Il pacchetto da installare è <strong><em>virtualbox</em></strong> che si porta dietro un bel po&#8217; di dipendenze:</p>
<pre>I seguenti pacchetti NUOVI (NEW) saranno installati:
cpp cpp-4.1 defoma fontconfig fontconfig-config libasound2 libaudio2 libdirectfb-0.9-25 libexpat1 libfontconfig1
libfreetype6 libglib2.0-0 libice6 libicu36 libidl0 libjpeg62 liblcms1 libmng1 libpng12-0 libqt3-mt libsdl1.2debian
libsdl1.2debian-alsa libsm6 libsvga1 libsysfs2 libx11-6 libx11-data libxalan110 libxau6 libxcursor1 libxdmcp6
libxerces27 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 psmisc svgalibg1
ttf-dejavu virtualbox x11-common</pre>
<p>Quindi aggiungete al gruppo <strong><em>vboxusers</em></strong> l&#8217;utente che poi lancerà la macchina virtuale (eventualmente createlo prima, io ho usato <em>winserver2003</em>).</p>
<p>Se volete lanciare la GUI VirtualBox per la configurazione della macchina virtuale o per utilizzarla in locale e&#8217; necessario installare anche i pacchetti <strong><em>xorg</em></strong> (o quelli che ritenete più opportuni per poter lanciare <strong><em>X</em></strong> e <strong><em>xterm</em></strong>)<strong><em> </em></strong>e<strong><em> libxalan110</em></strong>. Questi pacchetti non sono invece necessari se la macchina sara&#8217; configurata da console (o su un&#8217;altra macchina) e se sara&#8217; necessario solo l&#8217;accesso remoto.</p>
<p><strong>ATTENZIONE</strong><br />
Puo&#8217; capitare che la compilazione del modulo <b><em>vboxdrv</em></b> fallisca, in questo caso verificate di aver installato il pacchetto <strong>linux-headers-vostrokernel</strong> ed, eventualmente, <strong>build-essential</strong>, dopodiche&#8217; rilanciate </p>
<pre> ~# /etc/init.d/vboxdrv setup</pre>
<p><strong>Creazione e configurazione della macchina virtuale con la GUI</strong></p>
<p>A questo punto si può lanciare X con <strong><em>startx</em></strong> (dall&#8217;utente appena aggiunto al gruppo <strong><em>vboxusers</em></strong>) e da xterm si lancia virtualbox col comando  <strong><em>VirtualBox</em></strong>. Creare una macchina virtuale è molto semplice e potete far riferimento alle tantissime risorse già presenti su internet. L&#8217;unica nota è non attivare il server RDP presente in VirtualBox (funziona malissimo!), se necessario meglio usare quello di Windows.</p>
<p>La macchina virtuale puo&#8217; essere creata su un pc e poi spostata nel server finale (dove, magari, non e&#8217; installato l&#8217;ambiente grafico) semplicemente spostando (e impostando poi i giusti permessi) la cartella ~/.VirtualBox.</p>
<p><strong>Configurare la rete</strong></p>
<p>La procedura consiste nel creare una scheda di rete virtuale <strong>vbox0</strong> e un bridge tra essa e la scheda fisica su cui, per comodità, ho creato un ip alias per gestire meglio le richieste.</p>
<p>Ecco quindi il file <em><strong>/etc/network/interfaces</strong></em> col quale imposto l&#8217;ip primario e un alias che assocerò alla macchina virtuale:</p>
<pre># Interfaccia fisica
auto eth0
iface eth0 inet static
        address 192.168.2.60
        netmask 255.255.255.0
        gateway 192.168.2.254
        dns-nameservers 208.67.222.222 208.67.220.220

# Interfaccia virtuale
auto eth0:1
iface eth0:1 inet static
        address 192.168.2.61
        netmask 255.255.255.0</pre>
<p>Poi, dopo aver installato <strong>bridge-utils</strong>, bisogna creare il bridge <strong>br0</strong> tra <strong>eth0:1</strong> e <strong>vbox0</strong>, io ho creato uno script che faccio avviare all&#8217;inizio, ovvero <strong>/etc/init.d/bridge</strong> linkato in <strong>/etc/rc.2/S20bridge</strong>.<br />
<strong>ATTENZIONE:</strong> è fondamentale che parta <strong>PRIMA</strong> che virtualbox abbia creato <strong>vbox0</strong>, altrimenti <strong>br0</strong> non viene trovato, ovvero prima dei files <strong>S20vboxdrv</strong> e <strong>S20vboxnet</strong>.</p>
<p>Ecco quindi <strong>/etc/init.d/bridge</strong>:</p>
<pre>#!/bin/bash
brctl addbr br0
ifconfig br0 10.1.1.1 netmask 255.255.255.0 up

# Regole per far funzionare PASV mode in FTP
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

echo 1 &gt; /proc/sys/net/ipv4/ip_forward

# Giro tutte le richieste su .61 alla macchina virtuale
iptables -t nat -A PREROUTING -p tcp -d 192.168.2.61 -j DNAT --to 10.1.1.2

# Con queste regole si possono girare singole porte
# HTTP
#iptables -t nat -A PREROUTING -p tcp -d 192.168.2.61 --dport 80 -j DNAT --to 10.1.1.2:80
# HTTPS
#iptables -t nat -A PREROUTING -p tcp -d 192.168.2.61 --dport 443 -j DNAT --to 10.1.1.2:443
# Desktop Remoto
#iptables -t nat -A PREROUTING -p tcp -d 192.168.2.61 --dport 3389 -j DNAT --to 10.1.1.2:3389

# Permetto alla macchina virtuale di navigare
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.1.2 -j MASQUERADE</pre>
<p>Infine creo l&#8217;interfaccio <em><strong>vbox0</strong></em>, prima però è meglio riavviare la rete per aggiornare gli indirizzi ip (attenzione se cambiate l&#8217;ip e siete connessi via SSH) ed eseguire lo script <strong>/etc/init.d/bridge</strong> per creare il bridge (altrimenti verrà mostrato un errore che si risolverà al riavvio del pc).</p>
<pre>/etc/init.d/netrworking restart
chmod +x /etc/init.d/bridge
/etc/init.d/bridge</pre>
<p>Il comando qui di seguito crea <strong>vbox0</strong> e salva la cui configurazione nel file <strong>/etc/vbox/interfaces</strong>):</p>
<pre>VBoxAddIF vbox0 nomeutente br0</pre>
<p>Al posto di <em>nomeutente</em> ho usato <em>winserver2003</em>.<br />
Ricordatevi di impostare su Windows l&#8217;ip a <strong>10.1.1.2/24</strong> e il gateway a <strong>10.1.1.1</strong></p>
<p><strong>Avvio automatico all&#8217;accensione del pc</strong></p>
<p>Per avviare con l&#8217;interfaccia grafica ho usato <strong>gdm</strong> con login automatico dell&#8217;utente con cui lancio la macchina virtuale e nel file <strong>.bashrc</strong> ho inserito il comando necessario a lanciare la macchina da console:</p>
<pre>VBoxSDL -fullscreen -vm WinServer2003</pre>
<p>Se invece volete soltanto l&#8217;accesso remoto alla macchina il comando e&#8217;:</p>
<pre>VBoxVRDP -startvm WinServer2003</pre>
<p>Per l&#8217;avvio automatico ho creato il file <strong>/etc/init.d/VBoxAutostart</strong> linkato in <strong>/etc/rc.2/S99VBoxAutostart</strong> come questo qui sotto:</p>
<pre>#!/bin/bash

echo -e ""
echo -e "### AVVIO DELLA MACCHINA VIRTUALE ###"
echo -e ""
su winserver2003 -c 'VBoxVRDP -startvm WinServer2003 &amp;'
sleep 5
echo -e ""</pre>
<p>In alternativa e&#8217; possibile creare uno script contenente</p>
<pre>VBoxVRDP -startvm WinServer2003 &amp;</pre>
<p>da lanciare poi con <strong>start-stop-daemon</strong> sempre nel file  <strong>/etc/init.d/VBoxAutostart</strong></p>
<pre>#!/bin/bash
start-stop-daemon --start -c winserver2003 --exec /path/script.sh</pre>
<p><strong>Cose che capitano&#8230;</strong><br />
Ho avuto modo di provare più volte la procedura descritta qui sopra e di correggerla altrettante volte a causa di qualche &#8220;svista&#8221;. Alcuni fallimenti nella creazione/avvio della macchina virtuale però non sono relativi alla procedura da me descritta ed ho quindi deciso di elencarli per cercare di esservi d&#8217;aiuto.</p>
<p>Se, ad esempio, la macchina da linea di comando non si avvia con l&#8217;errore <strong><em>Invalid machine name!</em></strong> non è proprio detto che sia sbagliato il nome della macchina. Nel mio caso infatti mi ero scordato di creare la cartella <strong><em>/home/winserver2003/scambio</em></strong> che avevo impostato come cartella di scambio tra il sistema host e quello virtuale.</p>
<p>Altri errori sui permessi, ad esempio, dell&#8217;uso del cdrom o altre periferiche li ho risolti aggiungendo l&#8217;utente ai gruppi relativi (audio, cdrom, floppy, plugdev, ecc.)</p>
<p><strong>continua&#8230;</strong> :D</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tommyblue.it/2007/11/26/windows-server-2003-virtuale-su-debian-etch-con-virtualbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

