<?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>Temporini Matteo &#187; sicurezza</title>
	<atom:link href="http://www.temporini.net/category/sicurezza/feed" rel="self" type="application/rss+xml" />
	<link>http://www.temporini.net</link>
	<description>It&#039;s time to fix!</description>
	<lastBuildDate>Fri, 27 Jan 2012 23:21:23 +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>WordPress: plugin non sicuri</title>
		<link>http://www.temporini.net/wordpress-plugin-non-sicuri</link>
		<comments>http://www.temporini.net/wordpress-plugin-non-sicuri#comments</comments>
		<pubDate>Wed, 22 Jun 2011 18:40:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[Temporini]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[compromessi]]></category>
		<category><![CDATA[WPtouch]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=576</guid>
		<description><![CDATA[<p>Nei giorni scorsi molti siti con wordpress sono stati compromessi a causa di alcuni plugin.</p> <p>I plugin incriminati sono i seguenti: AddThis, WPtouch and W3 Total Cach</p> <p>Se li usate&#8230; AGGIORNATE!</p> ]]></description>
			<content:encoded><![CDATA[<p>Nei giorni scorsi molti siti con wordpress sono stati compromessi a causa di alcuni plugin.</p>
<p>I plugin incriminati sono i seguenti: AddThis, WPtouch and W3 Total Cach</p>
<p>Se li usate&#8230; AGGIORNATE!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/wordpress-plugin-non-sicuri/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come installare curl su ubuntu</title>
		<link>http://www.temporini.net/come-installare-curl-su-ubuntu</link>
		<comments>http://www.temporini.net/come-installare-curl-su-ubuntu#comments</comments>
		<pubDate>Fri, 07 May 2010 06:59:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[64 bit]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=366</guid>
		<description><![CDATA[<p>Quesito di oggi, come installare curl su un LAMP php+apache.</p> <p>Ci basta eseguire i seguenti comandi</p> <p>apt-get install curl libcurl3 php5-curl</p> <p>/etc/init.d/apache2 restart</p> <p>A questo punto per sicurezza possiamo testare che sia correttamente installato inserendo un una file .php contenent il seguente codice:</p> <p>&#60;?php phpinfo(); ?&#62;</p> <p>cercate le stringa curl, se la trovate è correttamente [...]]]></description>
			<content:encoded><![CDATA[<p>Quesito di oggi, come installare curl su un LAMP php+apache.</p>
<p>Ci basta eseguire i seguenti comandi</p>
<p><code>apt-get install curl libcurl3 php5-curl</code></p>
<p><code>/etc/init.d/apache2 restart</code></p>
<p>A questo punto per sicurezza possiamo testare che sia correttamente installato inserendo un una file .php contenent il seguente codice:</p>
<p><code>&lt;?php phpinfo(); ?&gt;</code></p>
<p>cercate le stringa curl, se la trovate è correttamente configurata, dovreste vedere qualcosa come la foto seguente</p>
<p style="text-align: left;"><a href="http://www.temporini.net/wp-content/uploads/2010/05/curl.png"><img class="aligncenter size-medium wp-image-368" title="Visualizzazione curl funzionante tramite phpinfo" src="http://www.temporini.net/wp-content/uploads/2010/05/curl-300x57.png" alt="curlVisualizzazione curl funzionante tramite phpinfo" width="300" height="57" /></a>Se necessario il file di configurazione di curl lo potete trovare in /etc/php5/apache2/conf.d/curl.ini</p>
<p style="text-align: left;">Saluti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/come-installare-curl-su-ubuntu/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Virtual User con Postifx e spamassassin&#8230; come migliorare il controllo Antispam!!</title>
		<link>http://www.temporini.net/virtual-user-con-postifx-e-spamassassin-come-migliorare-il-controllo-antispam</link>
		<comments>http://www.temporini.net/virtual-user-con-postifx-e-spamassassin-come-migliorare-il-controllo-antispam#comments</comments>
		<pubDate>Wed, 07 Apr 2010 15:09:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[email]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[reti]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[virtualhost]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[ham]]></category>
		<category><![CDATA[horde]]></category>
		<category><![CDATA[Postifx]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spamassassin]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Virtual]]></category>
		<category><![CDATA[virtual users]]></category>
		<category><![CDATA[vmail]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=331</guid>
		<description><![CDATA[<p>Un po&#8217; di tempo fa ho scritto un articolo su come configurare Virtual Users And Domains With Postfix, Courier, MySQL (Ubuntu 8.04 LTS 64bit), ora a partire da questo articolo vediamo come poter migliorare l&#8217;identificazione dello spam tramite il comando sa-learn di spamassassin, e l&#8217;utilizzo dell&#8217;opzione &#8211;spam e &#8211;ham.</p> <p>Innanzitutto facciamo una distinzione fra Spam [...]]]></description>
			<content:encoded><![CDATA[<p>Un po&#8217; di tempo fa ho scritto un articolo su come configurare <a title="Virtual Users And Domains With Postfix, Courier, MySQL (Ubuntu 8.04 LTS 64bit)" href="http://www.temporini.net/virtual-users-and-domains-with-postfix-courier-mysql-and-ubuntu-804-lts-64bit" target="_blank">Virtual Users And Domains With Postfix, Courier, MySQL (Ubuntu 8.04 LTS 64bit)</a>, ora a partire da questo articolo vediamo come poter migliorare l&#8217;identificazione dello spam tramite il comando sa-learn di spamassassin, e l&#8217;utilizzo dell&#8217;opzione &#8211;spam e &#8211;ham.</p>
<p>Innanzitutto facciamo una distinzione fra Spam e Ham</p>
<p>Spam : sono le email indesiderate che non si vogliono ricevere, e che quindi vanno scartate, taggate o comunque a cui va fatto aumentare il valore di spam in caso di matching del contenuto con i nostri db di spam.</p>
<p>Ham: sono le mail buone (Ham = prosciutto BUONO!), le email che quindi vogliamo tenere.</p>
<p>Dalla nostra webmail, creiamo una cartella che si chiama Spam e che verrà quindi creata sul filesystem in una cartellina che si chiama .Spam</p>
<p>Ricordando brevemente la struttura delle directory che abbiamo assegnato per ogni email avremo una struttura simile alla seguente</p>
<p><code>ls -al /home/vmail/domain.tld/info</code></p>
<p><code>drwx------  6 vmail vmail 4096 2010-02-23 19:18 .Bozze</code><br />
<code>drwx------  6 vmail vmail 4096 2010-02-23 19:18 .Cestino</code><br />
<code>drwx------  2 vmail vmail 4096 2010-04-07 12:05 courierimapkeywords</code><br />
<code>-rw-r--r--  1 vmail vmail  105 2010-02-23 19:48 courierimapsubscribed</code><br />
<code>-rw-r--r--  1 vmail vmail 1193 2010-04-07 11:56 courierimapuiddb</code><br />
<code>drwx------  2 vmail vmail 4096 2010-04-07 12:01 cur</code><br />
<code>drwx------  6 vmail vmail 4096 2010-04-07 12:41 .Drafts</code><br />
<code>drwx------  2 vmail vmail 4096 2010-04-07 11:56 new</code><br />
<code>drwx------  6 vmail vmail 4096 2010-04-07 12:43 .Sent</code><br />
<code>drwx------  6 vmail vmail 4096 2010-02-23 15:53 .sent-mail</code><br />
<code>drwx------  6 vmail vmail 4096 2010-02-23 19:18 .Spam</code><br />
<code>drwx------  6 vmail vmail 4096 2010-02-23 19:51 .Templates</code><br />
<code>drwx------  2 vmail vmail 4096 2010-04-07 16:51 tmp</code><br />
<code>drwx------  6 vmail vmail 4096 2010-03-02 20:22 .Trash</code></p>
<p>Tutti le email di tutti i domini hanno questa struttura, quindi cosa succede&#8230;</p>
<p>Quando dalla nostra webmail vediamo che c&#8217;è un&#8217;email che ha passato i nostri antispam, non facciamo altro che dire &#8220;no questa email la sposto nella cartellina Spam!&#8221;. (da horde c&#8217;è un opzione che permette eventualmente di marcare un&#8217;email come spam e automaticamente spostarla in quella cartella).</p>
<p>A questo punto noi avremo che in:</p>
<p><code>/home/vmail/domain.tld/info/cur = avremo le mail buone (Ham)</code></p>
<p>mentre in</p>
<p><code>/home/vmail/domain.tld/info/.Spam = avremo le email di Spam</code></p>
<p>Sfruttando questo possiamo creare una regola ad hoc, per fare &#8220;imparare&#8221; a spamassassin, quali sono le mail buone e quali quelle cattive.</p>
<p>Mettiamo tutto in crontab per ottenere questo:</p>
<p><code>20 * * * * /usr/bin/sa-learn --spam /home/vmail/*/*/.Spam/* &amp;&gt; /dev/null</code><br />
<code>10 * * * * /usr/bin/sa-learn --ham /home/vmail/*/*/cur/* &amp;&gt; /dev/null</code></p>
<p>Ai 10  e 20 minuti di ogni ora verranno fatti gli aggiornamenti e il nostro sistema &#8220;imparerà&#8221; da noi quali sono le mail che non sono spam.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/virtual-user-con-postifx-e-spamassassin-come-migliorare-il-controllo-antispam/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEC: questo sconosciuto</title>
		<link>http://www.temporini.net/pec-questo-sconosciuto</link>
		<comments>http://www.temporini.net/pec-questo-sconosciuto#comments</comments>
		<pubDate>Fri, 20 Nov 2009 10:29:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Matteo]]></category>
		<category><![CDATA[PEC]]></category>
		<category><![CDATA[posta elettronica certificata]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[certezza]]></category>
		<category><![CDATA[certificazione]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[invio]]></category>
		<category><![CDATA[posta]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=316</guid>
		<description><![CDATA[<p>E&#8217; entrato ormai a far parte del parlare comune il termine PEC. Alcuni ancora non sanno cos&#8217;è, ve lo spiegherò brevemente.</p> <p>Ad oggi, chiunque invii un&#8217;email, non ha mai la certezza assoluta che tale email sia arrivata a destinazione (le ricevute di ritorno classiche possono essere facilmente bypassate), per questo motivo è nata la PEC, [...]]]></description>
			<content:encoded><![CDATA[<p>E&#8217; entrato ormai a far parte del parlare comune il termine <strong>PEC</strong>. Alcuni ancora non sanno cos&#8217;è, ve lo spiegherò brevemente.</p>
<p>Ad oggi, chiunque invii un&#8217;email, non ha mai la certezza assoluta che tale email sia arrivata a destinazione (le ricevute di ritorno classiche possono essere facilmente bypassate), per questo motivo è nata la <strong>PEC</strong>, meglio conosciuta come Posta Elettronica Certificata.</p>
<p>Tale sistema sta prendendo parecchia importanza, in quanto il suo utilizzo (data la natura della Certificazione dell&#8217;email, e la conferma temporale della consegna, della lettura e della notifica di ricezione) è equiparato all&#8217;invio di una r<strong>accomandata con ricevuta di ritorno</strong>. Questo vuol dire che con un servizio low cost, con 5-6 euro l&#8217;anno noi possiamo mandare quante raccomandate AR vogliamo, senza spendere nulla. Oltre a questo da fine anno, sarà obbligo per tutte le aziende ed enti pubblici disporre almeno di un indirizzo di questo tipo.</p>
<p>Per spedire un&#8217;email ad un indirizzo bisogna <strong>necessariamente</strong> possederne uno, oppure non si  potrà utiizzare questa tecnologia.</p>
<p>Per iniziare a studiare la cosa, ho creato il mio indirizzo PEC temporini.matteo@pec.it</p>
<p>Saluti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/pec-questo-sconosciuto/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin: NextGEN Gallery IE8 Freeze!!!</title>
		<link>http://www.temporini.net/plugin-nextgen-gallery-ie8-freeze</link>
		<comments>http://www.temporini.net/plugin-nextgen-gallery-ie8-freeze#comments</comments>
		<pubDate>Tue, 04 Aug 2009 21:20:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[compatibility mode]]></category>
		<category><![CDATA[compatible content]]></category>
		<category><![CDATA[EmulateIE]]></category>
		<category><![CDATA[fixate]]></category>
		<category><![CDATA[Freeze]]></category>
		<category><![CDATA[Gallery]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[nextgen]]></category>
		<category><![CDATA[sito]]></category>
		<category><![CDATA[workaround]]></category>
		<category><![CDATA[X-UA-Compatible]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=310</guid>
		<description><![CDATA[<p>Parliamo oggi di un problema che si è presentato su uno dei siti con cui collaboro, nello specifico dopo gli ultimi update con l&#8217;installazione di ie8, il sito non poteva essere visto in quanto il plugin NextGEN Gallery, lo faceva crashare.</p> <p>Tale problema è causata da alcune jquery errate nel codice (che speriamo vengano fixate [...]]]></description>
			<content:encoded><![CDATA[<p>Parliamo oggi di un problema che si è presentato su uno dei siti con cui collaboro, nello specifico dopo gli ultimi update con l&#8217;installazione di ie8, il sito non poteva essere visto in quanto il plugin NextGEN Gallery, lo faceva crashare.</p>
<p>Tale problema è causata da alcune jquery errate nel codice (che speriamo vengano fixate a breve).</p>
<p>Sino ad allora ecco a voi il workaround</p>
<p>Inserite nel codice di wordpress nel codice di wordpress nel file header.php del vostro tema la stringa</p>
<p>&lt;meta http-equiv=&#8221;X-UA-Compatible&#8221; content=&#8221;IE=EmulateIE7&#8243;&gt;</p>
<p>in questo modo il sito viene fatto girare in compatibilità ie7 e il sito funziona perfettamente anche con ie8.</p>
<p>In alternativa qualora steste usando tale plugin altrove, potete inserire le seguenti righe di codice php per ovviare al problema:</p>
<p><span>1. if</span> <span>(</span><a href="http://www.php.net/strpos"><span>strpos</span></a><span>(</span><span>$_SERVER</span><span>[</span><span>'HTTP_USER_AGENT'</span><span>]</span><span>,</span><span>&#8220;MSIE 8&#8243;</span><span>)</span><span>)</span> <span>{</span><a href="http://www.php.net/header"><span>header</span></a><span>(</span><span>&#8220;X-UA-Compatible: IE=7&#8243;</span><span>)</span>;<span>}</span></p>
<p>2. <span>if</span> <span>(</span><a href="http://www.php.net/strpos"><span>strpos</span></a><span>(</span><span>$_SERVER</span><span>[</span><span>'HTTP_USER_AGENT'</span><span>]</span><span>,</span><span>&#8220;MSIE 8&#8243;</span><span>)</span><span>)</span> <span>{</span><a href="http://www.php.net/header"><span>header</span></a><span>(</span><span>&#8220;X-UA-Compatible: IE=EmulateIE7&#8243;</span><span>)</span>;<span>}</span></p>
<p>Nel caso 1. fate girare il sito in compatibility mode ie7, nel secondo caso invece, lo fate girare con il motore standard di ie7.</p>
<p>Saluti</p>
<p>Matteo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/plugin-nextgen-gallery-ie8-freeze/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tuning Mysql: query sleep e wait_timeout</title>
		<link>http://www.temporini.net/tuning-mysql-query-sleep-e-wait_timeout</link>
		<comments>http://www.temporini.net/tuning-mysql-query-sleep-e-wait_timeout#comments</comments>
		<pubDate>Wed, 01 Jul 2009 17:09:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[database]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[Temporini]]></category>
		<category><![CDATA[tuning]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[cnf]]></category>
		<category><![CDATA[ini]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=307</guid>
		<description><![CDATA[<p>In questi giorni mi sono trovato ad affrontare un problema che mi era già capitato e che su altri sistemi avevo risolto in altro modo, cioè la presenza di query in stato di sleep.</p> <p>Nello specifico per risolvere il problema ho trovato della documentazione su internet che diceva di modificare il valore della variabile wait_timeout, [...]]]></description>
			<content:encoded><![CDATA[<p>In questi giorni mi sono trovato ad affrontare un problema che mi era già capitato e che su altri sistemi avevo risolto in altro modo, cioè la presenza di query in stato di<strong> sleep</strong>.</p>
<p>Nello specifico per risolvere il problema ho trovato della documentazione su internet che diceva di modificare il valore della variabile <strong>wait_timeout</strong>, ma su Ubuntu non funziona &#8230;</p>
<p>A detto di molte guide per fare questo bastava editare il file <strong>my.cnf</strong> o <strong>my.ini</strong> per cambiarlo ma di fatto non funziona.</p>
<p>Leggendo la documentazione di mysql ho letto invece che la variabile wait_timeout dipende direttamente dalla variabile <strong>interactive_timeout</strong>, pertanto editando il file di configurazione di mysql come segue</p>
<p>[mysqld]<br />
&#8230;<br />
interactive_timeout = 30<br />
&#8230;</p>
<p>In automatico modifichiamo sia la variabile <strong>interactive_timeout</strong> che la variabile <strong>wait_timeout</strong></p>
<p>Saluti</p>
<p>Matteo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/tuning-mysql-query-sleep-e-wait_timeout/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ftp: resume o non resume&#8230; questo è il problema</title>
		<link>http://www.temporini.net/ftp-resume-o-non-resume-questo-e-il-problema</link>
		<comments>http://www.temporini.net/ftp-resume-o-non-resume-questo-e-il-problema#comments</comments>
		<pubDate>Thu, 25 Jun 2009 13:10:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[binaria]]></category>
		<category><![CDATA[client ftp]]></category>
		<category><![CDATA[Matteo Ftp]]></category>
		<category><![CDATA[resume]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=297</guid>
		<description><![CDATA[<p>In questi ultimi anni spesso mi sono trovato di fronte a questo problema: il resume dei file caricati via ftp è una cosa che deve supportare il server o i client?</p> <p>Sino ad oggi me ne sono altamente sbattuto della risposta, avendo ormai da anni per le mani connessioni molto stabili, ma per alcune esigenze [...]]]></description>
			<content:encoded><![CDATA[<p>In questi ultimi anni spesso mi sono trovato di fronte a questo problema: il resume dei file caricati via ftp è una cosa che deve supportare il server o i client?</p>
<p>Sino ad oggi me ne sono altamente sbattuto della risposta, avendo ormai da anni per le mani connessioni molto stabili, ma per alcune esigenze di questi ultimi mesi ho dovuto affrontare di petto il problema.</p>
<p>La risposta che posso darvi per esperienza personale è che il problema del resume dei file è una combo violentissima server e client.</p>
<p>Nello specifico il server ftp deve supportare il trasferimento binario e allo stesso modo il client.</p>
<p>Ora come ora tutti tutti i server ftp e tutti i client ftp li supportano entrambi, premettendo che i server ftp di default li hanno abiitati entrambi, possiamo ricondurre il problema solo al client.</p>
<p>Quindi per supportare il ripristino dei file non ci resta altro da fare che impostare il trasferimento dei file in modalità binaria (o binary).</p>
<p>Saluti<br />
Matteo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/ftp-resume-o-non-resume-questo-e-il-problema/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rootkit o non rootkit, questo è il problema&#8230;</title>
		<link>http://www.temporini.net/rootkit-o-non-rootkit-questo-e-il-problema</link>
		<comments>http://www.temporini.net/rootkit-o-non-rootkit-questo-e-il-problema#comments</comments>
		<pubDate>Thu, 04 Jun 2009 07:35:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[rootkit]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[Temporini]]></category>
		<category><![CDATA[aggiornamento]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[escalation]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[installazione]]></category>
		<category><![CDATA[privilege]]></category>
		<category><![CDATA[rkhunter]]></category>
		<category><![CDATA[sistema]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=295</guid>
		<description><![CDATA[<p>Di cosa stiamo parlando? Alcuni di voi sicuramente sapranno che cosa sono i rootkit, per quelli che non lo sanno i rootkit sono delle &#8220;collezioni&#8221; di software utilizzate per amministrare una macchina linux senza possedere i privilegi di amministratore.</p> <p>Solitamente vengono utilizzate dagli intrusi di un sistema, ad esempio un utente malevolo che riesce a [...]]]></description>
			<content:encoded><![CDATA[<p>Di cosa stiamo parlando? Alcuni di voi sicuramente sapranno che cosa sono i <a href="http://it.wikipedia.org/wiki/Rootkit">rootkit</a>, per quelli che non lo sanno i rootkit sono delle &#8220;collezioni&#8221; di software utilizzate per amministrare una macchina linux senza possedere i privilegi di amministratore.</p>
<p>Solitamente vengono utilizzate dagli intrusi di un sistema, ad esempio un utente malevolo che riesce a sfruttare la vulnerabilità di un utente non privilegiato, potrebbe utilizzare un rootkit per procedere poi a una <strong><em>privilege escalation</em></strong> per diventare amministratore della macchina.</p>
<p>Per difendersi da questo tipo di utilizzi, la cosa migliore è cercare di tenere sempre aggiornato il sistema, soprattutto se si tratta di server online con accesso pubblico, quello di cui voglio occuparmi ora, non è tanto questo aspetto, ma è quello di controllare se la nostra macchina è stata &#8220;infettata&#8221; da un rootkit o meno.</p>
<p>A questo scopo ho iniziato ad utilizzare il programma <a title="rkhunter home page" href="http://www.rootkit.nl/">rkhunter</a>, che serve a controllare tramite degli hash, se i nostri file di sistema importanti sono stati in qualche modo modificati.</p>
<p>L&#8217;installazione in ubuntu si fa un semplice</p>
<p><code>apt-get install rkhunter</code></p>
<p>o</p>
<p><code>aptitude install rkhunter</code></p>
<p>Una volta installato il programma, procediamo con l&#8217;aggiornamento delle definizioni con il comando</p>
<p><code>rkhunter --update</code></p>
<p>ottenendo come output una cosa simile a:</p>
<p><code>[ Rootkit Hunter version 1.3.0 ]</code></p>
<p><code>Checking rkhunter data files...</code><br />
<code>Checking file mirrors.dat                                  [ No update ]</code><br />
<code>Checking file programs_bad.dat                             [ No update ]</code><br />
<code>Checking file backdoorports.dat                            [ No update ]</code><br />
<code>Checking file suspscan.dat                                 [ No update ]</code><br />
<code>Checking file i18n/cn                                      [ No update ]</code><br />
<code>Checking file i18n/en                                      [ No update ]</code><br />
<code>Checking file i18n/zh                                      [ No update ]</code><br />
<code>Checking file i18n/zhutf                                   [ No update ]</code></p>
<p>Ora facciamo partire la nostra prima scannata con il comando</p>
<p><code>rkhunter -c</code></p>
<p>questo metodo di scan ha una modalità interattiva, ad ogni particolare tipologia di scan dovrete premere enter, alla fine otterrete una tabella riassuntiva come quella seguente</p>
<p><code>System checks summary</code><br />
<code>=====================</code></p>
<p><code>File properties checks...</code><br />
<code>Files checked: 127</code><br />
<code>Suspect files: 0</code></p>
<p><code>Rootkit checks...</code><br />
<code>Rootkits checked : 110</code><br />
<code>Possible rootkits: 0</code></p>
<p><code>Applications checks...</code><br />
<code>Applications checked: 6</code><br />
<code>Suspect applications: 0</code></p>
<p><code>The system checks took: 3 minutes and 44 seconds</code></p>
<p><code>All results have been written to the logfile (/var/log/rkhunter.log)</code></p>
<p><code>One or more warnings have been found while checking the system.</code><br />
<code>Please check the log file (/var/log/rkhunter.log)</code></p>
<p>Per ottenere uno scan non intereattivo aggiungete l&#8217;opzione -sk alla fine</p>
<p><code>rkhunter -c -sk</code></p>
<p>Fra i vari report rkhunter vi segnalerà che avete abilitato l&#8217;accesso root via ssh, che di norma non è il massimo della siscurezza e vi darà un segnale di errore tipo questo</p>
<p><code>Checking for allowed root login... Watch out Root login possible. Possible risk!</code><br />
<code>    info: "PermitRootLogin yes" found in file /etc/ssh/sshd_config</code><br />
<code>    Hint: See logfile for more information about this issue</code></p>
<p>Se sapete cosa state facendo, per eliminarlo basta editare /etc/rkhunter.conf</p>
<p>e cambiate la riga da ALLOW_SSH_ROOT_USER=no a ALLOW_SSH_ROOT_USER=yes</p>
<p>Una volta che avete lanciato il primo scan e tutto è corretto e non vi sono state segnalazioni strane, lanciate il comando</p>
<p>rkhunter &#8211;propupd</p>
<p>Questo comando, aggiorna le tabelle hash dei vostri file, di modo che se vengono modificati in qualche modo verrete notificati al riguardo. Quando farete degli update che aggiornano i file interessato da rkhunter, noterete che vi verrà notificato il fatto che tali file sono cambiati. Solitamente quando fate gli aggiornamenti, se tutto è corretto, dovreste eseguire questo comando dopo l&#8217;aggiornamento, di modo che le tabelle hash per i check verranno aggiornate con i nuovi eseguibili e non riceverete (giustamente), notifiche al riguardo.</p>
<p>Saluti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/rootkit-o-non-rootkit-questo-e-il-problema/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Virtual Users And Domains With Postfix, Courier, MySQL (Ubuntu 8.04 LTS 64bit)</title>
		<link>http://www.temporini.net/virtual-users-and-domains-with-postfix-courier-mysql-and-ubuntu-804-lts-64bit</link>
		<comments>http://www.temporini.net/virtual-users-and-domains-with-postfix-courier-mysql-and-ubuntu-804-lts-64bit#comments</comments>
		<pubDate>Tue, 27 Jan 2009 15:52:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[cyrus]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Domain Name System]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pop3]]></category>
		<category><![CDATA[posta]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[servizi]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[virtualhost]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[configurazione]]></category>
		<category><![CDATA[cyrus imap posta mail]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[phpmyadmin]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=233</guid>
		<description><![CDATA[<p>Questa guida vuole essere una quick reference per installare un server di posta con antispam e gestione relativamente semplice di utenti e domini, tramite ubuntu 8.04 TLS 64bit.</p> <p>Le feature principali sono:</p> <p>- SMTP-AUTH e TLS</p> <p>- password encrypted</p> <p>- Amavisd, SpamAssassin e ClamAV</p> <p></p> <p>La guida di riferimento principale la potete trovare all&#8217;indirizzo http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04, [...]]]></description>
			<content:encoded><![CDATA[<p>Questa guida vuole essere una <strong>quick reference</strong> per installare un server di posta con antispam e gestione relativamente semplice di utenti e domini, tramite ubuntu 8.04 TLS <strong>64bit</strong>.</p>
<p>Le feature principali sono:</p>
<p>- <strong>SMTP-AUTH </strong>e<strong> TLS</strong></p>
<p><strong>- </strong>password<strong> </strong><strong>encrypted</strong></p>
<p><strong>- </strong><strong>Amavisd</strong>, <strong>SpamAssassin</strong> e <strong>ClamAV</strong></p>
<p><span id="more-233"></span></p>
<p>La guida di riferimento principale la potete trovare all&#8217;indirizzo <a href="http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04">http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04</a>, la scrivo per il semplice motivo che la versione di ubuntu a 64bit differisce per alcuni pacchetti rispetto alla versione equivalente a 32bit. A differenza della guida principale ho deciso di non utilizzare la quota, in quanto volevo un sistema che non necessitasse di alcun tipo di ricompilazione esterna.</p>
<h3><strong>1. Preliminari</strong></h3>
<p>Eseguiamo:<br />
<code>root@localhost: sudo su</code><br />
<code>root@localhost: ln -sf /bin/bash /bin/sh</code><br />
<code>root@localhost: /etc/init.d/apparmor stop</code><br />
<code>root@localhost: update-rc.d -f apparmor remove</code></p>
<h3>2. Install Postfix, Courier, Saslauthd, MySQL, phpMyAdmin</h3>
<p>Procediamo con l&#8217;installazione dei pacchetti che ci servono:</p>
<p><code>root@localhost: apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass</code></p>
<p>A questo punto vi verranno fatte delle domande post installazione a cui dovrete risopndere come a seguire:</p>
<p><span class="system">New password for the MySQL &#8220;root&#8221; user:</span> <span class="highlight">&lt;&#8211; <strong>yourrootsqlpassword</strong></span><br />
<span class="system">Repeat password for the MySQL &#8220;root&#8221; user:</span> <span class="highlight">&lt;&#8211; <strong>yourrootsqlpassword</strong></span><br />
<span class="system">Create directories for web-based administration?</span> <span class="highlight">&lt;&#8211; <strong>No</strong></span><br />
<span class="system">General type of mail configuration:</span> <span class="highlight">&lt;&#8211; <strong>Internet Site</strong></span><br />
<span class="system">System mail name:</span> <span class="highlight">&lt;&#8211; <strong>server1.example.com</strong></span><br />
<span class="system">SSL certificate required</span> <span class="highlight">&lt;&#8211; <strong>Ok</strong></span><br />
<span class="system">Web server to reconfigure automatically:</span> <span class="highlight">&lt;&#8211; <strong>apache2</strong></span></p>
<p><span class="highlight">A questo punto sulla guida originale si passava alla configurazione della quota, che noi non vogliamo usare, se voi volete farlo, prendete come riferimento la guida originale.</span></p>
<h3><span class="highlight">3. Creiamo </span>il database MySQL per Postfix/Courier</h3>
<p>Creiamo il database <em>mail</em></p>
<p><code>root@localhost: mysqladmin -u root -p create mail</code></p>
<p>entriamo nella shell di mysql</p>
<p><code>root@localhost: mysql -u root -p</code></p>
<p>On the MySQL shell, we create the user <span class="system">mail_admin</span> with the passwort <span class="system">mail_admin_password</span> (replace it with your own password) who has <span class="system">SELECT,INSERT,UPDATE,DELETE</span> privileges on the <span class="system">mail</span> database. This user will be used by Postfix and Courier to connect to the mail database</p>
<p>Sulla shell di MySQL, creeremo l&#8217;utente <em>mail_admin</em> con la password &#8220;<em>mail_admin_password</em>&#8220;, che avrà diritti di SELECT,INSERT,UPDATE,DELETE sul database <em>mail</em>.</p>
<p><code>mysql&gt; GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';</code><br />
<code>mysql&gt; GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'mail_admin_password';</code><br />
<code>mysql&gt; FLUSH PRIVILEGES;</code></p>
<p>selezioniamo ora il database <em>mail</em></p>
<p><code>mysql&gt; USE mail;</code></p>
<p>Creiamo ora le tabelle che ci servono:</p>
<p><code>CREATE TABLE domains (<br />
domain varchar(50) NOT NULL,<br />
PRIMARY KEY (domain) )<br />
TYPE=MyISAM;</code></p>
<p><code>CREATE TABLE forwardings (<br />
source varchar(80) NOT NULL,<br />
destination TEXT NOT NULL,<br />
PRIMARY KEY (source) )<br />
TYPE=MyISAM;</code></p>
<p><code>CREATE TABLE users (<br />
email varchar(80) NOT NULL,<br />
password varchar(20) NOT NULL,<br />
PRIMARY KEY (email)<br />
) TYPE=MyISAM;</code></p>
<p><code>CREATE TABLE transport (<br />
domain varchar(128) NOT NULL default '',<br />
transport varchar(128) NOT NULL default '',<br />
UNIQUE KEY domain (domain)<br />
) TYPE=MyISAM;</code></p>
<p><code>quit;</code></p>
<p>A questo punto avremo le seguenti tabelle:</p>
<p>- <code>domains : indica quali domini gestisce il nostro server di posta</code></p>
<p>- <code>forwardings : gestisce la lista dei forwarding di una determinata casella di posta verso un altra</code></p>
<p>- <code>users : le effettive caselle di posta, con tanto di nome utente e password</code></p>
<p>- <code>transport: serve a passare la gestione della singola email a un altro server, sintassi smtp:[1.2.3.4] le parentesi quadre indicano che non si deve fare nessuna query al dns, in questo caso va indicato l'indirizzo ip corretto.</code></p>
<p>Ora tramite phpmyadmin accessibile sul vostro webserver http://ip-del-server/phpmyadmin potrete gestire tutto quel che riguarda gli account di posta.</p>
<h3>4- Configurazione Postfix</h3>
<p>Editiamo</p>
<p><code>vi /etc/mysql/my.cnf</code></p>
<p>e configuriamo la voce</p>
<pre>[...]
bind-address            = 127.0.0.1
[...]</pre>
<p>se abbiamo modificato il file, eventualmente lanciamo il comando /etc/init.d/mysql restart</p>
<p>Creiamo il file<br />
<code>vi /etc/postfix/mysql-virtual_domains.cf</code></p>
<p>e inseriamo</p>
<pre>user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain='%s'
hosts = 127.0.0.1</pre>
<p>creiamo il file</p>
<p><code>vi /etc/postfix/mysql-virtual_forwardings.cf</code></p>
<pre>user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT destination FROM forwardings WHERE source='%s'
hosts = 127.0.0.1</pre>
<p>creiamo il file</p>
<p><code>vi /etc/postfix/mysql-virtual_mailboxes.cf</code></p>
<pre>user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'
hosts = 127.0.0.1</pre>
<p>creiamo il file</p>
<p><code>vi /etc/postfix/mysql-virtual_email2email.cf</code></p>
<pre>user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT email FROM users WHERE email='%s'
hosts = 127.0.0.1</pre>
<p>creiamo il file</p>
<p><code>nano /etc/postfix/mysql-virtual_transports.cf</code></p>
<pre>user = mail_admin
password = mail_admin_password
dbname = mail
query = SELECT transport FROM transport WHERE domain='%s'
hosts = 127.0.0.1</pre>
<p>Modifichiamo ora i permessi ai file</p>
<p><code>chmod o= /etc/postfix/mysql-virtual_*.cf<br />
chgrp postfix /etc/postfix/mysql-virtual_*.cf</code></p>
<p>Creiamo ora il gruppo e l&#8217;utente vmail</p>
<p><code>groupadd -g 5000 vmail<br />
useradd -g vmail -u 5000 vmail -d /home/vmail -m</code></p>
<p>Eseguiamo ora i comandi di configurazione di postfix, facendo cura di modificare il server server1.example.com con il nostro FQDN.</p>
<p><code>postconf -e 'myhostname = server1.example.com'<br />
postconf -e 'mydestination = server1.example.com, localhost, localhost.localdomain'<br />
postconf -e 'mynetworks = 127.0.0.0/8'<br />
postconf -e 'virtual_alias_domains ='<br />
postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'<br />
postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'<br />
postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'<br />
postconf -e 'virtual_mailbox_base = /home/vmail'<br />
postconf -e 'virtual_uid_maps = static:5000'<br />
postconf -e 'virtual_gid_maps = static:5000'<br />
postconf -e 'smtpd_sasl_auth_enable = yes'<br />
postconf -e 'broken_sasl_auth_clients = yes'<br />
postconf -e 'smtpd_sasl_authenticated_header = yes'<br />
postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'<br />
postconf -e 'smtpd_use_tls = yes'<br />
postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert'<br />
postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key'<br />
postconf -e 'transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf'<br />
#postconf -e 'virtual_create_maildirsize = yes'<br />
#postconf -e 'virtual_mailbox_extended = yes'<br />
#postconf -e 'virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf'<br />
#postconf -e 'virtual_mailbox_limit_override = yes'<br />
#postconf -e 'virtual_maildir_limit_message = "The user you are trying to reach is over quota."'<br />
#postconf -e 'virtual_overquota_bounce = yes'<br />
postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'</code></p>
<p>Creiamo ora il certificato ssl</p>
<p><code>cd /etc/postfix<br />
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509</code></p>
<p>e completiamo le richieste del certificato come a seguire</p>
<pre>Country Name (2 letter code) [AU]: &lt;-- Enter your Country Name (e.g., "DE").
State or Province Name (full name) [Some-State]: &lt;-- Enter your State or Province Name.
Locality Name (eg, city) []: &lt;-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: &lt;-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: &lt;-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: &lt;-- Enter the Fully Qualified Domain Name of the system (e.g. "server1.example.com").
Email Address []: &lt;-- Enter your Email Address.</pre>
<p>e modifichiamo i permessi come segue</p>
<p><code>chmod o= /etc/postfix/smtpd.key</code></p>
<h3>5. Configure Saslauthd</h3>
<p>Creiamo la cartella per saslauthd</p>
<p><code>mkdir -p /var/spool/postfix/var/run/saslauthd</code></p>
<p>Editiamo ora il file /etc/default/saslauthd settando <em>START</em> a <em>yes</em> e cambiando <em>OPTIONS=&#8221;-c -m /var/run/saslauthd&#8221;</em> a <em>OPTIONS=&#8221;-c -m /var/spool/postfix/var/run/saslauthd -r&#8221;</em>:</p>
<p><code>vi /etc/default/saslauthd</code></p>
<p>il risultato sarà</p>
<pre>#
# Settings for saslauthd daemon
# Please read /usr/share/doc/sasl2-bin/README.Debian for details.
#</pre>
<pre># Should saslauthd run automatically on startup? (default: no)
START=yes</pre>
<pre># Description of this saslauthd instance. Recommended.
# (suggestion: SASL Authentication Daemon)
DESC="SASL Authentication Daemon"</pre>
<pre># Short name of this saslauthd instance. Strongly recommended.
# (suggestion: saslauthd)
NAME="saslauthd"</pre>
<pre># Which authentication mechanisms should saslauthd use? (default: pam)
#
# Available options in this Debian package:
# getpwent  -- use the getpwent() library function
# kerberos5 -- use Kerberos 5
# pam       -- use PAM
# rimap     -- use a remote IMAP server
# shadow    -- use the local shadow password file
# sasldb    -- use the local sasldb database file
# ldap      -- use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="pam"</pre>
<pre># Additional options for this mechanism. (default: none)
# See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""</pre>
<pre># How many saslauthd processes should we run? (default: 5)
# A value of 0 will fork a new process for each connection.
THREADS=5</pre>
<pre># Other options (default: -c -m /var/run/saslauthd)
# Note: You MUST specify the -m option or saslauthd won't run!
#
# See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.
# See the saslauthd man page for general information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
#OPTIONS="-c -m /var/run/saslauthd"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"</pre>
<p>Editiamo il file</p>
<p><code>vi /etc/pam.d/smtp</code></p>
<p>inseriamo</p>
<pre>auth    required   pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1</pre>
<p>Creiamo il file</p>
<p><code>vi /etc/postfix/sasl/smtpd.conf</code></p>
<p>e inseriamo</p>
<pre>pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: sysop
sql_database: mail
sql_select: select password from users where email = '%u'</pre>
<p>aggiungiamo l&#8217;utente postfix al gruppo sals</p>
<p><code>root@localhost: adduser postfix sasl</code></p>
<p>e riavviamo postfix e sasl</p>
<p><code>/etc/init.d/postfix restart<br />
/etc/init.d/saslauthd restart</code></p>
<p>Configuriamo ora courier</p>
<p><code>vi /etc/courier/authdaemonrc</code></p>
<p>e modifichiamo</p>
<pre>[...]
authmodulelist="authmysql"
[...]</pre>
<p>Creiamo un backup di /etc/courier/authmysqlrc e svuotiamo il vecchio file</p>
<p><code>cp /etc/courier/authmysqlrc /etc/courier/authmysqlrc_orig<br />
cat /dev/null &gt; /etc/courier/authmysqlrc</code></p>
<p>Editiamo ora il file</p>
<p><code>vi /etc/courier/authmysqlrc</code></p>
<p>e inseriamo</p>
<pre>MYSQL_SERVER localhost
MYSQL_USERNAME mail_admin
MYSQL_PASSWORD mail_admin_password
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#MYSQL_NAME_FIELD</pre>
<p>e riavviamo courier</p>
<p><code>/etc/init.d/courier-authdaemon restart<br />
/etc/init.d/courier-imap restart<br />
/etc/init.d/courier-imap-ssl restart<br />
/etc/init.d/courier-pop restart<br />
/etc/init.d/courier-pop-ssl restart</code></p>
<p>Controlliamo ora se il nostro server pop3 funziona</p>
<p><code>telnet localhost pop3</code></p>
<p>scrivete <em>QUIT</em> e dovrebbe darvi qualcosa di simile a</p>
<pre>root@localhost: telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
quit
+OK Better luck next time.
Connection closed by foreign host.
root@localhost:</pre>
<p>7. Modifichiamo /etc/aliases</p>
<p>Modifichiamo /etc/aliases con qualcosa simile a</p>
<p><code>vi /etc/aliases</code></p>
<pre>[...]
postmaster: root
root: postmaster@yourdomain.tld
[...]</pre>
<p>dopo di che ad ogni modifica di /etc/aliases lanciamo</p>
<p><code>root@localhost: newaliases</code></p>
<p>e riavviamo postfix</p>
<p><code>root@localhost: /etc/init.d/postfix restart </code></p>
<h3>8. Installiamo Amavisd-new, Spamassassin, Clamv</h3>
<p>Lanciamo il comando:</p>
<p><code>apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax</code></p>
<p>Abilitamo Clamav e Spamassassin editando il file <span class="system">/etc/amavis/conf.d/15-content_filter_mode , decommentando le linee </span><em><span class="system">@bypass_virus_checks_maps</span></em> e <em><span class="system">@bypass_spam_checks_maps</span></em></p>
<p><code>vi /etc/amavis/conf.d/15-content_filter_mode</code></p>
<p>Che diventerà una cosa simile a:</p>
<pre>@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);</pre>
<pre>#
# Default SPAM checking mode
# Uncomment the two lines below to enable it back
#</pre>
<pre>@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);</pre>
<pre>1;  # ensure a defined return</pre>
<p>Controlliamo inoltre i settaggi dell&#8217;antispam e dell&#8217;antivirus nel file /etc/amavis/conf.d/20-debian_defaults , dovrebbero andare bene per tutti e non necessitano di modifiche particolari.</p>
<p>Editiamo il file /etc/amavis/conf.d/50-user</p>
<p><code>vi /etc/amavis/conf.d/50-user</code></p>
<p>ed aggiungiamo</p>
<pre>$pax='pax';</pre>
<p>avendo come risultato qualcosa di simile a:</p>
<pre>use strict;</pre>
<pre>#
# Place your configuration directives here.  They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#</pre>
<pre>$pax='pax';</pre>
<pre>#------------ Do not modify anything below this line -------------
1;  # ensure a defined return</pre>
<p>Eseguiamo questi comandi per aggiungere clamav al gruppo di amavis e riavviare amavisd-new e clamav:</p>
<p><code>adduser clamav amavis<br />
/etc/init.d/amavis restart<br />
/etc/init.d/clamav-daemon restart<br />
/etc/init.d/clamav-freshclam restart</code></p>
<p>Configuriamo ora postfix affinchè inoltri le email in arrivo all&#8217;antivirus amavisd-new</p>
<p><code>postconf -e 'content_filter = amavis:[127.0.0.1]:10024'<br />
postconf -e 'receive_override_options = no_address_mappings'</code></p>
<p>Modifichiamo il file /etc/postfix/master.cf</p>
<p><code>vi /etc/postfix/master.cf</code></p>
<p>e aggiungiamo alla fine</p>
<pre>[...]
amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes</pre>
<pre>127.0.0.1:10025 inet n - - - - smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
        -o smtpd_bind_address=127.0.0.1</pre>
<p>e riavviamo postfix</p>
<p><code>/etc/init.d/postfix restart</code></p>
<p>ora eseguendo</p>
<p><code>netstat -tap</code></p>
<p>dovreste vedere Postfix (smtp 25) e 10025, e amavisd-new sulla 10024</p>
<pre>root@server1:/etc/postfix# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 localhost.localdo:10024 *:*                     LISTEN      15645/amavisd (mast
tcp        0      0 localhost.localdo:10025 *:*                     LISTEN      16677/master
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      6177/mysqld
tcp        0      0 *:www                   *:*                     LISTEN      5367/apache2
tcp        0      0 *:smtp                  *:*                     LISTEN      16677/master
tcp6       0      0 [::]:imaps              [::]:*                  LISTEN      14020/couriertcpd
tcp6       0      0 [::]:pop3s              [::]:*                  LISTEN      14088/couriertcpd
tcp6       0      0 [::]:pop3               [::]:*                  LISTEN      14051/couriertcpd
tcp6       0      0 [::]:imap2              [::]:*                  LISTEN      13983/couriertcpd
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      4006/sshd
tcp6       0     52 server1.example.com:ssh 192.168.0.210%8191:3340 ESTABLISHED 4059/0
root@server1:/etc/postfix#</pre>
<h3>9. Install Razor, Pyzor And Configure SpamAssassin</h3>
<p>Installiamo ora Razor, Pyzor che utilizzano una rete di filtri spam collaborativa sostenuta da varie community.</p>
<p>Eseguiamo il comando:</p>
<p><code>apt-get install razor pyzor</code></p>
<p>A questo punto editiamo</p>
<p><code>vi /etc/spamassassin/local.cf</code></p>
<pre>[...]
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor</pre>
<pre>#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf</pre>
<pre>#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1</pre>
<p>Possiamo configurare la nostra configurazione di spamassassin con il comando:</p>
<p><code>spamassassin --lint</code></p>
<p>e non dovrebbe darci alcun errore sul risultato.</p>
<p>Riavviamo ora amavis:</p>
<p><code>/etc/init.d/amavis restart</code></p>
<p>Aggiorniamo le nuove regole di Spamassassin con</p>
<p><code>sa-update --no-gpg</code></p>
<p>Creiamo un comando crontab per aggiornare le regole ogni tot tempo</p>
<p><code>crontab -e</code></p>
<p>e inseriamo</p>
<pre>23 4 */2 * * /usr/bin/sa-update --no-gpg &amp;&gt; /dev/null</pre>
<h3>10. Test postfix</h3>
<p>Controliamo ora se tutto funziona, controlliamo ora se postfix è pronto per SMTP-AUTH e TLS<br />
<code>telnet localhost 25</code></p>
<p class="command">dopo la connessione diamo il comando</p>
<p><code>ehlo localhost</code></p>
<p class="command">e dovremmo trovare la stringa</p>
<p><code>250-STARTTLS</code></p>
<p>e<br />
<code>50-AUTH LOGIN PLAIN</code></p>
<p>Qualcosa tipo:</p>
<pre>root@server1:/usr/local/sbin# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
root@server1:/usr/local/sbin#</pre>
<p>Non ci resta che popolare il database con i dati che ci interessano, ometto questa parte in quanto la ritengo particolarmente semplice ed intuitiva,</p>
<p>Mi soffermo su due aspetti, il primo riguarda le PASSWORD. Quando inserite un nuovo utente mi raccomando di selezionare il tipo di campo per le password come ENCRYPT, altrimenti non vi funzionerà l&#8217;autenticazione.</p>
<p>Date un occhio alle tabelle del link http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04-p4 in fondo alla pagina.</p>
<h3>11. Inviare un messaggio di benvenuto per creare la Maildir</h3>
<p>Una volta creato un account email è necessario inviare un&#8217;email affinchè venga creata immediatamente la directory dove verranno salvate le email. Se questo non viene fatto, quando qualcuno proverà a collegarsi via pop3 gli verrà dato un messaggio di errore. Provvediamo quandi a installare mailx tramite:</p>
<p><code>apt-get install mailx</code></p>
<p>per inviare un&#8217;email ci basta dare il comando</p>
<p><code>mailx sales@example.com</code></p>
<p>e compilare i seguenti campi</p>
<pre>mailx sales@example.com
Subject: Welcome &lt;-- ENTER
Welcome! Have fun with your new mail account. &lt;-- ENTER
&lt;-- CTRL+D
Cc: &lt;-- ENTER</pre>
<p>A questo punto potete installare squirrelmail e company per gestire la posta come preferite.</p>
<p>Saluti<br />
Matteo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/virtual-users-and-domains-with-postfix-courier-mysql-and-ubuntu-804-lts-64bit/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Il dns server che utilizzi è a prova di &#8220;DNS Poisoning Attack&#8221; ?</title>
		<link>http://www.temporini.net/il-dns-server-che-utilizzi-e-a-prova-di-dns-poisoning-attack</link>
		<comments>http://www.temporini.net/il-dns-server-che-utilizzi-e-a-prova-di-dns-poisoning-attack#comments</comments>
		<pubDate>Mon, 12 Jan 2009 12:17:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[Domain Name System]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[telecom]]></category>
		<category><![CDATA[Attack]]></category>
		<category><![CDATA[checker]]></category>
		<category><![CDATA[controllo]]></category>
		<category><![CDATA[falla]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[nameserver]]></category>
		<category><![CDATA[poisoning]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=219</guid>
		<description><![CDATA[<p>Di recente (neanche tanto a dire il vero) è stato resa nota una falla di molti dns che permette, tramite un attacco di dns poisoning, di manomettere i nomi host utlizzati da molti dns server sul pianeta.</p> <p>Per fare un esempio pratico, ipotizziamo di voler aprire un sito come www.l.google.com che ha un indirizzo ip [...]]]></description>
			<content:encoded><![CDATA[<p>Di recente (neanche tanto a dire il vero) è stato resa nota una falla di molti dns che permette, tramite un attacco di dns poisoning, di manomettere i nomi host utlizzati da molti dns server sul pianeta.</p>
<p>Per fare un esempio pratico, ipotizziamo di voler aprire un sito come www.l.google.com che ha un indirizzo ip pari a 209.85.135.147, ora quello che fa un potenziale &#8220;hacker&#8221; non fa altro che sfruttare la falla del dns per fare risolvere www.l.google.com invece che con il suo indirizzo vero con un indirizzo qualunque tipo 127.0.0.1.</p>
<p>Ora per controllare se il proprio dns server è sicuro da questo tipo di problemi ci sono due strade:</p>
<p>1- collegarvi direttamente al sito <a title="DoxPara" href="http://www.doxpara.com/" target="_blank">DoxPara</a>, sulla destra trovete la finestrella &#8220;dns checker&#8221; non dovrete fare altro che premere il pulsante Check My DNS.</p>
<p>2- oppure tramite linux mediante il comando dig.</p>
<p>Per il secondo punto il comando da lanciare è il seguente:</p>
<p><code>root@localhost:# dig +short @[your nameserver] porttest.dns-oarc.net txt</code></p>
<p>dove dovete sostituire [your nameserver] con l&#8217;indirizzo ip del dns di cui volete fare il controllo.</p>
<p>Esaminiamo ora i possibili risultati.</p>
<p>Se utilizziamo come dns uno dei dns del servizio OpenDNS otteniamo quanto segue:</p>
<p><code>root@localhost:</code><code># dig +short @208.67.222.222 porttest.dns-oarc.net txt</code><br />
<code>porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.</code><br />
<code>"208.69.34.8 is <span style="color: #008000;"><strong>GREAT</strong></span>: 26 queries in 4.1 seconds from 26 ports with std dev 15951"</code></p>
<p>se vedete scritta nell&#8217;ultima riga GREAT allora il dns è ok ed è stato correttamente patchato.</p>
<p>Nel caso contrario invece utilizzando uno dei dns Telecom STRANAMENTE, i dns non sono patchati e quindi vulnerabili a questo tipo di attacchi</p>
<p><code>root@localhost:</code><code># dig +short @151.99.125.1 porttest.dns-oarc.net txt</code><br />
<code>porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.</code><br />
<code>"82.53.187.212 is <strong><span style="color: #ff0000;">POOR</span></strong>: 26 queries in 4.8 seconds from 1 ports with std dev 0"</code></p>
<p>come vedete questa volta nell&#8217;ultima riga trovate scritto POOR che indica che il dns non è correttamente aggiornato e quindi vulnerabile.</p>
<p>Su windows il comando è il seguente da lanciare da una console del DOS:</p>
<p><code>nslookup -querytype=TXT porttest.dns-oarc.net. ns1.nucleus.be</code></p>
<p>Saluti</p>
<p>Matteo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/il-dns-server-che-utilizzi-e-a-prova-di-dns-poisoning-attack/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

