<?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; mail</title>
	<atom:link href="http://www.temporini.net/category/mail/feed" rel="self" type="application/rss+xml" />
	<link>http://www.temporini.net</link>
	<description>It&#039;s time to fix!</description>
	<lastBuildDate>Tue, 07 Sep 2010 06:56:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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[Internet]]></category>
		<category><![CDATA[Matteo]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[networking]]></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 e Ham</p>
<p>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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a> tramite il comando sa-learn di spamassassin, e l&#8217;utilizzo dell&#8217;opzione &#8211;<a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a> e &#8211;ham.</p>
<p>Innanzitutto facciamo una distinzione fra <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a> e Ham</p>
<p><a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a> : 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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a> in caso di matching del contenuto con i nostri db di <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a>.</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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a> e che verrà quindi creata sul <a href="http://www.temporini.net/tag/filesystem" class="st_tag internal_tag" rel="tag" title="Posts tagged with filesystem">filesystem</a> in una cartellina che si chiama .<a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a></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/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>/domain.tld/info</code></p>
<p><code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-02-23 19:18 .Bozze</code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-02-23 19:18 .Cestino</code><br />
<code>drwx------  2 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-04-07 12:05 courierimapkeywords</code><br />
<code>-rw-r--r--  1 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>  105 2010-02-23 19:48 courierimapsubscribed</code><br />
<code>-rw-r--r--  1 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 1193 2010-04-07 11:56 courierimapuiddb</code><br />
<code>drwx------  2 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-04-07 12:01 cur</code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-04-07 12:41 .Drafts</code><br />
<code>drwx------  2 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-04-07 11:56 new</code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-04-07 12:43 .Sent</code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-02-23 15:53 .sent-mail</code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-02-23 19:18 .<a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a></code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-02-23 19:51 .Templates</code><br />
<code>drwx------  2 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 4096 2010-04-07 16:51 tmp</code><br />
<code>drwx------  6 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> 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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a>!&#8221;. (da <a href="http://www.temporini.net/tag/horde" class="st_tag internal_tag" rel="tag" title="Posts tagged with horde">horde</a> c&#8217;è un opzione che permette eventualmente di marcare un&#8217;email come <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a> e automaticamente spostarla in quella cartella).</p>
<p>A questo punto noi avremo che in:</p>
<p><code>/home/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>/domain.tld/info/cur = avremo le mail buone (Ham)</code></p>
<p>mentre in</p>
<p><code>/home/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>/domain.tld/info/.<a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a> = avremo le email di <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a></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 --<a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a> /home/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>/*/*/.<a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">Spam</a>/* &amp;&gt; /dev/null</code><br />
<code>10 * * * * /usr/bin/sa-learn --ham /home/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>/*/*/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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a>.</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>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[DNS]]></category>
		<category><![CDATA[Domain Name System]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cyrus]]></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[server]]></category>
		<category><![CDATA[servizi]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[smtp]]></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, la scrivo per il semplice motivo che [...]]]></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, <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a>, phpMyAdmin</h3>
