<?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>Idea Factory &#187; Linux</title>
	<atom:link href="http://ideafactory.it/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://ideafactory.it</link>
	<description>c&#039;e&#039; solo un modo di fare le cose: farle bene</description>
	<lastBuildDate>Thu, 01 Jul 2010 15:06:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Gestire il failover della connessione</title>
		<link>http://ideafactory.it/iproute/gestire-il-failover-della-connessione.html</link>
		<comments>http://ideafactory.it/iproute/gestire-il-failover-della-connessione.html#comments</comments>
		<pubDate>Thu, 25 Feb 2010 21:14:34 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[iproute]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://ideafactory.it/?p=280</guid>
		<description><![CDATA[Dopo l&#8217;intervento al ginocchio, eccomi di nuovo a scrivere su IdeaFactory e voglio iniziare scusandomi con tutti quelli che mi hanno scritto o contattato via Facebook e non hanno ancora ricevuto risposta. Purtroppo non è facile stare seduti davanti ad un PC (anche se è un bel iMac) dopo un intervento al ginocchio. Ma veniamo all&#8217;articolo. [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo l&#8217;intervento al ginocchio, eccomi di nuovo a scrivere su <a href="http://ideafactory.it">IdeaFactory</a> e voglio iniziare scusandomi con tutti quelli che mi hanno scritto o contattato via <a href="http://www.facebook.com/gentilegianluca" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/gentilegianluca?referer=');">Facebook</a> e non hanno ancora ricevuto risposta.</p>
<p>Purtroppo non è facile stare seduti davanti ad un PC (anche se è un bel iMac) dopo un intervento al ginocchio.</p>
<p>Ma veniamo all&#8217;articolo. Forse il titolo non rende l&#8217;idea ma l&#8217;argomento di oggi risponde a questa domanda: <strong>avendo due connessioni ad Internet collegate alla mia Linux box che funge da router, come faccio a gestire il fail di una delle connessioni inoltrando a quella funzionante il traffico?</strong></p>
<p><strong><span style="font-weight: normal;">Per meglio comprende l&#8217;articolo, vi consiglio di spulciare velocemente due miei vecchi post:</span></strong></p>
<ol>
<li><a href="http://ideafactory.it/debian/iproute-load-balance-verso-2-gateway.html">iproute: load balance verso 2 gateway</a> (IMPORTANTISSIMO!)</li>
<li><a href="http://ideafactory.it/iproute/iproute-load-balance-verso-2-gateway-della-stessa-rete.html">iproute: load balance verso 2 gateway della stessa rete</a></li>
</ol>
<p>Rinfrescata la memoria sul routing di Linux, passiamo ad analizzare la logica di funzionamento dello script.<span id="more-280"></span></p>
<p>La strada migliore per verificare lo stato di una connessione è inoltrare verso il link qualche pacchetto e verificare che torni indietro una risposta.</p>
<p>Lo script non fa altro che pingare un host o in IP esterno pubblico, raggiungibile ed aperto al ping, attraverso i due link a nostra disposizione, se il ping fallisce tutto il traffico passa all&#8217;interfaccia funzionante.</p>
<p>Potete scaricare il file da <a title="Script per il check dei gateway" href="http://ideafactory.it/wp-content/uploads/2010/02/25/checkgw">qui</a> e subito dopo editarlo da root per variare queste impostazioni:<br />
<code><br />
# Frequenza in secondi con cui fare il check delle connessioni<br />
SLEEPTIME=10</code></p>
<p><code># IP o host esterno da pingare per effettuare le prove<br />
TESTIP=www.google.com</code></p>
<p><code># Timeout del ping in secondi<br />
TIMEOUT=2</code></p>
<p><code># Interfacce<br />
EXTIF1=eth1<br />
EXTIF2=eth2</code></p>
<p><code># Indirizzi IP delle interfacce<br />
IP1=192.168.1.7<br />
IP2=192.168.0.7</code></p>
<p><code># Gateway delle interfacce<br />
GW1=192.168.1.1<br />
GW2=192.168.0.1</code></p>
<p><code># Weights del router. Nella mia guida erano entrami ad 1 per fare il round robin delle connessioni:<br />
# Guarda questa riga: ip route add default scope global nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1<br />
# Presente nell'articolo http://ideafactory.it/debian/iproute-load-balance-verso-2-gateway.html<br />
W1=1<br />
W2=1 </code></p>
<p><code># Nome dei provider utilizzati<br />
NAME1=ngi<br />
NAME2=fastweb</code></p>
<p><code># Numero di ripetizioni di successo o di fallimento prima di cambiare lo stato alla connessione<br />
SUCCESSREPEATCOUNT=4<br />
FAILUREREPEATCOUNT=1<br />
</code></p>
<p>Come potete vedere utilizzo come host esterno da pingare <em>www.google.com</em> che ADESSO risulta raggiungibile tramite ping, vi consiglio di specificare qualche VOSTRO server così siete sicuri che il fail della connessione non sia dovuto al cambio delle regole di firewall dell&#8217;host a cui sono diretti i ping.</p>
<p>Io vi consiglio di salvare lo script in <em>/usr/local/bin</em> (ovviamente faccio riferimento a Debian) così sarà presente nel path di sistema senza specificare ogni volta il percorso assoluto per richiamarlo.</p>
<p>Una volta salvato nella directory che preferite vanno settati i permessi giusti:</p>
<p><code>chmod 755 /usr/local/bin/checkgw</code></p>
<p>Adesso potete eseguire lo script.</p>
<p>Inizialmente potete NON metterlo in background, così si può verificare il corretto funzionamento ma poi vi consiglio di lanciare lo script in questo modo:</p>
<p><code>checkgw &amp;</code></p>
<p>Se volete che lo script venga eseguito all&#8217;avvio potete inserirlo in <em>/etc/rc.local</em>.</p>
<p>Spero che con questo articolo sia riuscito ad accontentare molti visitatori di <a href="http://ideafactory.it">IdeaFactory</a> e vi ricordo che se avete bisogno di soluzioni personalizzate, avanzate, professionali e sempre funzionanti potete contattarmi.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/iproute/gestire-il-failover-della-connessione.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il miglior server di posta</title>
		<link>http://ideafactory.it/linux/il-miglior-server-di-posta.html</link>
		<comments>http://ideafactory.it/linux/il-miglior-server-di-posta.html#comments</comments>
		<pubDate>Sun, 10 Jan 2010 18:04:11 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=279</guid>
		<description><![CDATA[Con questo articolo inauguro una serie di post dedicati alla configurazione di un server di posta moderno, sicuro ed affidabile basato, ovviamente, su Debian ed equipaggiato con ciò che io personalmente reputo il meglio. Premetto che non basterà seguire alla lettera ciò che io descriverò per ritrovarsi una black box che una volta installata gestisce [...]]]></description>
			<content:encoded><![CDATA[<p>Con questo articolo inauguro una serie di post dedicati alla configurazione di un server di posta moderno, sicuro ed affidabile basato, ovviamente, su <a href="http://www.ideafactory.it/category/debian" onclick="pageTracker._trackPageview('/outgoing/www.ideafactory.it/category/debian?referer=');">Debian</a> ed equipaggiato con ciò che io personalmente reputo il meglio.</p>
<p>Premetto che non basterà seguire alla lettera ciò che io descriverò per ritrovarsi una <em>black box</em> che una volta installata gestisce la posta fin che morte non vi separi. Dico questo perché un servizio come la posta elettronica va seguito e monitorato e spesso è necessario un sistemista (io [pubblicità progresso gratuita <img src='http://ideafactory.it/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ]) che abbia capacità di <em>problem solving</em> notevoli per far sì che la fruizione del servizio non sia mai interrotta.</p>
<p>Cosa ci occorre per mettere su un servizio di posta elettronica con i fiocchi?</p>
<p>Ecco la lista della spesa:</p>
<ul>
<li>Un mail transfer agent (MTA)</li>
<li>Un server POP3 ed IMAP</li>
<li>Un validissimo sistema anti-spam</li>
<li>Un aggiornatissimo sistema anti-virus</li>
<li>Una moderna webmail</li>
<li>Tool di corredo <img src='http://ideafactory.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<h2>Il miglior MTA? Postfix!</h2>
<p>Nel mondo opensource c&#8217;è una vasta gamma di server SMTP ma i più famosi ed utilizzati sono:</p>
<ul>
<li><a href="http://postfix.org" onclick="pageTracker._trackPageview('/outgoing/postfix.org?referer=');">Postfix</a></li>
<li><a href="http://exim.org" onclick="pageTracker._trackPageview('/outgoing/exim.org?referer=');">Exim</a></li>
<li><a href="http://qmail.org" onclick="pageTracker._trackPageview('/outgoing/qmail.org?referer=');">qmail</a></li>
<li><a href="http://sendmail.org" onclick="pageTracker._trackPageview('/outgoing/sendmail.org?referer=');">Sendmail</a></li>
</ul>
<h3><span id="more-279"></span>Sendmail</h3>
<p>La documentazione di Sendmail è buona, c&#8217;è una società che ne cura la parte di <a href="http://sendmail.com" onclick="pageTracker._trackPageview('/outgoing/sendmail.com?referer=');">servizi ed assistenza a pagamento</a> ed ha un buon numero di adepti alla comunità.</p>
<p>Il file di configurazione di Sendmail è un labirinto in cui è utile solo didatticamente imbattersi. Meno contorti sono le violazioni di sicurezza che da sempre accompagnano Sendmail. E per finire, ciò che fa Sendmail viene svolto meglio da altri.</p>
<p>Si parla di <a href="http://www.meta1.org/" onclick="pageTracker._trackPageview('/outgoing/www.meta1.org/?referer=');">MeTA1</a> nome in codice di Sendmail X che ha l&#8217;obiettivo di realizzare un MTA con specifiche del tutto simili a quelle di Postfix&#8230;Postfix c&#8217;è gia.</p>
<h3>qmail</h3>
<p>Sicurezza, sicurezza e sicurezza. Alla base della progettazione di qmail c&#8217;è la sicurezza. Nei tempi in cui Sendmail era un vero e proprio colabrodo, Daniel J. Bernstein realizzo qmail.</p>
<p>Obiettivo raggiunto, è sicuro tant&#8217;è che ci ha messo anche una taglia. La versione disponibile è la 1.03 uscita nel giugno del lontanissimo (informaticamente parlando) 1998. Da allora nessun aggiornamento, va bene così com&#8217;è, forse.</p>
<p>qmail ha dato una lezione a tutti ma alcuni allievi hanno superato il maestro, tant&#8217;è che qmail è stato il primo a supportare decentemente il formato Maildir, adesso però la concorrenza ha gia Maildir++ e per renderlo un server SMTP dei giorni nostri vanno applicate infinite patch. La licenza attuale di qmail? Un enigma.</p>
<h3>Exim</h3>
<p>E&#8217; un MTA. Sicuro e general purpose, è tutto ciò che ci aveva Sendmail desiderava. Si configura con un file di configurazione, c&#8217;è solo un demone ed è veloce, molto veloce. Smista alla grande ma la mia descrizione finisce qui perché lo conosco davvero poco. Sorry! <img src='http://ideafactory.it/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<h3>Postfix</h3>
<p>Per me Postifx è <em>sua maestà</em> MTA. In tre parole è: sicuro, facile (da amministrare) ed efficiente.</p>
<p>Come per qmail, la progettazione di questo software aveva come obiettivo la sicurezza e <a href="http://en.wikipedia.org/wiki/Wietse_Venema" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Wietse_Venema?referer=');">Wietse Venema</a>, con circa circa 150k righe di codice, secondo me, ci è riuscito alla grande.</p>
<p>Postfix si compone di diversi programmi (ma meno di qmail), e dispone di un file di configurazione monolitico. Ha un forte accento sulla sicurezza, ma non fino al punto di imporre insolite pratiche di gestione Unix.Postfix segue un approccio vagamente analogo a qmail per quanto concerne la sicurezza ed il team di Sendmail riconosce espressamente Postfix come modello da seguire per la loro prossima release che sostituirà definitivamente Sendmail, MeTA1.</p>
<p>Il risultato impressionante è che Postfix fornisce grande flessibilità e facilità di amministrazione, nonostante il raggiungimento di obiettivi di sicurezza rigorosi. A mio avviso è più efficiente di Exim ed utilizza la stessa quantità di memoria di qmail ma a differenza di quest&#8217;ultimo utilizza meno banda perché qmail invia in solo messaggio per sessione SMTP anche se il destinatario è lo stesso host.</p>
<p>Postfix per me è il migliore, ed in questo articolo userò Postfix.</p>
<p>Guardate i risultati del Debian Popularity Contest cliccando di <a href="http://qa.debian.org/popcon.php?package=postfix" onclick="pageTracker._trackPageview('/outgoing/qa.debian.org/popcon.php?package=postfix&amp;referer=');">Postfix</a>, vi ho convinto? <img src='http://ideafactory.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nella prossima puntata scopriremo il miglior server POP3/IMAP&#8230;<em>stay tuned</em>!</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/linux/il-miglior-server-di-posta.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ServerSignature di Apache</title>
		<link>http://ideafactory.it/apache/serversignature-di-apache.html</link>
		<comments>http://ideafactory.it/apache/serversignature-di-apache.html#comments</comments>
		<pubDate>Sat, 09 Jan 2010 13:42:38 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=271</guid>
		<description><![CDATA[In un precedente articolo ho descritto come Modificare l&#8217;header di Apache, in questo articolo  vediamo come non mostrarlo affatto. Molto probabilmente richiamando una URL inesistente o non gestita dall&#8217;applicazione che risiede sul nostro server, viene fuori qualcosa del genere: In base a quanto descritto nell&#8217;articolo Modificare l&#8217;header di Apache, possiamo variare l&#8217;output che mostra le [...]]]></description>
			<content:encoded><![CDATA[<p>In un precedente articolo ho descritto come <a href="http://www.ideafactory.it/apache/modificare-le-informazioni-dellheader-di-apache.html" onclick="pageTracker._trackPageview('/outgoing/www.ideafactory.it/apache/modificare-le-informazioni-dellheader-di-apache.html?referer=');">Modificare l&#8217;header di Apache</a>, in questo articolo  vediamo come non mostrarlo affatto.</p>
<p>Molto probabilmente richiamando una URL inesistente o non gestita dall&#8217;applicazione che risiede sul nostro server, viene fuori qualcosa del genere:</p>
<p style="text-align: center;"><img class="aligncenter" title="ServerSignature" src="http://articles.slicehost.com/assets/2007/9/14/004_serversignature.png" alt="ServerSignature di Apache" width="435" height="104" /></p>
<p style="text-align: left;">In base a quanto descritto nell&#8217;articolo <a href="http://www.ideafactory.it/apache/modificare-le-informazioni-dellheader-di-apache.html" onclick="pageTracker._trackPageview('/outgoing/www.ideafactory.it/apache/modificare-le-informazioni-dellheader-di-apache.html?referer=');">Modificare l&#8217;header di Apache</a>, possiamo variare l&#8217;output che mostra le informazioni del server web.</p>
<p>Per non mostrare assolutamente niente, basta editare il file del virtualhost ad esempio <em>/etc/apache2/sites-available/default</em>, ed impostare la direttiva ServerSignature ad Off in questo modo:</p>
<p><code>ServerSignature Off</code></p>
<p>Ovviamente va restartato Apache prima di vedere attuata tale modifica.</p>
<p>Quali sono le opzioni di <em>ServerSignature</em>? Eccole:</p>
<ul>
<li><em>Off</em>: Non visualizza niente nel footer</li>
<li><em>On</em>: Visualizza le informazioni come specificato in <em>ServerTokens</em></li>
<li><em>On</em>: Visualizza le informazioni come specificato in <em>ServerTokens</em> ed aggiunge il link all&#8217;indirizzo e-mail specificato con <em>ServerAdmin</em></li>
</ul>
<p>Buon week-end a tutti.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/apache/serversignature-di-apache.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sessioni SSH che cadono? Risolviamo!</title>
		<link>http://ideafactory.it/linux/sessioni-ssh-che-cadono-risolviamo.html</link>
		<comments>http://ideafactory.it/linux/sessioni-ssh-che-cadono-risolviamo.html#comments</comments>
		<pubDate>Mon, 04 Jan 2010 16:41:09 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sicurezza]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=266</guid>
		<description><![CDATA[Spero che tutti quelli che leggono IdeaFactory fanno uso di SSH per la connessione remota ai server. Non usate ASSOLUTAMENTE telnet o simili! I motivi sono ovvi&#8230; Fatta la breve ma doverosa premessa veniamo al dunque. Può capitare di ritrovare la propria sessione SSH terminata a causa di timeout per mancato utilizzo, come si risolve [...]]]></description>
			<content:encoded><![CDATA[<p>Spero che tutti quelli che leggono<a href="http://www.ideafactory.it/" onclick="pageTracker._trackPageview('/outgoing/www.ideafactory.it/?referer=');"> IdeaFactory</a> fanno uso di SSH per la connessione remota ai server. Non usate ASSOLUTAMENTE telnet o simili! I motivi sono ovvi&#8230;</p>
<p>Fatta la breve ma doverosa premessa veniamo al dunque.</p>
<p>Può capitare di ritrovare la propria sessione SSH terminata a causa di timeout per mancato utilizzo, come si risolve tutto ciò? Basta editare il file <em>/etc/ssh/ssh_config</em> (su sistemi <em>Debian based</em>) ed inserire questi parametri:<br />
<code><br />
TCPKeepAlive yes<br />
ServerAliveInterval 5<br />
ServerAliveCountMax 60<br />
</code><br />
Così facendo il client SSH terrà viva la connessione al server e quindi noi possiamo andarci a fare un meritato bagno caldo.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/linux/sessioni-ssh-che-cadono-risolviamo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My traceroute: ping+traceroute=mtr</title>
		<link>http://ideafactory.it/linux/my-traceroute-pingtraceroutemtr.html</link>
		<comments>http://ideafactory.it/linux/my-traceroute-pingtraceroutemtr.html#comments</comments>
		<pubDate>Thu, 31 Dec 2009 14:28:06 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=264</guid>
		<description><![CDATA[Ieri per purissimo caso ho scoperto l&#8217;ennesimo utilissimo comando da linea di comando: mtr. Usiamo molto spesso traceroute e quotidianamente ping, con mtr li abbiamo entrambi e l&#8217;utilità è di facile spiegazione. Spesso capita che il nostro adorato server dedicato non è raggiungibile per problemi di rete dovuti ai molteplici router intermedi, con mtr possiamo [...]]]></description>
			<content:encoded><![CDATA[<p>Ieri per purissimo caso ho scoperto l&#8217;ennesimo utilissimo comando da linea di comando: <strong>mtr</strong>.</p>
<p>Usiamo molto spesso<em> traceroute</em> e quotidianamente <em>ping</em>, con<strong> mtr</strong> li abbiamo entrambi e l&#8217;utilità è di facile spiegazione.</p>
<p>Spesso capita che il nostro adorato server dedicato non è raggiungibile per problemi di rete dovuti ai molteplici router intermedi, con <strong>mtr</strong> possiamo monitorare tutti gli hop intermedi e verificare ciò che accade quando li si attraversa.</p>
<p><em>Visto che è di certo l&#8217;ultimo post del 2009, vi aguro un felice anno nuovo!</em></p>
<p>p.s.: un ringraziamento a<em> Iuri</em> per avermi fatto notare <strong>mtr</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/linux/my-traceroute-pingtraceroutemtr.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Con i nuovi driver nVidia è possibile visualizzare il sito di Tim</title>
		<link>http://ideafactory.it/linux/con-i-nuovi-driver-nvidia-e-possibile-visualizzare-il-sito-di-tim.html</link>
		<comments>http://ideafactory.it/linux/con-i-nuovi-driver-nvidia-e-possibile-visualizzare-il-sito-di-tim.html#comments</comments>
		<pubDate>Wed, 29 Apr 2009 06:50:44 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[nvidia]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=232</guid>
		<description><![CDATA[&#8220;Ma perché prima non era possibile?&#8221; No! Con i driver nVidia precedenti alla release 180.51 andando sul sito di Tim accadeva l&#8217;assurdo: il server X si riavviava! Ancor più esilarante è vedere il changelog: Sarebbe bello sapere cosa provocava il crash, forse Luca Luciani?]]></description>
			<content:encoded><![CDATA[<p>&#8220;<em>Ma perché prima non era possibile?</em>&#8221; <strong>No!</strong></p>
<p>Con i driver <a href="http://www.nvidia.com" onclick="pageTracker._trackPageview('/outgoing/www.nvidia.com?referer=');">nVidia</a> precedenti alla release 180.51 andando sul sito di<a href="http://www.tim.it" onclick="pageTracker._trackPageview('/outgoing/www.tim.it?referer=');"> Tim</a> accadeva l&#8217;assurdo: il server X si riavviava! Ancor più esilarante è vedere il<em> changelog</em>:</p>
<p><a href="http://www.ideafactory.it/wp-content/uploads/2009/04/nvidia-tim.png" rel="lightbox[232]" onclick="pageTracker._trackPageview('/outgoing/www.ideafactory.it/wp-content/uploads/2009/04/nvidia-tim.png?referer=');"><img class="aligncenter size-full wp-image-233" title="Aggiornamento nVidia per sito TIM" src="http://www.ideafactory.it/wp-content/uploads/2009/04/nvidia-tim.png" alt="Aggiornamento nVidia per sito TIM" width="448" height="262" /></a></p>
<p>Sarebbe bello sapere cosa provocava il crash, forse <a href="http://www.youtube.com/watch?v=3T-z2V9xhgo" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=3T-z2V9xhgo&amp;referer=');">Luca Luciani</a>? <img src='http://ideafactory.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/linux/con-i-nuovi-driver-nvidia-e-possibile-visualizzare-il-sito-di-tim.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PowerDNS: server DNS con database MySQL</title>
		<link>http://ideafactory.it/debian/powerdns-server-dns-con-database-mysql.html</link>
		<comments>http://ideafactory.it/debian/powerdns-server-dns-con-database-mysql.html#comments</comments>
		<pubDate>Wed, 15 Apr 2009 15:21:58 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=206</guid>
		<description><![CDATA[C&#8217;era una volta BIND, purtroppo (lo dico per i suoi innumerevoli bug) c&#8217;è ancora ma, configurare il server DNS tramite file di testo, può risultare scomodo e lento, quindi fortunatamente hanno messo al mondo PowerDNS. Lo uso da tantissimo tempo ma, quando tutta Internet tremava per il bug dei server DNS, sapere che PowerDNS era [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;era una volta <a href="https://www.isc.org/software/bind" onclick="pageTracker._trackPageview('/outgoing/www.isc.org/software/bind?referer=');">BIND</a>, purtroppo (<em>lo dico per i suoi innumerevoli bug</em>) c&#8217;è ancora ma, configurare il server DNS tramite file di testo, può risultare scomodo e lento, quindi fortunatamente hanno messo al mondo <a href="http://www.powerdns.com/" onclick="pageTracker._trackPageview('/outgoing/www.powerdns.com/?referer=');">PowerDNS</a>.</p>
<p>Lo uso da tantissimo tempo ma, quando tutta Internet tremava per il <a href="http://www.kb.cert.org/vuls/id/800113" onclick="pageTracker._trackPageview('/outgoing/www.kb.cert.org/vuls/id/800113?referer=');">bug dei server DNS</a>, sapere che <a href="http://mailman.powerdns.com/pipermail/pdns-users/2008-July/005536.html" onclick="pageTracker._trackPageview('/outgoing/mailman.powerdns.com/pipermail/pdns-users/2008-July/005536.html?referer=');">PowerDNS era completamente immune</a> a tale vulnerabilità, ha rafforzato la mia stima verso questo software.</p>
<p>I principali punti di forza di <a href="http://www.powerdns.com" onclick="pageTracker._trackPageview('/outgoing/www.powerdns.com?referer=');">PowerDNS</a> sono:</p>
<ul>
<li>Backend per svariati database quali ad esempio MySQL e PostgreSQL</li>
<li>Facilità di configurazione</li>
<li>Sicurezza</li>
<li>Versatilità</li>
</ul>
<p>Prima di procedere con l&#8217;installazione è doveroso illustrare le parti che compongono questo software:</p>
<ol>
<li><em>pdns-server</em>: il server DNS vero e proprio</li>
<li><em>pdns-backend-*</em>: il backend dove sono memorizzati i dati ad esempio <em>pdns-backend-mysql</em> utilizzerà MySQL per memorizzare i record DNS</li>
<li><em>pdns-recursor</em>: un server necessario se si devono risolvere altri domini Internet oltre a quelli gestiti dal server</li>
</ol>
<p>Installiamo!<span id="more-206"></span></p>
<p>Come sempre facile e veloce:</p>
<p><code>apt-get install pdns-server pdns-backend-mysql</code></p>
<p>Si può notare non ho installato il pacchetto <em>pdns-recursor</em> visto che voglio configurare un server DNS che risponda solo alle query per i domini da lui gestiti.</p>
<p>Creiamo un database ed utente su MySQL chiamato <em>pdns</em> a cui diamo tutti i privilegi:</p>
<p><code>CREATE USER 'pdns'@'localhost' IDENTIFIED BY '&lt;password_utente&gt;';<br />
GRANT USAGE ON * . * TO 'pdns'@'localhost' IDENTIFIED BY '&lt;password_utente&gt;' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;<br />
CREATE DATABASE IF NOT EXISTS `pdns` ;<br />
GRANT ALL PRIVILEGES ON `pdns` . * TO 'pdns'@'localhost';</code></p>
<p>Inizializziamo le tabelle necessarie attraverso il file SQL incluso nel pacchetto Debian:</p>
<p><code>mysql -u pdns -p pdns &lt; /usr/share/doc/pdns-backend-mysql/mysql.sql</code></p>
<p>Il database è pronto, inseriamo dei record di prova:</p>
<p><code>INSERT INTO `domains` (`id`, `name`, `master`, `last_check`, `type`, `notified_serial`, `account`) VALUES<br />
(1, 'ideafactorytest.tld', NULL, NULL, 'NATIVE', NULL, NULL);<br />
INSERT INTO `records` (`id`, `domain_id`, `name`, `type`, `content`, `ttl`, `prio`, `change_date`) VALUES<br />
(1, 1, 'ideafactorytest.tld', 'SOA', 'ns1.ideafactorytest.tld hostmaster.ideafactorytest.tld 0 7200 3600 604800 3600', 3600, 0, 1235466538),<br />
(2, 1, 'ideafactorytest.tld', 'NS', 'ns1.ideafactorytest.tld', 86400, 0, 1235466538),<br />
(3, 1, 'www.ideafactorytest.tld', 'A', '192.168.1.254', 86400, 0, 1235466538),<br />
(4, 1, 'ns1.ideafactorytest.tld', 'A', '192.168.1.254', 86400, 0, 1235466538);</code></p>
<p>Ovviamente i dati sono di test e vanno personalizzati secondo le proprie esigenze.</p>
<p>Consiglio di utilizzare tool di MySQL per popolare il database come ad esempio <em>phpMyAdmin</em>, in alternativa c&#8217;è <a href="https://www.poweradmin.org/trac/" onclick="pageTracker._trackPageview('/outgoing/www.poweradmin.org/trac/?referer=');">Poweradmin</a> che è un software scritto in PHP specifico per PowerDNS ma non mi ha convinto per niente.</p>
<p>Torniamo alla configurazione del server DNS.</p>
<p>Editiamo il file <em>/etc/default/pdns</em> e verifichiamo che ci sia:</p>
<p>START=yes</p>
<p>Adesso è il turno di<em> /etc/powerdns/pdns.conf</em>, vi consiglio di editare:</p>
<p><code>local-address=&lt;ip_server_dns&gt;</code></p>
<p>Altrimenti PowerDNS si mette in ascolto su tutti gli IP del server.</p>
<p>Ci sono altre opzioni, come l&#8217;abilitazione del webserver che consente di vedere le statistiche d&#8217;utilizzo.</p>
<p>Il file di configurazione è di semplice interazione quindi consiglio di dare un occhio a tutti i parametri e rimando alla documentazione ufficiale per configurazioni più elaborate.</p>
<p>Infine configuriamo /etc/powerdns/pdns.d/pdns.local:</p>
<p><code>launch=gmysql<br />
gmysql-host=localhost<br />
gmysql-user=pdns<br />
gmysql-password=&lt;password_scelta&gt;<br />
gmysql-dbname=pdns</code></p>
<p>Fine. Proviamo:</p>
<p><code>/etc/init.d/pdns monitor</code></p>
<p>Se l&#8217;output è qualcosa di simile a questo:</p>
<p><code>Apr 15 17:05:16 This is module gmysqlbackend.so reporting<br />
Apr 15 17:05:16 This is a standalone pdns<br />
Apr 15 17:05:16 UDP server bound to 192.168.1.254:53<br />
Apr 15 17:05:16 TCP server bound to 192.168.1.254:53<br />
Apr 15 17:05:16 PowerDNS 2.9.20 (C) 2001-2006 PowerDNS.COM BV (Aug  9 2008, 23:00:23, gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) starting up<br />
Apr 15 17:05:16 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.<br />
Apr 15 17:05:16 Set effective group id to 106<br />
Apr 15 17:05:16 Set effective user id to 106<br />
Apr 15 17:05:16 DNS Proxy launched, local port 23998, remote 127.0.0.1:53<br />
Apr 15 17:05:16 Creating backend connection for TCP<br />
% Apr 15 17:05:16 gmysql Connection succesful<br />
Apr 15 17:05:16 About to create 3 backend threads for UDP<br />
Apr 15 17:05:16 gmysql Connection succesf</code>ul</p>
<p>Significa che PowerDNS si connette a MySQL e la configurazione è andata a buon fine.</p>
<p>Facciamo una query di prova:</p>
<p><code>host www.ideafactorytest.tld &lt;ip_server_powerdns&gt;</code></p>
<p>L&#8217;output dovrebbe essere:</p>
<p><code>Using domain server:<br />
Name: &lt;ip_server_powerdns&gt;<br />
Address: &lt;ip_server_powerdns&gt;#53<br />
Aliases:<br />
www.ideafactorytest.tld has address 192.168.1.254</code></p>
<p>Perfetto!</p>
<p>Come viene gestito il concetto di master/slave in<a href="http://www.powerdns.com" onclick="pageTracker._trackPageview('/outgoing/www.powerdns.com?referer=');"> PowerDNS</a>?</p>
<p>Usando come backend un database MySQL, è facile mettere su un altro server sul quale configurare <a href="http://www.powerdns.com" onclick="pageTracker._trackPageview('/outgoing/www.powerdns.com?referer=');">PowerDNS</a> e la <a href="http://www.ideafactory.it/debian/mysql-replicazione-database.html" onclick="pageTracker._trackPageview('/outgoing/www.ideafactory.it/debian/mysql-replicazione-database.html?referer=');">replica del database</a> principale oppure, si può fare in modo che entrambi i server DNS usino lo stesso server MySQL ma questa soluzione è poco <em>high available</em>.</p>
<p>Consiglio di leggere la <a href="http://downloads.powerdns.com/documentation/pdns.pdf" onclick="pageTracker._trackPageview('/outgoing/downloads.powerdns.com/documentation/pdns.pdf?referer=');">documentazione ufficiale</a> al fine di ottenere il massimo da questo potente server DNS o scrivere eventuali quesiti nei commenti sperando che io riesca a rispondere!:)</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/debian/powerdns-server-dns-con-database-mysql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alle ricerca di rootkit con ChkRootkit e rkhunter</title>
		<link>http://ideafactory.it/debian/alle-ricerca-di-rootkit-con-chkrootkit-e-rkhunter.html</link>
		<comments>http://ideafactory.it/debian/alle-ricerca-di-rootkit-con-chkrootkit-e-rkhunter.html#comments</comments>
		<pubDate>Wed, 08 Apr 2009 08:32:28 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Administrator]]></category>
		<category><![CDATA[rootkit]]></category>
		<category><![CDATA[Sicurezza]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=202</guid>
		<description><![CDATA[Da Wikipedia: Un rootkit, (in ambiente Unix per &#8220;root&#8221; access si intende accesso di livello amministrativo, quindi letteralmente si potrebbe intendere equipaggiamento da amministratore) è un programma software creato per avere il controllo completo sul sistema senza bisogno di autorizzazione da parte di utente o amministratore. Recentemente alcuni virus informatici si sono avvantaggiati della possibilità [...]]]></description>
			<content:encoded><![CDATA[<p>Da <a href="http://it.wikipedia.org/wiki/Rootkit" onclick="pageTracker._trackPageview('/outgoing/it.wikipedia.org/wiki/Rootkit?referer=');">Wikipedia</a>:</p>
<blockquote><p>Un rootkit, (in ambiente Unix per &#8220;root&#8221; access si intende accesso di livello amministrativo, quindi letteralmente si potrebbe intendere equipaggiamento da amministratore) è un programma software creato per avere il controllo completo sul sistema senza bisogno di autorizzazione da parte di utente o amministratore. Recentemente alcuni virus informatici si sono avvantaggiati della possibilità di agire come rootkit (processo, file, chiave di registro, porta di rete) all&#8217;interno del sistema operativo.</p></blockquote>
<p>Per capire se sul nostro server ci sono<em> rootkit</em> è necessario:</p>
<ul>
<li>controllare i log di sistema alla ricerca di cose anomale</li>
<li>monitorare attentamente i processi server quali Apache, SSH etc</li>
<li>controllare le directory su cui tutti possono scrivere come ad esempio <em>/tmp</em></li>
<li>vedere il file history alla ricerca di comandi non nostri</li>
<li>attraverso tool come<em> ntop</em> vedere se ci sono in esecuzione processi non autorizzati</li>
<li>con <em>netstat </em>o <em>nmap</em> verificare che non ci siano porte aperte non consentite dalla nostra configurazione</li>
<li>controllare lo spazio su disco utilizzato</li>
</ul>
<p>Tutto questi controlli portano via tempo e di certo non è un lavoro facile da fare.</p>
<p>In ambiente Linux esistono due tool particolarmente efficienti che fanno al caso nostro: <em>ChkRootkit</em> e <em>rkhunter</em>.</p>
<p><span id="more-202"></span>Installiamo il software su Debian:</p>
<p><code>apt-get install chkrootkit rkhunter</code></p>
<h2>rkhunter</h2>
<p>Una volta installato va aggiornato:</p>
<p><code>rkhunter --update<br />
</code><br />
Adesso possiamo eseguire uno scan sul nostro sistema:</p>
<p><code>rkhunter -c</code></p>
<p>L&#8217;output è molto esplicito e di facile comprensione.</p>
<p>Utili queste opzioni:</p>
<ul>
<li>-<em>-createlogfile &lt;file&gt;</em> : l&#8217;output viene scritto sul file specificato</li>
<li><em>&#8211;skip-keypress</em> : non è necessario dare conferme tramite l&#8217;esecuzione</li>
</ul>
<h2>ChkRootkit</h2>
<p>E&#8217; meno duttile di rkhunter visto che rileva solo una lista ben precisa di rootkit.</p>
<p>Per l&#8217;esecuzione è sufficiente:</p>
<p><code>chkrootkit</code></p>
<p>Consiglio vivamente di inserire tali contralli nel crond (Debian automatizza tale operazione con rkhunter) ma soprattutto di tenersi aggiornati con i bug di sicurezza attraverso le apposite mailing-list della distribuzione usata o via web con i siti specializzati.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/debian/alle-ricerca-di-rootkit-con-chkrootkit-e-rkhunter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netstat, porte aperte e connessioni attive</title>
		<link>http://ideafactory.it/linux/netstat-porte-aperte-e-connessioni-attive.html</link>
		<comments>http://ideafactory.it/linux/netstat-porte-aperte-e-connessioni-attive.html#comments</comments>
		<pubDate>Fri, 27 Mar 2009 12:06:42 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=189</guid>
		<description><![CDATA[Il comando più immediato e veloce per vedere tutte le porta aperte sulle nostra Linux box è questo: netstat -lnp L&#8217;output è bello corposo ma di facilissima comprensione. Se volessimo vedere tutte le connessioni attive: netstat -nat Tutto troppo facile!:)]]></description>
			<content:encoded><![CDATA[<p>Il comando più immediato e veloce per vedere tutte le porta aperte sulle nostra Linux box è questo:</p>
<p><code><br />
netstat -lnp<br />
</code></p>
<p>L&#8217;output è bello corposo ma di facilissima comprensione.</p>
<p>Se volessimo vedere tutte le connessioni attive:</p>
<p><code><br />
netstat -nat<br />
</code></p>
<p>Tutto troppo facile!:)</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/linux/netstat-porte-aperte-e-connessioni-attive.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: che processo ha aperto quella porta?</title>
		<link>http://ideafactory.it/linux/linux-porta-processo.html</link>
		<comments>http://ideafactory.it/linux/linux-porta-processo.html#comments</comments>
		<pubDate>Fri, 27 Mar 2009 11:58:25 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=185</guid>
		<description><![CDATA[Se con il nostro port-scanner preferito (nmap nel mio caso) vediamo che abbiamo una porta aperta ma non sappiamo chi abbia compiuto un gesto così irrespondabile possiamo usare il comodissimo comando fuser che va eseguito con i privilegi di root: fuser -v -n (tcp &#124; udp) Facciamo una prova su un server che ha Apache [...]]]></description>
			<content:encoded><![CDATA[<p>Se con il nostro port-scanner preferito (<em>nmap</em> nel mio caso) vediamo che abbiamo una porta aperta ma non sappiamo chi abbia compiuto un gesto così irrespondabile possiamo usare il comodissimo comando <em>fuser</em> che va eseguito con i privilegi di <em>root</em>:</p>
<p><code>fuser -v -n (tcp | udp) </code></p>
<p>Facciamo una prova su un server che ha Apache in esecuzione:</p>
<p><code>fuser -v -n tcp 80</code></p>
<p>Ecco l&#8217;output:</p>
<pre>                     USER        PID ACCESS COMMAND
80/tcp:              root      19375 F.... apache2
                     www-data  23223 F.... apache2
                     www-data  24155 F.... apache2
                     www-data  26253 F.... apache2
                     www-data  26271 F.... apache2
                     www-data  26272 F.... apache2
                     www-data  26273 F.... apache2
                     www-data  26274 F.... apache2
                     www-data  26275 F.... apache2
                     www-data  26277 F.... apache2
                     www-data  26282 F.... apache2</pre>
<p>Questo tool è utilissimo quando ci accorgiamo che c&#8217;è qualche porta non aperta da noi in ascolto, ed è quindi possibile risalire al processo in esecuzione che crea tale anomalia.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/linux/linux-porta-processo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