<p>Procediamo con l&#8217;installazione dei pacchetti che ci servono:</p>
<p><code>root@localhost: apt-get install postfix postfix-<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> postfix-doc <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-client <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-server courier-authdaemon courier-authlib-<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> 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 <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> &#8220;root&#8221; user:</span> <span class="highlight">&lt;&#8211; <strong>yourrootsqlpassword</strong></span><br />
<span class="system">Repeat password for the <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> &#8220;root&#8221; user:</span> <span class="highlight">&lt;&#8211; <strong>yourrootsqlpassword</strong></span><br />
<span class="system">Create directories for <a href="http://www.temporini.net/tag/web" class="st_tag internal_tag" rel="tag" title="Posts tagged with web">web</a>-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"><a href="http://www.temporini.net/tag/web" class="st_tag internal_tag" rel="tag" title="Posts tagged with web">Web</a> 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 <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> 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 <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> 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 <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a></p>
<p><code>root@localhost: <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> -u root -p</code></p>
<p>On the <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> 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 <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a>, 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><a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>&gt; GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'mail_admin_password';</code><br />
<code><a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>&gt; GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'mail_admin_password';</code><br />
<code><a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>&gt; FLUSH PRIVILEGES;</code></p>
<p>selezioniamo ora il database <em>mail</em></p>
<p><code><a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>&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- <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">Configurazione</a> Postfix</h3>
<p>Editiamo</p>
<p><code>vi /etc/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>/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/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> restart</p>
<p>Creiamo il file<br />
<code>vi /etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-virtual_*.cf<br />
chgrp postfix /etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-virtual_*.cf</code></p>
<p>Creiamo ora il gruppo e l&#8217;utente <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a></p>
<p><code>groupadd -g 5000 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a><br />
useradd -g <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> -u 5000 <a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> -d /home/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a> -m</code></p>
<p>Eseguiamo ora i comandi di <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> 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:<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>:/etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-virtual_forwardings.cf, <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>:/etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-virtual_email2email.cf'<br />
postconf -e 'virtual_mailbox_domains = proxy:<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>:/etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-virtual_domains.cf'<br />
postconf -e 'virtual_mailbox_maps = proxy:<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>:/etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-virtual_mailboxes.cf'<br />
postconf -e 'virtual_mailbox_base = /home/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>'<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:<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>:/etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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:<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>:/etc/postfix/<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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: <a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>
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/<a href="http://www.temporini.net/tag/vmail" class="st_tag internal_tag" rel="tag" title="Posts tagged with vmail">vmail</a>"
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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">SPAM</a> 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:<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a> *:*                     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 <a href="http://www.temporini.net/tag/spam" class="st_tag internal_tag" rel="tag" title="Posts tagged with spam">spam</a> 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 <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> 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-<a href="http://www.temporini.net/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>-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>7</slash:comments>
		</item>
		<item>
		<title>Better gmail 2</title>
		<link>http://www.temporini.net/better-gmail-2</link>
		<comments>http://www.temporini.net/better-gmail-2#comments</comments>
		<pubDate>Wed, 25 Jun 2008 18:10:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA["gmail" "internet" "web" "email"]]></category>

		<guid isPermaLink="false">http://www.temporini.net/?p=142</guid>
		<description><![CDATA[<p>Ieri cazzeggiando un po&#8217;, su suggerimento dei colleghi ho installato al lavoro l&#8217;estensione Better Gmail 2.</p>
<p>Si tratta di un estensione che permette di &#8220;manipolare&#8221; il proprio account gmail sul web; fra le cose degne di nota ci sono sicuramente la possibilità di definire gmail come client di posta predefinito e la possibilità di utilizzare interfacce grafiche [...]]]></description>
			<content:encoded><![CDATA[<p>Ieri cazzeggiando un po&#8217;, su suggerimento dei colleghi ho installato al lavoro l&#8217;estensione <strong>Better Gmail 2</strong>.</p>
<p>Si tratta di un estensione che permette di &#8220;manipolare&#8221; il proprio account gmail sul <a href="http://www.temporini.net/tag/web" class="st_tag internal_tag" rel="tag" title="Posts tagged with web">web</a>; fra le cose degne di nota ci sono sicuramente la possibilità di definire <strong>gmail</strong> come <strong>client di posta</strong> predefinito e la possibilità di utilizzare interfacce grafiche alternative come quella qua sotto<br />
<a href='http://www.temporini.net/wp-content/uploads/2008/06/gmail_better.jpg'><img src="http://www.temporini.net/wp-content/uploads/2008/06/gmail_better-300x194.jpg" alt="Gmail Better 2" title="gmail_better" width="300" height="194" class="aligncenter size-medium wp-image-143" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/better-gmail-2/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cyrus IMAP log and cache settings</title>
		<link>http://www.temporini.net/cyrus-imap-log-and-cache-settings</link>
		<comments>http://www.temporini.net/cyrus-imap-log-and-cache-settings#comments</comments>
		<pubDate>Wed, 09 Jan 2008 15:24:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Matteo]]></category>
		<category><![CDATA[cyrus]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[posta]]></category>
		<category><![CDATA[cyrus imap posta mail]]></category>

		<guid isPermaLink="false">http://www.temporini.net/cyrus-imap-log-and-cache-settings</guid>
		<description><![CDATA[<p>Questo articolo serve a correggere un problema che si può verificare Cyrus IMAP, nel caso in cui utilizzi troppa memoria.</p>
<p>Nello specifico l&#8217;output che si legge in /var/log/maillog è il seguente:</p>
<p>DBERROR db4: Logging region out of memory; you may need to increase its size</p>
<p>All&#8217;inizio questo errore compare sporadicmanete, poi con il passare dei giorni aumenta, sino ad [...]]]></description>
			<content:encoded><![CDATA[<p>Questo articolo serve a correggere un problema che si può verificare <strong>Cyrus IMAP</strong>, nel caso in cui utilizzi troppa memoria.</p>
<p>Nello specifico l&#8217;output che si legge in /var/log/maillog è il seguente:</p>
<p><code>DBERROR db4: Logging region out of memory; you may need to increase its size</code></p>
<p>All&#8217;inizio questo errore compare sporadicmanete, poi con il passare dei giorni aumenta, sino ad arrivare al blocco totale della macchina.</p>
<p>La soluzione a tutto questo è qumentare lo spazio destinato al logging del database Berkeley D, per fare questo dobbiamo aumentare la regione di cache di Cyrus (dare una letta eventualmente a <a href="http://cyrusimap.web.cmu.edu/imapd/install-perf.html">Cyrus performance FAQ</a><a href="http://cyrusimap.web.cmu.edu/imapd/install-perf.html"></a>).</p>
<p>Creiamo il file DB_CONFIG nella cartella /var/lib/imap/db/ e all&#8217;interno mettiamo le seguenti righe:<br />
<code><br />
# cat /var/lib/imap/db/DB_CONFIG<br />
set_cachesize 0 2097152 1<br />
set_lg_regionmax 1048576</code></p>
<p>In questo modo abbiamo settato la dimensione della cache a 2MBin un segmento (la documentazione relativa la potete trovare su <a href="http://www.sleepycat.com/docs/utility/db_stat.html">Berkeley DB docs</a>), e la regione di log a 1MB. Su sistemi fedora pare siano 648K e 96KB, rispettivamente.</p>
<p>Dopo aver messo il file al suo posto, fermate cyrus, lanciate il comando</p>
<p><code>db_recover -h /var/lib/imap/db</code></p>
<p>e avviate cyrus.</p>
<p>Ora per ottenere le statistiche e vedere che effettivamente tutto sia corretto eseguiamo i comandi</p>
<p><code># db_stat -m -h /var/lib/imap/db</code></p>
<p>e</p>
<p><code># db_stat -l -h /var/lib/imap/db</code></p>
<p>db_recover e dbstats fanno parte del pacchetto db4-utils.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/cyrus-imap-log-and-cache-settings/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wrapper Sendmail</title>
		<link>http://www.temporini.net/wrapper-sendmail</link>
		<comments>http://www.temporini.net/wrapper-sendmail#comments</comments>
		<pubDate>Fri, 23 Nov 2007 16:16:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[demoni]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[servizi]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://www.temporini.net/wrapper-sendmail</guid>
		<description><![CDATA[<p>Problema del giorno&#8230; quante volte capita che qualche script non sicuro (es. form php senza controlli di sicurezza sull&#8217;inserimento dei dati e conseguente invio di un&#8217;email), riempia le code dei nostri server di posta? A me sinceramente molto spesso (si pensi a qualcuno che crea uno script di &#8220;test&#8221; che basta lanciarlo e viene spedita un&#8217;email, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Problema del giorno</strong>&#8230; quante volte capita che qualche script non sicuro (es. form php senza controlli di sicurezza sull&#8217;inserimento dei dati e conseguente invio di un&#8217;email), riempia le code dei nostri server di posta? A me sinceramente molto spesso (si pensi a qualcuno che crea uno script di &#8220;test&#8221; che basta lanciarlo e viene spedita un&#8217;email, lo script viene dimenticato li e trovato da qualche bontempone che si diverte a esguirlo centinaia di volte&#8230; voi direte &#8220;ma chi vuoi che lo faccia?!?!?!?&#8221; e io vi rispondo dicendo solo&#8230; &#8220;più di quanti si possa immaginare&#8221;).</p>
<p>Conseguenza di tutto questo sono ore perse a cercare qualche script, sito o altro responsabile del fattaccio, con conseguenti improperi verso ogni genere di essere vivente vi si presenti vicino.</p>
<p><span id="more-103"></span>Grazie ai consigli e all&#8217;aiuto di <strong>Marco Londero</strong>, abbiamo ideato un piccolo wrapper php che genera un log sulla posta che viene inviata trmamite il comando <strong>mail()</strong> di php, e aggiunge un <strong>header</strong> all&#8217;interno dell&#8217;email stessa in grado di permetterci di risalire al log desiderato e riuscire ad identificare meglio l&#8217;origine di un certo problema.</p>
<p>All&#8217;interno di tale log avremo una cosa molto importante, il path dello script che ha generato e inviato l&#8217;email in questione.</p>
<p>Siamo partiti a partire un <a href="http://gregmaclellan.com/blog/sendmail-wrapper/" title="Sendmail Wrapper">wrapper</a> trovato su <a href="http://www.gregmaclellan.com/">groogsblog</a> e tramite semplici modifiche siamo riusciti ad ottenere quel che ci serviva.</p>
<p>Una definizione di <strong>wrapper</strong> (giusto per capire di cosa si parla) potrebbe essere la seguente &#8220;<em>Un <strong><span class="QUOTE">wrapper</span></strong> è uno script di shell che       incorpora una utility o un comando di sistema. Questo evita di       dover digitare una serie di parametri che andrebbero passati       manualmente a quel comando.</em>&#8221;</p>
<p>Vediamo ora come installarlo.</p>
<p>Presupponiamo di utilizzare postfix (di fatto si potrebbe usare qualunqua altro sistema senza problemi),</p>
<p><code>cd /etc/postfix/</code></p>
<p><code>touch sendmail.php</code></p>
<p><code>chmod 775 sendmail.php</code></p>
<p><code>nano sendmail.php</code></p>
<p>A questo punto nel file sendmail.php inseriamo il codice del <a href="http://www.temporini.net/wp-content/uploads/2007/11/sendmailtar.gz" title="Sendmail Wrapper">Wrapper</a>, e salviamo il file.</p>
<p>Modifichiamo olra il file php.ini e permettiamo al wrapper di essere eseguito prima di sendmail (sarà il wrapper stesso dal suo interno a richiamare sendmail al momento opportuno).</p>
<p><code>nano /etc/php.ini</code></p>
<p>sostituiamo il valore di sendmail_path con il seguente</p>
<p>sendmail_path = /etc/postfix/sendmail.php</p>
<p>Prepariamo le directory che conterranno i log che che genererà il nostro simpatico wrapper</p>
<p><code>mkdir /var/log/phpmail<br />
chown root:apache /var/log/phpmail<br />
chmod 770 /var/log/phpmail</code></p>
<p>ed ora non ci resta altro che riavviare apache<br />
<code><br />
/etc/init.d/apache2 restart</code></p>
<p>Date una controllata al file /var/log/httpd/error_log per vedere che sia tutto corretto e aspettate (o create uno script in php per testarlo), ora quando verrà inviata un&#8217;email da uno script in php accadranno due cose</p>
<p>1- nell&#8217;header dell&#8217;email vi sarà un campo nuovo che si chiama X-MsgID e che altro non è che il nome del file in /var/log/phpmail/ che contiene i dati dell&#8217;email inviata dal webserver</p>
<p>2- all&#8217;interno del file relativo all&#8217;header X-MsgID vi sarà un campo che indicherà il path dello script che ha inviato un&#8217;email</p>
<p>Riporto di seguito un esempio del contenuto del file di log di un&#8217;email</p>
<p><em>Body: 574 bytesDate: Fri, 23 Nov 2007 16:35:37 +0100<br />
PWD: /var/www/vhost/XXX.TLD/home/html/phpBB2<br />
Msg ID: ns3.eastitaly.it_20071123163537.4746f3495849d</em></p>
<p><em>Message:<br />
&#8212;&#8212;&#8212;-<br />
To: tusysweelszew@mail.ru<br />
Subject: Welcome to www.</em><em>XXX.TLD</em><em> Forums<br />
Reply-to: info@</em><em>XXX.TLD</em><br />
<em> From: info@</em><em>XXX.TLD</em><br />
<em> Return-Path: info@</em><em>XXX.TLD</em><br />
<em> Message-ID: &lt;aace212218a818186b114bcd1fe00573@www.</em><em>XXX.TLD</em><em>&gt;<br />
MIME-Version: 1.0<br />
Content-type: text/plain; charset=iso-8859-1<br />
Content-transfer-encoding: 8bit<br />
Date: Fri, 23 Nov 2007 16:35:37 +0100<br />
X-Priority: 3<br />
X-MSMail-Priority: Normal<br />
X-Mailer: PHP<br />
X-MimeOLE: Produced By phpBB2<br />
X-MsgID: ns3.eastitaly.it_20071123163537.4746f3495849d<br />
&#8212;&#8212;&#8212;-<br />
Body: 574 bytes</em></p>
<p>Da questo log oltre a tutti i dati tipici di un&#8217;email si può notare la riga</p>
<p><em> PWD: /var/www/vhost/XXX.TLD/home/html/phpBB2</em></p>
<p>che non è altro che il path dello script che ha inviato l&#8217;email, chiaramente sarebbe più efficiente se vi fosse la possibilità di identificare direttamente il nome dello script, ma diciamo che già così gran parte dei problemi si riescono a isolare e identificare in breve tempo.</p>
<p>Un altra eventuali miglioria che si può apportare è di gestire tutto questo anzichè come file separati come un unico file di log, ma lo faremo col tempo e con la voglia come sempre <img src='http://www.temporini.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Saluti</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/wrapper-sendmail/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurazione snmp</title>
		<link>http://www.temporini.net/configurazione-snmp</link>
		<comments>http://www.temporini.net/configurazione-snmp#comments</comments>
		<pubDate>Wed, 20 Jun 2007 09:21:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CPU]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Memoria]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[Snmp]]></category>
		<category><![CDATA[Swap]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[demoni]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[monitor risorse]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[ncftp]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[servizi]]></category>

		<guid isPermaLink="false">http://www.temporini.net/archives/27</guid>
		<description><![CDATA[<p>Questa breve guida spiega (o almeno ci prova) come configurare il servizio di snmp su un server linux, per il monitoraggio delle risorse. Provvede poi a integrare i dati raccolti tramite grafici generati con Mrtg.</p>
<p>Questa guida è stata sviluppata su sistemi Fedora Core 5, ma è facilmente adattabile (se non addirittura direttamente applicabile) anche ad altri [...]]]></description>
			<content:encoded><![CDATA[<p>Questa breve guida spiega (o almeno ci prova) come configurare il servizio di <strong>snmp</strong> su un server <strong><a href="http://www.temporini.net/tag/linux" class="st_tag internal_tag" rel="tag" title="Posts tagged with linux">linux</a></strong>, per il <strong>monitoraggio delle risorse</strong>. Provvede poi a integrare i dati raccolti tramite grafici generati con <strong><a href="http://oss.oetiker.ch/mrtg/" title="MRTG - Tobi Oetiker's MRTG">Mrtg</a></strong>.</p>
<p>Questa guida è stata sviluppata su sistemi <strong>Fedora Core 5</strong>, ma è facilmente adattabile (se non addirittura direttamente applicabile) anche ad altri sistemi (<a href="http://www.debian.org" title="Debian -- il Sistema Operativo Universale"><strong>Debian</strong></a>, <strong><a href="http://www.slackware.org" title="The Slackware Linux Project">Slackware</a> </strong>con piccole modifiche inereti al sistema di pacchettizzazione).</p>
<p><em><strong>1. Installazione e <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> Snmpd</strong></em></p>
<p>Per prima cosa provvediamo a installare il servizio <strong>snmpd </strong>tramite i pacchetti disponibili della nostra distribuzione:<br />
<em>[root@localhost ~] yum install net-snmp-utils net-snmp</em></p>
<p>per Debian i pacchetti si installano con il seguente comando</p>
<p><em>[root@localhost ~] apt-get install snmpd snmp</em></p>
<p>A questo punto controllate se il demone <strong>snmpd </strong>è stato lanciato<br />
<em>[root@localhost ~] ps -aux | grep snmpd</em></p>
<p>dovreste visualizzare qualcosa tipo</p>
<p><em>root   5512  0.0  2.3  5872 3012 pts/0    S    22:04   0:00 /usr/sbin/snmpd</em></p>
<p>Se il demone non è in esecuzione provare a lanciarlo a mano con il seguente comando</p>
<p><em>[root@localhost ~] /etc/init.d/snmpd restart</em></p>
<p>e ricontrollate il suo stato.</p>
<p>Per aggiungere lo script all&#8217;avvio della macchina basta eseguire<br />
<em>[root@localhost ~] chkconfig &#8211;level 345 snmpd on</em></p>
<p>Ora il demone snmpd è correttamente in esecuzione, proviamo a controllarne il corretto funzionamento tramite una semplice query sulle interfacce di rete:</p>
<p><em>[root@ns9 ~]# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndexIP-MIB::ipAdEntIfIndex.81.208.101.XXX = INTEGER: 2IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1<br />
IP-MIB::ipAdEntIfIndex.192.168.0.XXX = INTEGER: 3<br />
[root@ns9 ~]#</em></p>
<p>Se tutto funziona correttamente, allora il demone è correttamente configurato, se doveste avere qualche problema, è meglio controllare il file di <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> /etc/snmp/snmpd.conf</p>
<p>All&#8217;interno di questo file modifichiamo questa linea<br />
<em> com2sec notConfigUser  default       public</em></p>
<p>e sostituiamola con quella di seguito adattando ovviamente le subnet come preferite.</p>
<p><em> com2sec local     localhost           public<br />
com2sec mynetwork 192.168.0.0/24      public</em></p>
<p>Scendendo ancora nel file cercate la stringa</p>
<p><em>group   notConfigGroup v1           notConfigUser<br />
group   notConfigGroup v2c           notConfigUser</em></p>
<p>e sostituitela con</p>
<p><em>group MyRWGroup v1         local<br />
group MyRWGroup v2c        local<br />
group MyRWGroup usm        local<br />
group MyROGroup v1         mynetwork<br />
group MyROGroup v2c        mynetwork<br />
group MyROGroup usm        mynetwork</em></p>
<p>Cerchiamo ora la stringa seguente</p>
<p><em>view    systemview     included      system</em></p>
<p>e sostituiamola con</p>
<p><em>view all    included  .1                               80</em></p>
<p>Abbiamo quasi finito&#8230; cercate la stringa</p>
<p><em>access  notConfigGroup &#8220;&#8221;      any       noauth    exact  systemview none none</em></p>
<p>e sostituitela con</p>
<p><em>access MyROGroup &#8220;&#8221;      any       noauth    exact  all    none   none<br />
access MyRWGroup &#8220;&#8221;      any       noauth    exact  all    all    none</em></p>
<p>Ed ora l&#8217;ultima stringa da modificare<br />
<em>syslocation Unknown (edit /etc/snmp/snmpd.conf)<br />
syscontact Root root@localhost (configure /etc/snmp/snmp.local.conf)</em></p>
<p>queste stringhe sono delle brevi stringhe descrittive per l&#8217;identificazione del vostro sistema, fondamentalmente potete scriverci cosa volete io ho messo questo</p>
<p><em>syslocation <a href="http://www.temporini.net/tag/linux" class="st_tag internal_tag" rel="tag" title="Posts tagged with linux">Linux</a> (FEDORA_FC5), localhost<br />
syscontact matteo@temporini.net</em></p>
<p>Bene ora se tutto è andato per il verso giusto, riavviate il demone snmp (/etc/init.d/snmpd restart) e provate a fare nuovamente la query (snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex) che a questo punto non dovrebbe darvi problemi.</p>
<p><em><strong>2. Installazione e <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> MRTG</strong></em></p>
<p>Installiamo <strong>mrtg </strong>con il comando</p>
<p><em>[root@localhost ~]# yum install mrtg</em></p>
<p>analogamente per <strong>debian </strong></p>
<p><em>[root@localhost ~]# apt-get install mrtg</em></p>
<p>A questo punto presuppongo che abbiate un <strong>webserver </strong>correttamente funzionante (io uso <a href="http://www.apache.org" title="The Apache Software Foundation">Apache</a> ma non vi sono problemi a utilizzarne altri come <strong>ISS </strong>o <strong>Lighthttpd</strong>).</p>
<p>Presupponiamo che la root di <strong>apache </strong>stia in /var/www/html/ andiamo a creare la cartella che conterrà i nostri dati</p>
<p><em>[root@localhost ~]# mkdir -p /var/www/html/mymrtg/</em></p>
<p>ora eseguiamo il seguente comando per generare automaticamente il file di <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> di <strong>mrtg</strong></p>
<p><em>[root@localhost ~]# cfgmaker &#8211;global &#8216;WorkDir: /var/www/html/mymrtg&#8217; &#8211;output /etc/mrtg/mymrtg.cfg public@localhost</em></p>
<p>e creiamo l&#8217;index.html del nostro sistema di monitoraggio</p>
<p><em>[root@localhost ~]# indexmaker &#8211;output=/var/www/html/mymrtg/index.html /etc/mrtg/mymrtg.cfg</em></p>
<p>(N.B.= &#8212; sono due trattini (-) vicini ma sembrano una linea unica se fate il cut &#038; paste fate attenzione)</p>
<p>Ora è tutto pronto non ci resta che eseguie <strong>mrtg </strong>indicandogli il file di <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> da utilizzare</p>
<p><em>[root@localhost ~]# env LANG=C /usr/bin/mrtg /etc/mrtg/mymrtg.cfg &#8211;logging /var/log/mrtg.log</em></p>
<p>In ambiente <strong>fedora </strong>è necessaria la stringa env LANG=C, su altri sistemi probabilmente questa variabile di ambiente è già settata in questo modo per cui potrebbe bastare solamente</p>
<p><em>[root@localhost ~]# /usr/bin/mrtg /etc/mrtg/mymrtg.cfg &#8211;logging /var/log/mrtg.log</em></p>
<p>A questo punto non rimane che vedere il risultato di tutto il nostro lavoro andando al seguente indirizzo http://www.your.com/mymrtg/ o http://localhost/mymrtg/</p>
<p>L&#8217;ultimo step da seguire consiste nel mettere in <strong>crontab </strong>l&#8217;esecuzione dello script di aggiornamento di <strong>mrtg</strong>, il modo più semplice per farlo è con il comando</p>
<p><em>[root@localhost ~]# crontab -e</em></p>
<p>Vi si aprirà una finestra e qui inseriteci</p>
<p><em>*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mymrtg.cfg &#8211;logging /var/log/mrtg.log</em></p>
<p>lo script verrà lanciato ogni 5 minuti, in tal modo i campionamenti verranno aggiornati sui nostri grafici in ogni 5 minuti. Qualora voleste avere stime più precise potete diminuire il tempo di campionamento ad 1 minuto ad esempio ottenendo così risultati più accurati.</p>
<p><em><strong>3. Ulteriori risorse da monitorare</strong></em></p>
<p>Quanto sino ad ora visto, permette di creare un piccolo sistema di monitoraggio per la banda utilizzata dai vari dispositivi di rete, in un tempo realtivamente ristretto e con una buona accuratezza (questo dipende ovviamente dall&#8217;intervallo di campionamento che si sceglie).</p>
<p>La domanda a questo punto che uno potrebbe porsi è &#8220;ma posso monitorare solo la banda o anche altre risorse?&#8221;.</p>
<p>Ovviamente la risposta è si, è possibile monitorare altri risorse di sistema, cosa che si è resa molto utile per identificare anomalie nei sitemi e risolverle (es.: utilizzi intensivi della cpu da parte di particolari processi in determinate ore della giornata).</p>
<p>Riporterò ora delle piccole porzioni di codice da aggiungere al file /etc/mrtg/myrtgc.cfg per aggiungere queste funzionalità.</p>
<p>3.1 Monitoraggio dell&#8217;utilizzo di <strong>CPU</strong></p>
<p><em>#<br />
# CPU Monitoring<br />
# (Scaled so that the sum of all three values doesn&#8217;t exceed 100)<br />
#</em></p>
<p><em>Target[server.cpu]:ssCpuRawUser.0&amp;ssCpuRawUser.0:public@localhost + ssCpuRawSystem.0&amp;ssCpuRawSystem.0:public@localhost + ssCpuRawNice.0&amp;ssCpuRawNice.0:public@localhost<br />
Title[server.cpu]: Server CPU Load<br />
PageTop[server.cpu]: &lt;H1&gt;CPU Load &#8211; System, User and Nice Processes&lt;/H1&gt;<br />
MaxBytes[server.cpu]: 100<br />
ShortLegend[server.cpu]: %<br />
YLegend[server.cpu]: CPU Utilization<br />
Legend1[server.cpu]: Current CPU percentage load<br />
LegendI[server.cpu]: Used<br />
LegendO[server.cpu]:<br />
Options[server.cpu]: growright,nopercent<br />
Unscaled[server.cpu]: ymwd </em></p>
<p>3.2 Monitoraggio dell&#8217;utilizzo della <strong>memoria </strong>totale rispetto a quella disponibile</p>
<p><em>#<br />
# Memory Monitoring (Total Versus Available Memory)<br />
#</em></p>
<p><em>Target[server.memory]: memAvailReal.0&amp;memTotalReal.0:public@localhost<br />
Title[server.memory]: Free Memory<br />
PageTop[server.memory]: &lt;H1&gt;Free Memory&lt;/H1&gt;<br />
MaxBytes[server.memory]: 100000000000<br />
ShortLegend[server.memory]: B<br />
YLegend[server.memory]: Bytes<br />
LegendI[server.memory]: Free<br />
LegendO[server.memory]: Total<br />
Legend1[server.memory]: Free memory, not including swap, in bytes<br />
Legend2[server.memory]: Total memory<br />
Options[server.memory]: gauge,growright,nopercent<br />
kMG[server.memory]: k,M,G,T,P,X</em></p>
<p>3.3  Percentuale di utilizzo della <strong>Memoria</strong></p>
<p><em>#<br />
# Memory Monitoring (Percentage usage)<br />
#<br />
Title[server.mempercent]: Percentage Free Memory<br />
PageTop[server.mempercent]: &lt;H1&gt;Percentage Free Memory&lt;/H1&gt;<br />
Target[server.mempercent]: ( memAvailReal.0&amp;memAvailReal.0:public@localhost ) * 100 / ( memTotalReal.0&amp;memTotalReal.0:public@localhost )<br />
options[server.mempercent]: growright,gauge,transparent,nopercent<br />
Unscaled[server.mempercent]: ymwd<br />
MaxBytes[server.mempercent]: 100<br />
YLegend[server.mempercent]: Memory %<br />
ShortLegend[server.mempercent]: Percent<br />
LegendI[server.mempercent]: Free<br />
LegendO[server.mempercent]: Free<br />
Legend1[server.mempercent]: Percentage Free Memory<br />
Legend2[server.mempercent]: Percentage Free Memory</em></p>
<p>3.4. Nuove connessioni <strong>TCP</strong></p>
<p><em>#<br />
# New TCP Connection Monitoring (per minute)<br />
#</em></p>
<p><em>Target[server.newconns]: tcpPassiveOpens.0&amp;tcpActiveOpens.0:public@localhost<br />
Title[server.newconns]: Newly Created TCP Connections<br />
PageTop[server.newconns]: &lt;H1&gt;New TCP Connections&lt;/H1&gt;<br />
MaxBytes[server.newconns]: 10000000000<br />
ShortLegend[server.newconns]: c/s<br />
YLegend[server.newconns]: Conns / Min<br />
LegendI[server.newconns]: In<br />
LegendO[server.newconns]: Out<br />
Legend1[server.newconns]: New inbound connections<br />
Legend2[server.newconns]: New outbound connections<br />
Options[server.newconns]: growright,nopercent,perminute</em></p>
<p>3.5 Connessioni <strong>TCP </strong>stabilite</p>
<p><em>#<br />
# Established TCP Connections<br />
#</em></p>
<p><em>Target[server.estabcons]: tcpCurrEstab.0&amp;tcpCurrEstab.0:public@localhost<br />
Title[server.estabcons]: Currently Established TCP Connections<br />
PageTop[server.estabcons]: &lt;H1&gt;Established TCP Connections&lt;/H1&gt;<br />
MaxBytes[server.estabcons]: 10000000000<br />
ShortLegend[server.estabcons]:<br />
YLegend[server.estabcons]: Connections<br />
LegendI[server.estabcons]: In<br />
LegendO[server.estabcons]:<br />
Legend1[server.estabcons]: Established connections<br />
Legend2[server.estabcons]:<br />
Options[server.estabcons]: growright,nopercent,gauge</em></p>
<p>3.6 Utilizzo del <strong>disco</strong></p>
<p>L&#8217;utilizzo di questo parametro di monitoraggio richiede l&#8217;inserimento nel file /etc/snmp/snmpd.conf del seguente codice</p>
<p><em>disk /</em></p>
<p>con conseguente riavvio del demone snmpd<br />
<em>#<br />
# Disk Usage Monitoring<br />
#</em></p>
<p><em>Target[server.disk]: dskPercent.1&amp;dskPercent.1:public@localhost<br />
Title[server.disk]: Disk Partition Usage<br />
PageTop[server.disk]: &lt;H1&gt;Spazio su disco utilizzato&lt;/H1&gt;<br />
MaxBytes[server.disk]: 100<br />
ShortLegend[server.disk]: %<br />
YLegend[server.disk]: Utilization<br />
LegendI[server.disk]: Partizione /<br />
Options[server.disk]: gauge,growright,nopercent<br />
Unscaled[server.disk]: ymwd</em></p>
<p>3.7 Carichi della <strong>CPU</strong></p>
<p><em>#<br />
# Load Average<br />
#</em></p>
<p><em>Target[server.loadavg]: laLoadInt.2&amp;laLoadInt.3:public@localhost<br />
MaxBytes[server.loadavg]: 5000<br />
Title[server.loadavg]: Load Average * 100<br />
PageTop[server.loadavg]:&lt;h1&gt;Load Average * 100&lt;/h1&gt;<br />
YLegend[server.loadavg]: Load Average<br />
ShortLegend[server.loadavg]:<br />
Legend1[server.loadavg]: Load average 5 min<br />
Legend2[server.loadavg]: Load average 15 min<br />
LegendI[server.loadavg]:  5min load avg<br />
LegendO[server.loadavg]:  15min load avg<br />
Options[server.loadavg]: nopercent,growright,noinfo,gauge</em></p>
<p><strong>4. Monitoraggio del traffico email di Postfix </strong></p>
<p>Un discorso a parte va fatto per quanto riguarda il monitoraggio sull&#8217;invio e la ricezione di email tramite <strong>postfix</strong>.</p>
<p>Grazie alla documentazione trovata in rete mi è stato possibile implmentare un sistema che permette di contare il numero di email inviate e ricevute dal server di posa, nell&#8217;arco di tempo dell&#8217;intervallo di campionamento (i famosi 5 minuti). Questo viene  realizzato tramite il richiamo, da parte di <strong>mrtg</strong>, di alcuni script esterni che fanno quanto richiesto, una volta raccolti i dati vengono processati da mrtg per la generazione dei grafici.</p>
<p>Questi script che bisogna utilizzaresono scritti in perl per cui dovete installare alcuni moduli in perl tramite <strong>cpan</strong>, prima di fare questo installate <strong>ncftp </strong>che viene utilizzato da perl per scaricare i file, questo semplicemente usando il comando</p>
<p><em>[root@localhost ~]# yum install ncftp</em></p>
<p>analogamente per <strong>debian </strong></p>
<p><em>[root@localhost ~]# apt-get install ncftp</em></p>
<p>a questo punto lanciate il comando cpan e dopo aver risposto a un po&#8217; di domande, che vi chiederà lui per la corretta <a href="http://www.temporini.net/tag/configurazione" class="st_tag internal_tag" rel="tag" title="Posts tagged with configurazione">configurazione</a> di della shell del <strong>perl </strong>(solitamente basta dare invio a tutte prendendo i parametri di default), eseguite il comando</p>
<p><em>[root@localhost ~]# cpan<br />
Terminal does not support AddHistory.</em></p>
<p><em>cpan shell &#8212; CPAN exploration and modules installation (v1.7602)<br />
ReadLine support available (try &#8216;install Bundle::CPAN&#8217;)</em></p>
<p><em>cpan&gt; install File::Tail</em></p>
<p>una volta finita l&#8217;installazione di questo moduletto possiamo caricare i file in <strong>perl</strong>, son tre semplici file che dovete mettere in /usr/local/bin con i permessi di esecuzione</p>
<p><a href="http://www.temporini.net/wp-content/uploads/mrtg-mailstats.pl" title="mrtg-mailstats.pl">mrtg-mailstats.pl</a><br />
<a href="http://www.temporini.net/wp-content/uploads/mailstats.pl" title="mailstats.pl">mailstats.pl</a><br />
<a href="http://www.temporini.net/wp-content/uploads/update-mailstats.pl" title="update-mailstats.pl">update-mailstats.pl</a></p>
<p>A questo punto non ci rimane che lanciare il processo  update-mailstats.pl (script che si occupa di tenere costantemente monitorato il traffico del <strong>mailserver</strong>) con il comando</p>
<p><em>[root@localhost ~]# /usr/local/bin/update-mailstats.pl &amp;</em></p>
<p>con il comando mailstats.pl è possibile vedere le statistiche in tempo reale sul numero totale di messaggi inviati e ricevuti come nel seguente esempio</p>
<p><em>[root@localhost ~]# mailstats.pl<br />
RECEIVED:smtp 98057<br />
SENT:local 235<br />
SENT:smtp 54423<br />
SENT:virtual 42947<br />
[root@localhost ~]#  </em></p>
<p>Aggiungiamo nel file /etc/mrtg/mymrtg.cfg il seguente codice</p>
<p><em>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;#<br />
# MRTG mail cfg:  Postfix mailstats plotting with MRTG          #<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;#<br />
Target[postfix]: `/usr/local/bin/mrtg-mailstats.pl`<br />
Options[postfix]: gauge, growright<br />
Title[postfix]: Postfix Statistics<br />
PageTop[postfix]: &lt;H1&gt;Postfix Statistics&lt;/H1&gt;<br />
MaxBytes[postfix]: 1000000<br />
WithPeak[postfix]: dwmy<br />
YLegend[postfix]: No. of messages<br />
ShortLegend[postfix]: messages<br />
LegendI[postfix]:  Incoming:<br />
LegendO[postfix]:  Outgoing:<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;#</em></p>
<p>rigeneriamo l&#8217;index di <strong>mrtg </strong>con il comando</p>
<p><em>[root@localhost ~]# indexmaker &#8211;output=/var/www/html/mymrtg/index.html /etc/mrtg/mymrtg.cfg</em></p>
<p>e abbiamo finito <img src='http://www.temporini.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ora dovreste vedere, man mano che i valori vengono campionati, i grafici anche sulle mail in ingresso e in uscita di postfix. Una tecnica simile penso sia molto semplice da utilizzare anche per altri programmi e risorse.</p>
<p>Se avete suggerimenti, scritiche miglioramenti, script o teniche per il monitoraggio di altre risorse di sistema, contattatemi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temporini.net/configurazione-snmp/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
